diff options
author | Jędrzej Nowacki <jedrzej.nowacki@qt.io> | 2018-08-21 10:35:30 +0200 |
---|---|---|
committer | Jędrzej Nowacki <jedrzej.nowacki@qt.io> | 2018-10-03 14:48:47 +0000 |
commit | cc24fc04067f23c445c7ca54733b0870e39b7d7d (patch) | |
tree | a894013d6249d83ed5114b32da97e881409429f9 /tests/auto/corelib/serialization | |
parent | 98ec8bed198d3428a9642c542518f7cca07acfb3 (diff) |
Implement QJsonDocument data stream operators
Task-number: QTBUG-48313
Change-Id: I25ebeed94c9340819e925a7740bbee21de73a0ca
Reviewed-by: Luca Beldi <v.ronin@yahoo.it>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/corelib/serialization')
-rw-r--r-- | tests/auto/corelib/serialization/json/tst_qtjson.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/auto/corelib/serialization/json/tst_qtjson.cpp b/tests/auto/corelib/serialization/json/tst_qtjson.cpp index 4651258ef3..713c69149b 100644 --- a/tests/auto/corelib/serialization/json/tst_qtjson.cpp +++ b/tests/auto/corelib/serialization/json/tst_qtjson.cpp @@ -153,6 +153,10 @@ private Q_SLOTS: void implicitValueType(); void implicitDocumentType(); + void streamSerialization_data(); + void streamSerialization(); + void streamVariantSerialization(); + private: QString testDataDir; }; @@ -3011,5 +3015,42 @@ void tst_QtJson::implicitDocumentType() QCOMPARE(arrayDocument[-1].toInt(123), 123); } +void tst_QtJson::streamSerialization_data() +{ + QTest::addColumn<QJsonDocument>("document"); + QTest::newRow("empty") << QJsonDocument(); + QTest::newRow("object") << QJsonDocument(QJsonObject{{"value", 42}}); +} + +void tst_QtJson::streamSerialization() +{ + // Check interface only, implementation is tested through to and from + // json functions. + QByteArray buffer; + QFETCH(QJsonDocument, document); + QJsonDocument output; + QDataStream save(&buffer, QIODevice::WriteOnly); + save << document; + QDataStream load(buffer); + load >> output; + QCOMPARE(output, document); +} + +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); +} + QTEST_MAIN(tst_QtJson) #include "tst_qtjson.moc" |