diff options
Diffstat (limited to 'tests/auto/tst_qtjson.cpp')
-rw-r--r-- | tests/auto/tst_qtjson.cpp | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/tests/auto/tst_qtjson.cpp b/tests/auto/tst_qtjson.cpp index 70dfa74..4a749ec 100644 --- a/tests/auto/tst_qtjson.cpp +++ b/tests/auto/tst_qtjson.cpp @@ -89,6 +89,8 @@ private Q_SLOTS: void toJson(); void fromJson(); void fromBinary(); + void toAndFromBinary_data(); + void toAndFromBinary(); void parseNumbers(); void parseStrings(); void testParser(); @@ -469,7 +471,9 @@ void TestQtJson::testObjectNestedEmpty() QJsonDocument(object).toBinaryData(); QVERIFY(object.value("inner").toObject().isEmpty()); QVERIFY(object.value("inner2").toObject().isEmpty()); - QJsonObject reconstituted(QJsonDocument::fromBinaryData(QJsonDocument(object).toBinaryData()).object()); + QJsonDocument doc = QJsonDocument::fromBinaryData(QJsonDocument(object).toBinaryData()); + QVERIFY(doc.isValid()); + QJsonObject reconstituted(doc.object()); QCOMPARE(reconstituted.value("inner").toObject().size(), 0); QCOMPARE(reconstituted.value("inner").type(), QJsonValue::Object); QCOMPARE(reconstituted.value("inner2").type(), QJsonValue::Object); @@ -1013,17 +1017,41 @@ void TestQtJson::fromBinary() QByteArray testJson = file.readAll(); QJsonDocument doc = QJsonDocument::fromJson(testJson); + QJsonDocument outdoc = QJsonDocument::fromBinaryData(doc.toBinaryData()); + QVERIFY(outdoc.isValid()); + QVERIFY(doc == outdoc); QFile bfile(QLatin1String("test.bjson")); bfile.open(QFile::ReadOnly); QByteArray binary = bfile.readAll(); QJsonDocument bdoc = QJsonDocument::fromBinaryData(binary); - + QVERIFY(bdoc.isValid()); QVERIFY(doc.toVariant() == bdoc.toVariant()); QVERIFY(doc == bdoc); } +void TestQtJson::toAndFromBinary_data() +{ + QTest::addColumn<QString>("filename"); + QTest::newRow("test.json") << QString::fromLatin1("test.json"); + QTest::newRow("test2.json") << QString::fromLatin1("test2.json"); +} + +void TestQtJson::toAndFromBinary() +{ + QFETCH(QString, filename); + QFile file(filename); + QVERIFY(file.open(QFile::ReadOnly)); + QByteArray data = file.readAll(); + + QJsonDocument doc = QJsonDocument::fromJson(data); + QVERIFY(doc.isValid()); + QJsonDocument outdoc = QJsonDocument::fromBinaryData(doc.toBinaryData()); + QVERIFY(outdoc.isValid()); + QVERIFY(doc == outdoc); +} + void TestQtJson::parseNumbers() { { |