diff options
author | Andy Shaw <andy.shaw@digia.com> | 2013-10-09 13:34:53 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-10-15 08:14:48 +0200 |
commit | 5c301f4121b4395b968ef3d6404986326ce70048 (patch) | |
tree | eedec16bd796df01905b6b7a972d21ade11d5b43 /tests/auto/gui | |
parent | cd13fe44cd76e7aa821678fba58cb7d552aab2c3 (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/auto/gui')
-rw-r--r-- | tests/auto/gui/kernel/qguivariant/test/data/qpolygonf.bin | bin | 0 -> 103 bytes | |||
-rw-r--r-- | tests/auto/gui/kernel/qguivariant/test/qguivariant.qrc | 5 | ||||
-rw-r--r-- | tests/auto/gui/kernel/qguivariant/test/test.pro | 1 | ||||
-rw-r--r-- | tests/auto/gui/kernel/qguivariant/test/tst_qguivariant.cpp | 42 |
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 Binary files differnew file mode 100644 index 0000000000..02e749b83f --- /dev/null +++ b/tests/auto/gui/kernel/qguivariant/test/data/qpolygonf.bin 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"); |