aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qqmlengine
diff options
context:
space:
mode:
authorChris Adams <christopher.adams@nokia.com>2012-05-23 18:05:10 +1000
committerQt by Nokia <qt-info@nokia.com>2012-06-21 09:58:56 +0200
commit03342a435a88656d64d1445991a4421d244fcb45 (patch)
treec70121da638aed1d8ef1240cae8acf5fddf35dff /tests/auto/qml/qqmlengine
parentb89c6459d760e68c629c0d318d2afd494a2a415a (diff)
Put basic language types into QtQml import
This import is automatically registered by the engine. It provides basic language types (Component and QtObject). Note that the QtQuick import still has these types registered into it, so this commit doesn't break existing code. Change-Id: I8ff190f057fc92969020cf8e896da1649ca3069b Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
Diffstat (limited to 'tests/auto/qml/qqmlengine')
-rw-r--r--tests/auto/qml/qqmlengine/data/qtqmlModule.1.qml4
-rw-r--r--tests/auto/qml/qqmlengine/data/qtqmlModule.2.qml4
-rw-r--r--tests/auto/qml/qqmlengine/data/qtqmlModule.3.qml4
-rw-r--r--tests/auto/qml/qqmlengine/data/qtqmlModule.4.qml4
-rw-r--r--tests/auto/qml/qqmlengine/data/qtqmlModule.5.qml5
-rw-r--r--tests/auto/qml/qqmlengine/data/qtqmlModule.6.qml5
-rw-r--r--tests/auto/qml/qqmlengine/data/qtqmlModule.7.qml5
-rw-r--r--tests/auto/qml/qqmlengine/data/qtqmlModule.8.qml5
-rw-r--r--tests/auto/qml/qqmlengine/data/qtqmlModule.9.qml5
-rw-r--r--tests/auto/qml/qqmlengine/tst_qqmlengine.cpp75
10 files changed, 116 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmlengine/data/qtqmlModule.1.qml b/tests/auto/qml/qqmlengine/data/qtqmlModule.1.qml
new file mode 100644
index 0000000000..e879577e10
--- /dev/null
+++ b/tests/auto/qml/qqmlengine/data/qtqmlModule.1.qml
@@ -0,0 +1,4 @@
+import QtQml 2.0
+
+QtObject {
+}
diff --git a/tests/auto/qml/qqmlengine/data/qtqmlModule.2.qml b/tests/auto/qml/qqmlengine/data/qtqmlModule.2.qml
new file mode 100644
index 0000000000..6cbe96b1ee
--- /dev/null
+++ b/tests/auto/qml/qqmlengine/data/qtqmlModule.2.qml
@@ -0,0 +1,4 @@
+import QtQml 3.0
+
+QtObject {
+}
diff --git a/tests/auto/qml/qqmlengine/data/qtqmlModule.3.qml b/tests/auto/qml/qqmlengine/data/qtqmlModule.3.qml
new file mode 100644
index 0000000000..1160c2827c
--- /dev/null
+++ b/tests/auto/qml/qqmlengine/data/qtqmlModule.3.qml
@@ -0,0 +1,4 @@
+import QtQml 1.0
+
+QtObject {
+}
diff --git a/tests/auto/qml/qqmlengine/data/qtqmlModule.4.qml b/tests/auto/qml/qqmlengine/data/qtqmlModule.4.qml
new file mode 100644
index 0000000000..9b9b7922da
--- /dev/null
+++ b/tests/auto/qml/qqmlengine/data/qtqmlModule.4.qml
@@ -0,0 +1,4 @@
+import QtQml 2.5
+
+QtObject {
+}
diff --git a/tests/auto/qml/qqmlengine/data/qtqmlModule.5.qml b/tests/auto/qml/qqmlengine/data/qtqmlModule.5.qml
new file mode 100644
index 0000000000..7a4fe5ed24
--- /dev/null
+++ b/tests/auto/qml/qqmlengine/data/qtqmlModule.5.qml
@@ -0,0 +1,5 @@
+import QtQml 2.0
+
+QtObject {
+ property Component c
+}
diff --git a/tests/auto/qml/qqmlengine/data/qtqmlModule.6.qml b/tests/auto/qml/qqmlengine/data/qtqmlModule.6.qml
new file mode 100644
index 0000000000..e8cc22fd5b
--- /dev/null
+++ b/tests/auto/qml/qqmlengine/data/qtqmlModule.6.qml
@@ -0,0 +1,5 @@
+import QtQml 2.0
+import QtQuick 2.0
+
+QtObject {
+}
diff --git a/tests/auto/qml/qqmlengine/data/qtqmlModule.7.qml b/tests/auto/qml/qqmlengine/data/qtqmlModule.7.qml
new file mode 100644
index 0000000000..619489b22e
--- /dev/null
+++ b/tests/auto/qml/qqmlengine/data/qtqmlModule.7.qml
@@ -0,0 +1,5 @@
+import QtQuick 2.0
+import QtQml 2.0
+
+QtObject {
+}
diff --git a/tests/auto/qml/qqmlengine/data/qtqmlModule.8.qml b/tests/auto/qml/qqmlengine/data/qtqmlModule.8.qml
new file mode 100644
index 0000000000..59bf31662c
--- /dev/null
+++ b/tests/auto/qml/qqmlengine/data/qtqmlModule.8.qml
@@ -0,0 +1,5 @@
+// deliberately no imports
+
+// should fail
+QtObject {
+}
diff --git a/tests/auto/qml/qqmlengine/data/qtqmlModule.9.qml b/tests/auto/qml/qqmlengine/data/qtqmlModule.9.qml
new file mode 100644
index 0000000000..cbf90b9dd1
--- /dev/null
+++ b/tests/auto/qml/qqmlengine/data/qtqmlModule.9.qml
@@ -0,0 +1,5 @@
+import QtQml 2.0
+
+// Should fail.
+Item {
+}
diff --git a/tests/auto/qml/qqmlengine/tst_qqmlengine.cpp b/tests/auto/qml/qqmlengine/tst_qqmlengine.cpp
index 85c32d8118..c9d3e27afe 100644
--- a/tests/auto/qml/qqmlengine/tst_qqmlengine.cpp
+++ b/tests/auto/qml/qqmlengine/tst_qqmlengine.cpp
@@ -75,6 +75,8 @@ private slots:
void outputWarningsToStandardError();
void objectOwnership();
void multipleEngines();
+ void qtqmlModule_data();
+ void qtqmlModule();
public slots:
QObject *createAQObjectForOwnershipTest ()
@@ -565,6 +567,79 @@ void tst_qqmlengine::multipleEngines()
}
}
+void tst_qqmlengine::qtqmlModule_data()
+{
+ QTest::addColumn<QUrl>("testFile");
+ QTest::addColumn<QString>("expectedError");
+ QTest::addColumn<QStringList>("expectedWarnings");
+
+ QTest::newRow("import QtQml of correct version (2.0)")
+ << testFileUrl("qtqmlModule.1.qml")
+ << QString()
+ << QStringList();
+
+ QTest::newRow("import QtQml of incorrect version (3.0)")
+ << testFileUrl("qtqmlModule.2.qml")
+ << QString(testFileUrl("qtqmlModule.2.qml").toString() + QLatin1String(":1 module \"QtQml\" version 3.0 is not installed\n"))
+ << QStringList();
+
+ QTest::newRow("import QtQml of incorrect version (1.0)")
+ << testFileUrl("qtqmlModule.3.qml")
+ << QString(testFileUrl("qtqmlModule.3.qml").toString() + QLatin1String(":1 module \"QtQml\" version 1.0 is not installed\n"))
+ << QStringList();
+
+ QTest::newRow("import QtQml of incorrect version (2.5)")
+ << testFileUrl("qtqmlModule.4.qml")
+ << QString(testFileUrl("qtqmlModule.4.qml").toString() + QLatin1String(":1 module \"QtQml\" version 2.5 is not installed\n"))
+ << QStringList();
+
+ QTest::newRow("QtQml 2.0 module provides Component and QtObject")
+ << testFileUrl("qtqmlModule.5.qml")
+ << QString()
+ << QStringList();
+
+ QTest::newRow("can import QtQml then QtQuick")
+ << testFileUrl("qtqmlModule.6.qml")
+ << QString()
+ << QStringList();
+
+ QTest::newRow("can import QtQuick then QtQml")
+ << testFileUrl("qtqmlModule.7.qml")
+ << QString()
+ << QStringList();
+
+ QTest::newRow("no import results in no QtObject availability")
+ << testFileUrl("qtqmlModule.8.qml")
+ << QString(testFileUrl("qtqmlModule.8.qml").toString() + QLatin1String(":4 QtObject is not a type\n"))
+ << QStringList();
+
+ QTest::newRow("importing QtQml only results in no Item availability")
+ << testFileUrl("qtqmlModule.9.qml")
+ << QString(testFileUrl("qtqmlModule.9.qml").toString() + QLatin1String(":4 Item is not a type\n"))
+ << QStringList();
+}
+
+// Test that the engine registers the QtQml module
+void tst_qqmlengine::qtqmlModule()
+{
+ QFETCH(QUrl, testFile);
+ QFETCH(QString, expectedError);
+ QFETCH(QStringList, expectedWarnings);
+
+ foreach (const QString &w, expectedWarnings)
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(w));
+
+ QQmlEngine e;
+ QQmlComponent c(&e, testFile);
+ if (expectedError.isEmpty()) {
+ QObject *o = c.create();
+ QVERIFY(o);
+ delete o;
+ } else {
+ QCOMPARE(c.errorString(), expectedError);
+ }
+}
+
QTEST_MAIN(tst_qqmlengine)
#include "tst_qqmlengine.moc"