summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@digia.com>2013-10-09 13:34:53 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-15 08:14:48 +0200
commit5c301f4121b4395b968ef3d6404986326ce70048 (patch)
treeeedec16bd796df01905b6b7a972d21ade11d5b43 /tests
parentcd13fe44cd76e7aa821678fba58cb7d552aab2c3 (diff)
Account for QPolygonF type when loading/saving the QVariant
When the QPolygonF type was added to QMetaType it did not bump up the values in load() and save() for QVariant. Task-number: QTBUG-33981 Change-Id: I7ad99cda70620c5449c15527c3daf920972d047f Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/gui/kernel/qguivariant/test/data/qpolygonf.binbin0 -> 103 bytes
-rw-r--r--tests/auto/gui/kernel/qguivariant/test/qguivariant.qrc5
-rw-r--r--tests/auto/gui/kernel/qguivariant/test/test.pro1
-rw-r--r--tests/auto/gui/kernel/qguivariant/test/tst_qguivariant.cpp42
4 files changed, 48 insertions, 0 deletions
diff --git a/tests/auto/gui/kernel/qguivariant/test/data/qpolygonf.bin b/tests/auto/gui/kernel/qguivariant/test/data/qpolygonf.bin
new file mode 100644
index 0000000000..02e749b83f
--- /dev/null
+++ b/tests/auto/gui/kernel/qguivariant/test/data/qpolygonf.bin
Binary files differ
diff --git a/tests/auto/gui/kernel/qguivariant/test/qguivariant.qrc b/tests/auto/gui/kernel/qguivariant/test/qguivariant.qrc
new file mode 100644
index 0000000000..576d9cda1c
--- /dev/null
+++ b/tests/auto/gui/kernel/qguivariant/test/qguivariant.qrc
@@ -0,0 +1,5 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file>data</file>
+</qresource>
+</RCC>
diff --git a/tests/auto/gui/kernel/qguivariant/test/test.pro b/tests/auto/gui/kernel/qguivariant/test/test.pro
index d47cf7bf6f..e3b4a350ca 100644
--- a/tests/auto/gui/kernel/qguivariant/test/test.pro
+++ b/tests/auto/gui/kernel/qguivariant/test/test.pro
@@ -4,3 +4,4 @@ TARGET = tst_qguivariant
SOURCES += tst_qguivariant.cpp
INCLUDEPATH += $$PWD/../../../../other/qvariant_common
QT += testlib
+RESOURCES += qguivariant.qrc
diff --git a/tests/auto/gui/kernel/qguivariant/test/tst_qguivariant.cpp b/tests/auto/gui/kernel/qguivariant/test/tst_qguivariant.cpp
index 6fdf3dc843..8a68f40f3f 100644
--- a/tests/auto/gui/kernel/qguivariant/test/tst_qguivariant.cpp
+++ b/tests/auto/gui/kernel/qguivariant/test/tst_qguivariant.cpp
@@ -114,6 +114,7 @@ private slots:
void writeToReadFromDataStream_data();
void writeToReadFromDataStream();
+ void writeToReadFromOldDataStream();
void colorInteger();
void invalidQColor();
@@ -525,6 +526,7 @@ void tst_QGuiVariant::writeToReadFromDataStream_data()
QTest::newRow( "pointarray_valid" ) << QVariant::fromValue( QPolygon( QRect( 10, 10, 20, 20 ) ) ) << false;
QTest::newRow( "region_invalid" ) << QVariant::fromValue( QRegion() ) << true;
QTest::newRow( "region_valid" ) << QVariant::fromValue( QRegion( 10, 10, 20, 20 ) ) << false;
+ QTest::newRow("polygonf_valid") << QVariant::fromValue(QPolygonF(QRectF(10, 10, 20, 20))) << false;
}
void tst_QGuiVariant::invalidQColor()
@@ -609,6 +611,46 @@ void tst_QGuiVariant::writeToReadFromDataStream()
}
}
+void tst_QGuiVariant::writeToReadFromOldDataStream()
+{
+ QPolygonF polyF(QRectF(10, 10, 50, 50));
+ QVariant testVariant(polyF);
+ {
+ // Read into a variant and compare
+ QFile file(":/data/qpolygonf.bin");
+ QVERIFY(file.open(QIODevice::ReadOnly));
+ QDataStream dataFileStream(&file);
+ dataFileStream.setVersion(QDataStream::Qt_4_9);
+ QVariant readVariant;
+ dataFileStream >> readVariant;
+ QVERIFY(readVariant.type() == QMetaType::QPolygonF);
+ QCOMPARE(testVariant, readVariant);
+ file.close();
+ }
+ {
+ QByteArray variantData;
+ {
+ QDataStream varDataStream(&variantData, QIODevice::WriteOnly);
+ varDataStream << testVariant;
+ }
+ // Read into a bytearray and compare
+ QFile file(":/data/qpolygonf.bin");
+ QVERIFY(file.open(QIODevice::ReadOnly));
+ QDataStream dataFileStream(&file);
+ dataFileStream.setVersion(QDataStream::Qt_4_9);
+ int dummy;
+ dataFileStream >> dummy;
+ QByteArray polyData49;
+ dataFileStream >> polyData49;
+ file.close();
+ QByteArray polyData50;
+ QDataStream readVarData(variantData);
+ readVarData >> dummy;
+ readVarData >> polyData50;
+ QVERIFY(polyData49 == polyData50);
+ }
+}
+
void tst_QGuiVariant::debugStream_data()
{
QTest::addColumn<QVariant>("variant");