diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2011-07-25 15:47:40 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-07-25 07:49:00 +0200 |
commit | c500bd41751ca253fe40868fe54557749736d109 (patch) | |
tree | d9ef36ad77ea32176388dc0de5aab8a71b50e14f /tests | |
parent | 5249c88dfd0ddb19c8b608a895b0b0b676aff27e (diff) |
Allow object to be accessed by multiple QDeclarativeEngines
Task-number: QTBUG-18610
Change-Id: Idd9444018b5344586d6579ddac6a0ffd26bf7139
Reviewed-on: http://codereview.qt.nokia.com/2075
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp b/tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp index 17249abbed..e9bd735dbd 100644 --- a/tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp +++ b/tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp @@ -49,6 +49,7 @@ #include <QDebug> #include <QDeclarativeComponent> #include <QDeclarativeNetworkAccessManagerFactory> +#include <QDeclarativeExpression> #ifdef Q_OS_SYMBIAN // In Symbian OS test data is located in applications private dir @@ -70,6 +71,7 @@ private slots: void clearComponentCache(); void outputWarningsToStandardError(); void objectOwnership(); + void multipleEngines(); }; void tst_qdeclarativeengine::rootContext() @@ -328,6 +330,41 @@ void tst_qdeclarativeengine::objectOwnership() } +// Test an object can be accessed by multiple engines +void tst_qdeclarativeengine::multipleEngines() +{ + QObject o; + o.setObjectName("TestName"); + + // Simultaneous engines + { + QDeclarativeEngine engine1; + QDeclarativeEngine engine2; + engine1.rootContext()->setContextProperty("object", &o); + engine2.rootContext()->setContextProperty("object", &o); + + QDeclarativeExpression expr1(engine1.rootContext(), 0, QString("object.objectName")); + QDeclarativeExpression expr2(engine2.rootContext(), 0, QString("object.objectName")); + + QCOMPARE(expr1.evaluate().toString(), QString("TestName")); + QCOMPARE(expr2.evaluate().toString(), QString("TestName")); + } + + // Serial engines + { + QDeclarativeEngine engine1; + engine1.rootContext()->setContextProperty("object", &o); + QDeclarativeExpression expr1(engine1.rootContext(), 0, QString("object.objectName")); + QCOMPARE(expr1.evaluate().toString(), QString("TestName")); + } + { + QDeclarativeEngine engine1; + engine1.rootContext()->setContextProperty("object", &o); + QDeclarativeExpression expr1(engine1.rootContext(), 0, QString("object.objectName")); + QCOMPARE(expr1.evaluate().toString(), QString("TestName")); + } +} + QTEST_MAIN(tst_qdeclarativeengine) #include "tst_qdeclarativeengine.moc" |