diff options
author | Chris Adams <christopher.adams@nokia.com> | 2012-05-23 18:05:10 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-06-21 09:58:56 +0200 |
commit | 03342a435a88656d64d1445991a4421d244fcb45 (patch) | |
tree | c70121da638aed1d8ef1240cae8acf5fddf35dff /tests/auto/qml/qqmlengine | |
parent | b89c6459d760e68c629c0d318d2afd494a2a415a (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.qml | 4 | ||||
-rw-r--r-- | tests/auto/qml/qqmlengine/data/qtqmlModule.2.qml | 4 | ||||
-rw-r--r-- | tests/auto/qml/qqmlengine/data/qtqmlModule.3.qml | 4 | ||||
-rw-r--r-- | tests/auto/qml/qqmlengine/data/qtqmlModule.4.qml | 4 | ||||
-rw-r--r-- | tests/auto/qml/qqmlengine/data/qtqmlModule.5.qml | 5 | ||||
-rw-r--r-- | tests/auto/qml/qqmlengine/data/qtqmlModule.6.qml | 5 | ||||
-rw-r--r-- | tests/auto/qml/qqmlengine/data/qtqmlModule.7.qml | 5 | ||||
-rw-r--r-- | tests/auto/qml/qqmlengine/data/qtqmlModule.8.qml | 5 | ||||
-rw-r--r-- | tests/auto/qml/qqmlengine/data/qtqmlModule.9.qml | 5 | ||||
-rw-r--r-- | tests/auto/qml/qqmlengine/tst_qqmlengine.cpp | 75 |
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" |