summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@nokia.com>2012-01-30 14:37:36 +0100
committerQt by Nokia <qt-info@nokia.com>2012-01-30 18:49:27 +0100
commita4ab8d0bbc4075e90547dac9df91a4cfac93942a (patch)
tree8bfa2f462ccad88a7ac4f1f229a1036ba2ef4dc2 /tests
parent34e8dd5d6f250463194e9b7a0f63e7e021ec8d6b (diff)
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 <jgastal@profusion.mobi> Reviewed-by: Kevin Simons <kevin.simons@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/corelib/json/tst_qtjson.cpp35
1 files changed, 34 insertions, 1 deletions
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;