Qt4 user type fixes

QDate, QTime, QDateTime, QPoint, QSize, QRect isNull() checks
This commit is contained in:
Roman
2015-06-29 19:52:59 +03:00
parent ce6ddab5e4
commit 63c15f9ead
3 changed files with 74 additions and 31 deletions

View File

@ -19,11 +19,11 @@ private Q_SLOTS:
void QtTypesTest::test_qtime()
{
MsgPack::registerType(QMetaType::QTime, 0x77);
QTime t(0, 0, 0, 0);
QTime t;
QByteArray packed = MsgPack::pack(t);
QTime t2 = MsgPack::unpack(packed).toTime();
QVERIFY(t == t2);
QVERIFY(packed.size() == 4);
QVERIFY(packed.size() == 3); // user, type, 0xc0
t = QTime(12, 01, 01, 0);
packed = MsgPack::pack(t);
@ -47,11 +47,11 @@ void QtTypesTest::test_qtime()
void QtTypesTest::test_qdate()
{
MsgPack::registerType(QMetaType::QDate, 0x78);
QDate d;
QDate d = QDate();
QByteArray packed = MsgPack::pack(d);
QDate d2 = MsgPack::unpack(packed).toDate();
QVERIFY(d == d2);
QVERIFY(packed.size() == 6);
QVERIFY(packed.size() == 3); // user, type, 0xc0
d = QDate(1234, 12, 1);
packed = MsgPack::pack(d);
@ -67,18 +67,23 @@ void QtTypesTest::test_qdate()
void QtTypesTest::test_qpoint()
{
MsgPack::registerType(QMetaType::QPoint, 0x79);
QPoint pt(1, 2);
QByteArray packed = MsgPack::pack(pt);
QPoint pt;
QByteArray packed = MsgPack::pack(pt);
QVERIFY(packed.size() == 3);
QPoint pt2 = MsgPack::unpack(packed).toPoint();
QVERIFY(pt == pt2);
pt = QPoint(1, 2);
packed = MsgPack::pack(pt);
QVERIFY(packed.size() == 4);
QPoint pt2 = MsgPack::unpack(packed).toPoint();
pt2 = MsgPack::unpack(packed).toPoint();
QVERIFY(pt == pt2);
pt = QPoint(1234, 5678);
packed = MsgPack::pack(pt);
QVERIFY(packed.size() == 9);
pt2 = MsgPack::unpack(packed).toPoint();
qDebug() << pt << pt2;
qDebug() << packed.toHex() << packed.size();
QVERIFY(pt == pt2);
pt = QPoint(std::numeric_limits<qint32>::max(), std::numeric_limits<qint32>::max());
@ -91,12 +96,19 @@ void QtTypesTest::test_qpoint()
void QtTypesTest::test_qsize()
{
MsgPack::registerType(QMetaType::QSize, 80);
QSize sz(1, 2);
QSize sz;
QByteArray packed = MsgPack::pack(sz);
QVERIFY(packed.size() == 4);
// QVERIFY(packed.size() == 3);
QSize sz2 = MsgPack::unpack(packed).toSize();
QVERIFY(sz == sz2);
sz = QSize(1, 2);
packed = MsgPack::pack(sz);
QVERIFY(packed.size() == 4);
sz2 = MsgPack::unpack(packed).toSize();
QVERIFY(sz == sz2);
sz = QSize(1234, 5678);
packed = MsgPack::pack(sz);
QVERIFY(packed.size() == 9);
@ -107,12 +119,18 @@ void QtTypesTest::test_qsize()
void QtTypesTest::test_qrect()
{
MsgPack::registerType(QMetaType::QRect, 81);
QRect r(1, 2, 3, 4);
QRect r;
QByteArray packed = MsgPack::pack(r);
QVERIFY(packed.size() == 6);
QVERIFY(packed.size() == 3);
QRect r2 = MsgPack::unpack(packed).toRect();
QVERIFY(r == r2);
r = QRect(1, 2, 3, 4);
packed = MsgPack::pack(r);
QVERIFY(packed.size() == 6);
r2 = MsgPack::unpack(packed).toRect();
QVERIFY(r == r2);
qint32 max = std::numeric_limits<qint32>::max();
r = QRect(0, 0, max, max);
packed = MsgPack::pack(r);