aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qqmlengine
diff options
context:
space:
mode:
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"