summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/auto/declarative/qmlecmascript/data/scope.qml42
-rw-r--r--tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp18
2 files changed, 60 insertions, 0 deletions
diff --git a/tests/auto/declarative/qmlecmascript/data/scope.qml b/tests/auto/declarative/qmlecmascript/data/scope.qml
new file mode 100644
index 0000000..87155d1
--- /dev/null
+++ b/tests/auto/declarative/qmlecmascript/data/scope.qml
@@ -0,0 +1,42 @@
+import Qt 4.6
+
+Item {
+ id: Root
+
+ property int a: 1
+ property int binding: a
+ property string binding2: a + "Test"
+ property int binding3: myFunction()
+ property int binding4: myNestedFunction()
+
+ Script {
+ function myFunction() {
+ return a;
+ }
+ }
+
+ Item {
+ id: NestedObject
+
+ Script {
+ function myNestedFunction() {
+ return a;
+ }
+ }
+
+ property int a: 2
+ property int binding: a
+ property string binding2: a + "Test"
+ property int binding3: myFunction()
+ property int binding4: myNestedFunction()
+ }
+
+ property alias test1: Root.binding
+ property alias test2: NestedObject.binding
+ property alias test3: Root.binding2
+ property alias test4: NestedObject.binding2
+ property alias test5: Root.binding3
+ property alias test6: NestedObject.binding3
+ property alias test7: Root.binding4
+ property alias test8: NestedObject.binding4
+}
diff --git a/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp b/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp
index eca4b92..00c3475 100644
--- a/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp
+++ b/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp
@@ -51,6 +51,7 @@ private slots:
void outerBindingOverridesInnerBinding();
void aliasPropertyAndBinding();
void nonExistantAttachedObject();
+ void scope();
private:
QmlEngine engine;
@@ -525,6 +526,23 @@ void tst_qmlecmascript::nonExistantAttachedObject()
QVERIFY(object != 0);
}
+void tst_qmlecmascript::scope()
+{
+ QmlComponent component(&engine, TEST_FILE("scope.qml"));
+ qWarning() << component.errors();
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test1").toInt(), 1);
+ QCOMPARE(object->property("test2").toInt(), 2);
+ QCOMPARE(object->property("test3").toString(), QString("1Test"));
+ QCOMPARE(object->property("test4").toString(), QString("2Test"));
+ QCOMPARE(object->property("test5").toInt(), 1);
+ QCOMPARE(object->property("test6").toInt(), 1);
+ QCOMPARE(object->property("test7").toInt(), 2);
+ QCOMPARE(object->property("test8").toInt(), 2);
+}
+
/*
Confirm bindings and alias properties can coexist.