aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2021-01-06 18:06:13 +0100
committerUlf Hermann <ulf.hermann@qt.io>2021-01-12 11:44:07 +0100
commit830eba61b73852a354954086a67e24cc22393558 (patch)
treef82c195afd398805c538e3822052219c681760ed /tests/auto/qml
parent7660c30e08975011c7bd47bcb1796139b9d77196 (diff)
QJSManagedValue: Allow array access to strings
If you access a string as an array you get a one-character string of the index you are asking for. Change-Id: Ie2ac3243c9e23f37b8904c54d824946646a596eb Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Diffstat (limited to 'tests/auto/qml')
-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()); }