diff options
author | Jędrzej Nowacki <jedrzej.nowacki@qt.io> | 2018-09-03 15:17:57 +0200 |
---|---|---|
committer | Jędrzej Nowacki <jedrzej.nowacki@qt.io> | 2018-10-03 14:49:06 +0000 |
commit | ff033830176aaa2e7a525042c5c40a6517cb7858 (patch) | |
tree | 7bbe32ff9e18120323a50cbb6e8162e9b7beedd0 /tests/auto/corelib/serialization/json/tst_qtjson.cpp | |
parent | 1d0b5d26ec382b5d6f18e1428fc248a57307473f (diff) |
Implement QJsonArray data stream operator
Change-Id: Ib3c83c06605f0fe39108855bc3416bf453cab043
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/corelib/serialization/json/tst_qtjson.cpp')
-rw-r--r-- | tests/auto/corelib/serialization/json/tst_qtjson.cpp | 58 |
1 files changed, 47 insertions, 11 deletions
diff --git a/tests/auto/corelib/serialization/json/tst_qtjson.cpp b/tests/auto/corelib/serialization/json/tst_qtjson.cpp index 713c69149b..5b03964140 100644 --- a/tests/auto/corelib/serialization/json/tst_qtjson.cpp +++ b/tests/auto/corelib/serialization/json/tst_qtjson.cpp @@ -153,8 +153,10 @@ private Q_SLOTS: void implicitValueType(); void implicitDocumentType(); - void streamSerialization_data(); - void streamSerialization(); + void streamSerializationQJsonDocument_data(); + void streamSerializationQJsonDocument(); + void streamSerializationQJsonArray_data(); + void streamSerializationQJsonArray(); void streamVariantSerialization(); private: @@ -3015,14 +3017,14 @@ void tst_QtJson::implicitDocumentType() QCOMPARE(arrayDocument[-1].toInt(123), 123); } -void tst_QtJson::streamSerialization_data() +void tst_QtJson::streamSerializationQJsonDocument_data() { QTest::addColumn<QJsonDocument>("document"); QTest::newRow("empty") << QJsonDocument(); QTest::newRow("object") << QJsonDocument(QJsonObject{{"value", 42}}); } -void tst_QtJson::streamSerialization() +void tst_QtJson::streamSerializationQJsonDocument() { // Check interface only, implementation is tested through to and from // json functions. @@ -3036,20 +3038,54 @@ void tst_QtJson::streamSerialization() QCOMPARE(output, document); } -void tst_QtJson::streamVariantSerialization() +void tst_QtJson::streamSerializationQJsonArray_data() +{ + QTest::addColumn<QJsonArray>("array"); + QTest::newRow("empty") << QJsonArray(); + QTest::newRow("values") << QJsonArray{665, 666, 667}; +} + +void tst_QtJson::streamSerializationQJsonArray() { // Check interface only, implementation is tested through to and from // json functions. QByteArray buffer; - QJsonDocument objectDoc(QJsonArray{665, 666, 667}); - QVariant output; - QVariant variant(objectDoc); + QFETCH(QJsonArray, array); + QJsonArray output; QDataStream save(&buffer, QIODevice::WriteOnly); - save << variant; + save << array; QDataStream load(buffer); load >> output; - QCOMPARE(output.userType(), QMetaType::QJsonDocument); - QCOMPARE(output.toJsonDocument(), objectDoc); + QCOMPARE(output, array); +} + +void tst_QtJson::streamVariantSerialization() +{ + // Check interface only, implementation is tested through to and from + // json functions. + QByteArray buffer; + { + QJsonDocument objectDoc(QJsonArray{665, 666, 667}); + QVariant output; + QVariant variant(objectDoc); + QDataStream save(&buffer, QIODevice::WriteOnly); + save << variant; + QDataStream load(buffer); + load >> output; + QCOMPARE(output.userType(), QMetaType::QJsonDocument); + QCOMPARE(output.toJsonDocument(), objectDoc); + } + { + QJsonArray array{665, 666, 667}; + QVariant output; + QVariant variant(array); + QDataStream save(&buffer, QIODevice::WriteOnly); + save << variant; + QDataStream load(buffer); + load >> output; + QCOMPARE(output.userType(), QMetaType::QJsonArray); + QCOMPARE(output.toJsonArray(), array); + } } QTEST_MAIN(tst_QtJson) |