diff options
Diffstat (limited to 'tests/auto/qml/qjsvalue')
-rw-r--r-- | tests/auto/qml/qjsvalue/tst_qjsvalue.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/tests/auto/qml/qjsvalue/tst_qjsvalue.cpp b/tests/auto/qml/qjsvalue/tst_qjsvalue.cpp index cdf04ceb00..1771d8ccde 100644 --- a/tests/auto/qml/qjsvalue/tst_qjsvalue.cpp +++ b/tests/auto/qml/qjsvalue/tst_qjsvalue.cpp @@ -33,6 +33,8 @@ #include <QtWidgets/QPushButton> #include <QtCore/qthread.h> +#include <QtQml/qqmlengine.h> +#include <QtQml/qqmlcomponent.h> #include <memory> @@ -2250,8 +2252,8 @@ void tst_QJSValue::strictlyEquals() { QJSValue var1 = eng.toScriptValue(QVariant(QStringList() << "a")); QJSValue var2 = eng.toScriptValue(QVariant(QStringList() << "a")); - QVERIFY(!var1.isArray()); - QVERIFY(!var2.isArray()); + QVERIFY(var1.isArray()); + QVERIFY(var2.isArray()); QVERIFY(!var1.strictlyEquals(var2)); } { @@ -2269,6 +2271,22 @@ void tst_QJSValue::strictlyEquals() QJSValue var2 = eng.toScriptValue(QVariant(QPoint(3, 4))); QVERIFY(!var1.strictlyEquals(var2)); } + + { + // Import QtQml to trigger the registration of QStringList, which makes it a sequence + // type, rather than a generic JS array. + QQmlEngine qmlEngine; + QQmlComponent c(&qmlEngine); + c.setData("import QtQml\nQtObject {}", QUrl()); + QScopedPointer<QObject> obj(c.create()); + QVERIFY(!obj.isNull()); + + QJSValue var1 = qmlEngine.toScriptValue(QVariant(QStringList() << "a")); + QJSValue var2 = qmlEngine.toScriptValue(QVariant(QStringList() << "a")); + QVERIFY(!var1.isArray()); + QVERIFY(!var2.isArray()); + QVERIFY(!var1.strictlyEquals(var2)); + } } Q_DECLARE_METATYPE(int*) |