aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qml/qqmlecmascript/data/qtbug60547/TestObject.qml11
-rw-r--r--tests/auto/qml/qqmlecmascript/data/qtbug60547/components/Counter.qml4
-rw-r--r--tests/auto/qml/qqmlecmascript/data/qtbug60547/main.qml8
-rw-r--r--tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp11
4 files changed, 34 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmlecmascript/data/qtbug60547/TestObject.qml b/tests/auto/qml/qqmlecmascript/data/qtbug60547/TestObject.qml
new file mode 100644
index 0000000000..5f022f605a
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/qtbug60547/TestObject.qml
@@ -0,0 +1,11 @@
+import QtQuick 2.0
+import "components"
+
+QtObject {
+ id: root
+ property int counter
+ function increment() {
+ counter++
+ return counter
+ }
+}
diff --git a/tests/auto/qml/qqmlecmascript/data/qtbug60547/components/Counter.qml b/tests/auto/qml/qqmlecmascript/data/qtbug60547/components/Counter.qml
new file mode 100644
index 0000000000..3c5e65a340
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/qtbug60547/components/Counter.qml
@@ -0,0 +1,4 @@
+import QtQuick 2.0
+
+QtObject {}
+
diff --git a/tests/auto/qml/qqmlecmascript/data/qtbug60547/main.qml b/tests/auto/qml/qqmlecmascript/data/qtbug60547/main.qml
new file mode 100644
index 0000000000..b09366e9df
--- /dev/null
+++ b/tests/auto/qml/qqmlecmascript/data/qtbug60547/main.qml
@@ -0,0 +1,8 @@
+import QtQml 2.0
+
+TestObject {
+ Component.onCompleted: {
+ increment()
+ }
+}
+
diff --git a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
index 72179d243f..7b9a43dc38 100644
--- a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
+++ b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
@@ -337,6 +337,7 @@ private slots:
void instanceof();
void freeze_empty_object();
void singleBlockLoops();
+ void qtbug_60547();
private:
// static void propertyVarWeakRefCallback(v8::Persistent<v8::Value> object, void* parameter);
@@ -8250,6 +8251,16 @@ void tst_qqmlecmascript::singleBlockLoops()
QVERIFY(!component.isError());
}
+// 'counter' was incorrectly resolved as a type rather than a variable.
+// This fix ensures it looks up the right thing.
+void tst_qqmlecmascript::qtbug_60547()
+{
+ QQmlComponent component(&engine, testFileUrl("qtbug60547/main.qml"));
+ QScopedPointer<QObject> object(component.create());
+ QVERIFY2(!object.isNull(), qPrintable(component.errorString()));
+ QCOMPARE(object->property("counter"), QVariant(int(1)));
+}
+
QTEST_MAIN(tst_qqmlecmascript)
#include "tst_qqmlecmascript.moc"