aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquickview
diff options
context:
space:
mode:
authorCharles Yin <charles.yin@nokia.com>2012-05-03 11:36:36 +1000
committerQt by Nokia <qt-info@nokia.com>2012-05-23 05:28:54 +0200
commitefa9de71119853f89b4b175e7d537fbcc31a4848 (patch)
tree97ddef30cddfb41e708dea90e92bb1f247bc73be /tests/auto/quick/qquickview
parent8189f48ab2006c8cdd6e0f2683bed7b6a66a33fc (diff)
Introduce a new constructor to QQuickView
Make it possible let QQuickView use an existing qml engine and multiple QQuickView objects can share one QQmlEngine instance. Change-Id: I035d1c15155be22f1131b504c40cf4ffb5da0f45 Reviewed-by: Glenn Watson <glenn.watson@nokia.com>
Diffstat (limited to 'tests/auto/quick/qquickview')
-rw-r--r--tests/auto/quick/qquickview/tst_qquickview.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickview/tst_qquickview.cpp b/tests/auto/quick/qquickview/tst_qquickview.cpp
index e5e8a83424..cb2f5c60f3 100644
--- a/tests/auto/quick/qquickview/tst_qquickview.cpp
+++ b/tests/auto/quick/qquickview/tst_qquickview.cpp
@@ -47,6 +47,7 @@
#include "../../shared/util.h"
#include <QtGui/QWindow>
#include <QtCore/QDebug>
+#include <QtQml/qqmlengine.h>
class tst_QQuickView : public QQmlDataTest
{
@@ -57,6 +58,7 @@ public:
private slots:
void resizemodeitem();
void errors();
+ void engine();
};
@@ -201,6 +203,42 @@ void tst_QQuickView::errors()
delete canvas;
}
+void tst_QQuickView::engine()
+{
+ QQmlEngine *engine = new QQmlEngine;
+ QVERIFY(!engine->incubationController());
+
+ QQuickView *canvas = new QQuickView(engine, 0);
+ QVERIFY(canvas);
+ QVERIFY(engine->incubationController() == canvas->incubationController());
+
+ QQuickView *canvas2 = new QQuickView(engine, 0);
+ QVERIFY(canvas);
+ QVERIFY(engine->incubationController() == canvas->incubationController());
+ delete canvas;
+ QVERIFY(!engine->incubationController());
+
+ engine->setIncubationController(canvas2->incubationController());
+ QVERIFY(engine->incubationController() == canvas2->incubationController());
+ delete canvas2;
+ QVERIFY(!engine->incubationController());
+
+ QQuickView *canvas3 = new QQuickView;
+ QQuickView *canvas4 = new QQuickView(canvas3->engine(), 0);
+
+ QVERIFY(canvas3->engine());
+ QVERIFY(canvas4->engine());
+ QCOMPARE(canvas3->engine(), canvas4->engine());
+ delete canvas3;
+ QVERIFY(!canvas4->engine());
+ QTest::ignoreMessage(QtWarningMsg, "QQuickView: invalid qml engine. ");
+ canvas4->setSource(QUrl());
+
+ QCOMPARE(canvas4->status(), QQuickView::Error);
+ QVERIFY(!canvas4->errors().isEmpty());
+ QCOMPARE(canvas4->errors().back().description(), QLatin1String("QQuickView: invalid qml engine."));
+ delete canvas4;
+}
QTEST_MAIN(tst_QQuickView)