aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2011-07-25 15:47:40 +1000
committerQt by Nokia <qt-info@nokia.com>2011-07-25 07:49:00 +0200
commitc500bd41751ca253fe40868fe54557749736d109 (patch)
treed9ef36ad77ea32176388dc0de5aab8a71b50e14f /tests
parent5249c88dfd0ddb19c8b608a895b0b0b676aff27e (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.cpp37
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"