Add autotest for v4 nested object bug.
authorMichael Brasser <michael.brasser@nokia.com>
Fri, 2 Mar 2012 01:33:46 +0000 (11:33 +1000)
committerQt by Nokia <qt-info@nokia.com>
Fri, 9 Mar 2012 10:03:23 +0000 (11:03 +0100)
Task-number: QTBUG-24606
Change-Id: I0909d60316f7213b21fc315e8a3d0a6124e84409
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
tests/auto/qml/v4/data/nestedObjectAccess2.qml [new file with mode: 0644]
tests/auto/qml/v4/testtypes.h
tests/auto/qml/v4/tst_v4.cpp

diff --git a/tests/auto/qml/v4/data/nestedObjectAccess2.qml b/tests/auto/qml/v4/data/nestedObjectAccess2.qml
new file mode 100644 (file)
index 0000000..2f0e0db
--- /dev/null
@@ -0,0 +1,5 @@
+import Qt.v4 1.0
+
+Result {
+    result: nested2.result
+}
index 02ba721..18b5b27 100644 (file)
@@ -59,6 +59,7 @@ class ResultObject : public QObject
     Q_OBJECT
     Q_PROPERTY(int result READ result WRITE setResult FINAL)
     Q_PROPERTY(NestedObject *nested READ nested CONSTANT)
+    Q_PROPERTY(NestedObject *nested2 READ nested2 FINAL CONSTANT)
 public:
     ResultObject() : m_result(0), m_resultCounter(0) {}
 
@@ -69,12 +70,14 @@ public:
     void setResult(int result) { m_result = result; m_resultCounter++; }
 
     NestedObject *nested() { return &m_nested; }
+    NestedObject *nested2() { return &m_nested2; }
 
 private:
     int m_result;
     int m_resultCounter;
 
     NestedObject m_nested;
+    NestedObject m_nested2;
 };
 
 void registerTypes();
index 4e3e71f..041d9ab 100644 (file)
@@ -225,17 +225,34 @@ void tst_v4::conditionalExpr()
 // NestedObject::result.
 void tst_v4::nestedObjectAccess()
 {
-    QQmlComponent component(&engine, testFileUrl("nestedObjectAccess.qml"));
+    {
+        QQmlComponent component(&engine, testFileUrl("nestedObjectAccess.qml"));
 
-    QObject *o = component.create();
-    QVERIFY(o != 0);
+        QObject *o = component.create();
+        QVERIFY(o != 0);
 
-    ResultObject *ro = qobject_cast<ResultObject *>(o);
-    QVERIFY(ro != 0);
+        ResultObject *ro = qobject_cast<ResultObject *>(o);
+        QVERIFY(ro != 0);
 
-    QCOMPARE(ro->result(), 37);
+        QCOMPARE(ro->result(), 37);
 
-    delete o;
+        delete o;
+    }
+
+    {
+        QQmlComponent component(&engine, testFileUrl("nestedObjectAccess2.qml"));
+
+        QObject *o = component.create();
+        QVERIFY(o != 0);
+
+        ResultObject *ro = qobject_cast<ResultObject *>(o);
+        QVERIFY(ro != 0);
+
+        QEXPECT_FAIL("","QTBUG-24606", Continue);
+        QCOMPARE(ro->result(), 37);
+
+        delete o;
+    }
 }
 
 void tst_v4::subscriptionsInConditionalExpressions()