aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qml/qjsmanagedvalue/tst_qjsmanagedvalue.cpp25
-rw-r--r--tests/auto/qml/qjsmanagedvalue/tst_qjsmanagedvalue.h1
2 files changed, 26 insertions, 0 deletions
diff --git a/tests/auto/qml/qjsmanagedvalue/tst_qjsmanagedvalue.cpp b/tests/auto/qml/qjsmanagedvalue/tst_qjsmanagedvalue.cpp
index 1846030127..d245a034bb 100644
--- a/tests/auto/qml/qjsmanagedvalue/tst_qjsmanagedvalue.cpp
+++ b/tests/auto/qml/qjsmanagedvalue/tst_qjsmanagedvalue.cpp
@@ -1760,4 +1760,29 @@ void tst_QJSManagedValue::jsFunctionInVariant()
}
}
+void tst_QJSManagedValue::stringByIndex()
+{
+ QJSEngine engine;
+
+ const QString testString = QStringLiteral("foobar");
+ QJSManagedValue str(testString, &engine);
+
+ for (uint i = 0; i < testString.length(); ++i) {
+ QVERIFY(str.hasOwnProperty(i));
+ QVERIFY(str.hasProperty(i));
+
+ QVERIFY(str.property(i).strictlyEquals(QJSValue(testString.mid(i, 1))));
+ str.setProperty(i, QStringLiteral("u")); // ignored
+ QCOMPARE(str.toString(), testString);
+ }
+
+ QVERIFY(!str.hasOwnProperty(6));
+ QVERIFY(!str.hasProperty(6));
+ QVERIFY(!str.hasOwnProperty(16));
+ QVERIFY(!str.hasProperty(26));
+
+ QVERIFY(str.property(6).isUndefined());
+ QVERIFY(str.property(506).isUndefined());
+}
+
QTEST_MAIN(tst_QJSManagedValue)
diff --git a/tests/auto/qml/qjsmanagedvalue/tst_qjsmanagedvalue.h b/tests/auto/qml/qjsmanagedvalue/tst_qjsmanagedvalue.h
index da2a8f76a7..041aae56aa 100644
--- a/tests/auto/qml/qjsmanagedvalue/tst_qjsmanagedvalue.h
+++ b/tests/auto/qml/qjsmanagedvalue/tst_qjsmanagedvalue.h
@@ -107,6 +107,7 @@ private Q_SLOTS:
void stringAndUrl();
void jsFunctionInVariant();
+ void stringByIndex();
private:
void newEngine() { engine.reset(new QJSEngine()); }