From a4ab8d0bbc4075e90547dac9df91a4cfac93942a Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Mon, 30 Jan 2012 14:37:36 +0100 Subject: Add a null pointer check to QJsonObject::toVariantMap If the object is null, simply return an empty variant map. Added another test case checking conversion from QJsonArray to a QVariantList. Change-Id: Ieccd163e76630f7db7f41255acd9d1baf66bb38d Reviewed-by: Jonas Gastal Reviewed-by: Kevin Simons --- tests/auto/corelib/json/tst_qtjson.cpp | 35 +++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/auto/corelib/json/tst_qtjson.cpp b/tests/auto/corelib/json/tst_qtjson.cpp index dd2d611ded..5b5f8828d6 100644 --- a/tests/auto/corelib/json/tst_qtjson.cpp +++ b/tests/auto/corelib/json/tst_qtjson.cpp @@ -88,6 +88,7 @@ private Q_SLOTS: void fromVariantMap(); void toVariantMap(); + void toVariantList(); void toJson(); void fromJson(); @@ -883,6 +884,9 @@ void TestQtJson::fromVariantMap() void TestQtJson::toVariantMap() { QJsonObject object; + QVariantMap map = object.toVariantMap(); + QVERIFY(map.isEmpty()); + object.insert("Key", QString("Value")); object.insert("null", QJsonValue()); QJsonArray array; @@ -892,7 +896,7 @@ void TestQtJson::toVariantMap() array.append(QJsonValue()); object.insert("Array", array); - QVariantMap map = object.toVariantMap(); + map = object.toVariantMap(); QCOMPARE(map.size(), 3); QCOMPARE(map.value("Key"), QVariant(QString("Value"))); @@ -906,6 +910,35 @@ void TestQtJson::toVariantMap() QCOMPARE(list.at(3), QVariant()); } +void TestQtJson::toVariantList() +{ + QJsonArray array; + QVariantList list = array.toVariantList(); + QVERIFY(list.isEmpty()); + + array.append(QString("Value")); + array.append(QJsonValue()); + QJsonArray inner; + inner.append(true); + inner.append(999.); + inner.append(QLatin1String("string")); + inner.append(QJsonValue()); + array.append(inner); + + list = array.toVariantList(); + + QCOMPARE(list.size(), 3); + QCOMPARE(list[0], QVariant(QString("Value"))); + QCOMPARE(list[1], QVariant()); + QCOMPARE(list[2].type(), QVariant::List); + QVariantList vlist = list[2].toList(); + QCOMPARE(vlist.size(), 4); + QCOMPARE(vlist.at(0), QVariant(true)); + QCOMPARE(vlist.at(1), QVariant(999.)); + QCOMPARE(vlist.at(2), QVariant(QLatin1String("string"))); + QCOMPARE(vlist.at(3), QVariant()); +} + void TestQtJson::toJson() { QJsonObject object; -- cgit v1.2.3