diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qml/qjsmanagedvalue/tst_qjsmanagedvalue.cpp | 25 | ||||
-rw-r--r-- | tests/auto/qml/qjsmanagedvalue/tst_qjsmanagedvalue.h | 1 |
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()); } |