diff options
Diffstat (limited to 'tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp')
-rw-r--r-- | tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp index 3feecfc2ac..4f1cdccc04 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp +++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp @@ -207,6 +207,7 @@ private slots: void dynamicString(); void include(); void signalHandlers(); + void doubleEvaluate(); void callQtInvokables(); void invokableObjectArg(); @@ -4763,6 +4764,23 @@ void tst_qdeclarativeecmascript::automaticSemicolon() QVERIFY(object != 0); } +// Makes sure that a binding isn't double re-evaluated when it depends on the same variable twice +void tst_qdeclarativeecmascript::doubleEvaluate() +{ + QDeclarativeComponent component(&engine, TEST_FILE("doubleEvaluate.qml")); + QObject *object = component.create(); + QVERIFY(object != 0); + WriteCounter *wc = qobject_cast<WriteCounter *>(object); + QVERIFY(wc != 0); + QCOMPARE(wc->count(), 1); + + wc->setProperty("x", 9); + + QCOMPARE(wc->count(), 2); + + delete object; +} + QTEST_MAIN(tst_qdeclarativeecmascript) #include "tst_qdeclarativeecmascript.moc" |