summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/json/tst_qtjson.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/json/tst_qtjson.cpp')
-rw-r--r--tests/auto/corelib/json/tst_qtjson.cpp39
1 files changed, 32 insertions, 7 deletions
diff --git a/tests/auto/corelib/json/tst_qtjson.cpp b/tests/auto/corelib/json/tst_qtjson.cpp
index 87820d2e78..4ab4b78da1 100644
--- a/tests/auto/corelib/json/tst_qtjson.cpp
+++ b/tests/auto/corelib/json/tst_qtjson.cpp
@@ -122,6 +122,7 @@ private Q_SLOTS:
void assignArrays();
void testTrailingComma();
+ void testDetachBug();
private:
QString testDataDir;
};
@@ -1186,7 +1187,7 @@ void TestQtJson::fromJsonErrors()
QByteArray json = "[\n 11111";
QJsonDocument doc = QJsonDocument::fromJson(json, &error);
QVERIFY(doc.isEmpty());
- QCOMPARE(error.error, QJsonParseError::EndOfNumber);
+ QCOMPARE(error.error, QJsonParseError::TerminationByNumber);
QCOMPARE(error.offset, 11);
}
{
@@ -1210,7 +1211,7 @@ void TestQtJson::fromJsonErrors()
QByteArray json = "[\n \"\\u12\"]";
QJsonDocument doc = QJsonDocument::fromJson(json, &error);
QVERIFY(doc.isEmpty());
- QCOMPARE(error.error, QJsonParseError::StringEscapeSequence);
+ QCOMPARE(error.error, QJsonParseError::IllegalEscapeSequence);
QCOMPARE(error.offset, 11);
}
{
@@ -1218,7 +1219,7 @@ void TestQtJson::fromJsonErrors()
QByteArray json = "[\n \"foo" INVALID_UNICODE "bar\"]";
QJsonDocument doc = QJsonDocument::fromJson(json, &error);
QVERIFY(doc.isEmpty());
- QCOMPARE(error.error, QJsonParseError::StringUTF8Scan);
+ QCOMPARE(error.error, QJsonParseError::IllegalUTF8String);
QCOMPARE(error.offset, 13);
}
{
@@ -1226,7 +1227,7 @@ void TestQtJson::fromJsonErrors()
QByteArray json = "[\n \"";
QJsonDocument doc = QJsonDocument::fromJson(json, &error);
QVERIFY(doc.isEmpty());
- QCOMPARE(error.error, QJsonParseError::EndOfString);
+ QCOMPARE(error.error, QJsonParseError::UnterminatedString);
QCOMPARE(error.offset, 8);
}
{
@@ -1234,7 +1235,7 @@ void TestQtJson::fromJsonErrors()
QByteArray json = "[\n \"c" UNICODE_DJE "a\\u12\"]";
QJsonDocument doc = QJsonDocument::fromJson(json, &error);
QVERIFY(doc.isEmpty());
- QCOMPARE(error.error, QJsonParseError::StringEscapeSequence);
+ QCOMPARE(error.error, QJsonParseError::IllegalEscapeSequence);
QCOMPARE(error.offset, 15);
}
{
@@ -1242,7 +1243,7 @@ void TestQtJson::fromJsonErrors()
QByteArray json = "[\n \"c" UNICODE_DJE "a" INVALID_UNICODE "bar\"]";
QJsonDocument doc = QJsonDocument::fromJson(json, &error);
QVERIFY(doc.isEmpty());
- QCOMPARE(error.error, QJsonParseError::StringUTF8Scan);
+ QCOMPARE(error.error, QJsonParseError::IllegalUTF8String);
QCOMPARE(error.offset, 14);
}
{
@@ -1250,7 +1251,7 @@ void TestQtJson::fromJsonErrors()
QByteArray json = "[\n \"c" UNICODE_DJE "a ]";
QJsonDocument doc = QJsonDocument::fromJson(json, &error);
QVERIFY(doc.isEmpty());
- QCOMPARE(error.error, QJsonParseError::EndOfString);
+ QCOMPARE(error.error, QJsonParseError::UnterminatedString);
QCOMPARE(error.offset, 14);
}
}
@@ -1820,5 +1821,29 @@ void TestQtJson::testTrailingComma()
}
}
+void TestQtJson::testDetachBug()
+{
+ QJsonObject dynamic;
+ QJsonObject embedded;
+
+ QJsonObject local;
+
+ embedded.insert("Key1", QString("Value1"));
+ embedded.insert("Key2", QString("Value2"));
+ dynamic.insert(QStringLiteral("Bogus"), QString("bogusValue"));
+ dynamic.insert("embedded", embedded);
+ local = dynamic.value("embedded").toObject();
+
+ dynamic.remove("embedded");
+
+ QCOMPARE(local.keys().size(),2);
+ local.remove("Key1");
+ local.remove("Key2");
+ QCOMPARE(local.keys().size(), 0);
+
+ local.insert("Key1", QString("anotherValue"));
+ QCOMPARE(local.keys().size(), 1);
+}
+
QTEST_MAIN(TestQtJson)
#include "tst_qtjson.moc"