summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/json
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2014-09-05 13:26:16 +0200
committerLars Knoll <lars.knoll@digia.com>2014-09-10 21:10:45 +0200
commitdf25927a6827c0abce6d35440359a835d23226f7 (patch)
treeef060f0fc451806856c6c009f10e40be7d89e061 /tests/auto/corelib/json
parent853845a4a2570302def9526a99f2b09433c286c5 (diff)
Don't accept json strings with trailing garbage
A well formed JSON document is not allowed to contain trailing garbage at the end. Don't accept this in the parser. Task-number: QTBUG-40062 Change-Id: I0a09dbd099a8c643f58023342546c4e67d026fec Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Diffstat (limited to 'tests/auto/corelib/json')
-rw-r--r--tests/auto/corelib/json/tst_qtjson.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/auto/corelib/json/tst_qtjson.cpp b/tests/auto/corelib/json/tst_qtjson.cpp
index ba19e4855d..253741c103 100644
--- a/tests/auto/corelib/json/tst_qtjson.cpp
+++ b/tests/auto/corelib/json/tst_qtjson.cpp
@@ -151,6 +151,7 @@ private Q_SLOTS:
void objectInitializerList();
void unicodeKeys();
+ void garbageAtEnd();
private:
QString testDataDir;
};
@@ -2777,5 +2778,18 @@ void tst_QtJson::unicodeKeys()
}
}
+void tst_QtJson::garbageAtEnd()
+{
+ QJsonParseError error;
+ QJsonDocument doc = QJsonDocument::fromJson("{},", &error);
+ QVERIFY(error.error == QJsonParseError::GarbageAtEnd);
+ QVERIFY(error.offset == 2);
+ QVERIFY(doc.isEmpty());
+
+ doc = QJsonDocument::fromJson("{} ", &error);
+ QVERIFY(error.error == QJsonParseError::NoError);
+ QVERIFY(!doc.isEmpty());
+}
+
QTEST_MAIN(tst_QtJson)
#include "tst_qtjson.moc"