diff options
author | Aaron McCarthy <aaron.mccarthy@nokia.com> | 2012-07-23 10:59:30 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-27 03:29:12 +0200 |
commit | 73842034aac7b9788add4f1ba6cf7a9ec6057598 (patch) | |
tree | 0ac7d6316e3b1e0f5ae2118bd96606d53fd3d443 /tests/auto/qml | |
parent | 3a045419ba588107d7730978c14643d68340f24b (diff) |
Fix QML import paths in Qt resources.
Allow adding qrc: urls as import paths.
Store an import path of the form :/import/path as qrc:/import/path
which is expected by other parts of the code.
Update documentation for QQmlEngine::addImportPath() to explicitly
state what types of paths are supported.
Add auto tests to check that importing a module from a Qt resource
works.
Change-Id: If0e75c75078a608b20d7a5c4080bccf6241e97f6
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
Diffstat (limited to 'tests/auto/qml')
-rw-r--r-- | tests/auto/qml/qrcqml/data/imports/QrcImport/Imported.qml | 5 | ||||
-rw-r--r-- | tests/auto/qml/qrcqml/data/imports/QrcImport/qmldir | 1 | ||||
-rw-r--r-- | tests/auto/qml/qrcqml/data/importtest.qml | 5 | ||||
-rw-r--r-- | tests/auto/qml/qrcqml/qrcqml.qrc | 38 | ||||
-rw-r--r-- | tests/auto/qml/qrcqml/tst_qrcqml.cpp | 31 |
5 files changed, 62 insertions, 18 deletions
diff --git a/tests/auto/qml/qrcqml/data/imports/QrcImport/Imported.qml b/tests/auto/qml/qrcqml/data/imports/QrcImport/Imported.qml new file mode 100644 index 0000000000..c2ef0a6906 --- /dev/null +++ b/tests/auto/qml/qrcqml/data/imports/QrcImport/Imported.qml @@ -0,0 +1,5 @@ +import QtQuick 2.0 + +Item { + property string tokenProperty: "bar" +} diff --git a/tests/auto/qml/qrcqml/data/imports/QrcImport/qmldir b/tests/auto/qml/qrcqml/data/imports/QrcImport/qmldir new file mode 100644 index 0000000000..8eb1fa5c18 --- /dev/null +++ b/tests/auto/qml/qrcqml/data/imports/QrcImport/qmldir @@ -0,0 +1 @@ +Imported 1.0 Imported.qml diff --git a/tests/auto/qml/qrcqml/data/importtest.qml b/tests/auto/qml/qrcqml/data/importtest.qml new file mode 100644 index 0000000000..dd45bd8b98 --- /dev/null +++ b/tests/auto/qml/qrcqml/data/importtest.qml @@ -0,0 +1,5 @@ +import QrcImport 1.0 + +Imported { + tokenProperty: "foo" +} diff --git a/tests/auto/qml/qrcqml/qrcqml.qrc b/tests/auto/qml/qrcqml/qrcqml.qrc index 4ee303a1ee..9ab0565366 100644 --- a/tests/auto/qml/qrcqml/qrcqml.qrc +++ b/tests/auto/qml/qrcqml/qrcqml.qrc @@ -1,19 +1,21 @@ -<!DOCTYPE RCC><RCC version="1.0"> -<qresource> - <file>data/main.qml</file> - <file>data/SameDir.qml</file> - <file>data/SubDir.qml</file> -</qresource> -<qresource> - <!-- unspecified prefix seems to mean '/' --> - <file alias="main.qml">data/main2.qml</file> - <file alias="SameDir.qml">data/SameDir2.qml</file> -</qresource> -<qresource prefix="/search"> - <file alias="main.qml">data/main3.qml</file> - <file alias="SameDir.qml">data/SameDir3.qml</file> -</qresource> -<qresource prefix="/search/data"> - <file alias="SubDir.qml">data/SubDir.qml</file> -</qresource> +<RCC> + <qresource prefix="/"> + <file>data/main.qml</file> + <file>data/SameDir.qml</file> + <file>data/SubDir.qml</file> + <file alias="main.qml">data/main2.qml</file> + <file alias="SameDir.qml">data/SameDir2.qml</file> + <file alias="importtest.qml">data/importtest.qml</file> + </qresource> + <qresource prefix="/search"> + <file alias="main.qml">data/main3.qml</file> + <file alias="SameDir.qml">data/SameDir3.qml</file> + </qresource> + <qresource prefix="/search/data"> + <file alias="SubDir.qml">data/SubDir.qml</file> + </qresource> + <qresource prefix="/imports"> + <file alias="QrcImport/Imported.qml">data/imports/QrcImport/Imported.qml</file> + <file alias="QrcImport/qmldir">data/imports/QrcImport/qmldir</file> + </qresource> </RCC> diff --git a/tests/auto/qml/qrcqml/tst_qrcqml.cpp b/tests/auto/qml/qrcqml/tst_qrcqml.cpp index a09c908069..37a7e7860f 100644 --- a/tests/auto/qml/qrcqml/tst_qrcqml.cpp +++ b/tests/auto/qml/qrcqml/tst_qrcqml.cpp @@ -57,6 +57,8 @@ public: private slots: void basicLoad_data(); void basicLoad(); + void qrcImport_data(); + void qrcImport(); }; tst_qrcqml::tst_qrcqml() @@ -101,6 +103,35 @@ void tst_qrcqml::basicLoad() delete o; } +void tst_qrcqml::qrcImport_data() +{ + QTest::addColumn<QString>("importPath"); + QTest::addColumn<QString>("token"); + + QTest::newRow("qrc path") + << ":/imports" + << "foo"; + + QTest::newRow("qrc url") + << "qrc:/imports" + << "foo"; +} + +void tst_qrcqml::qrcImport() +{ + QFETCH(QString, importPath); + QFETCH(QString, token); + + QQmlEngine e; + e.addImportPath(importPath); + QQmlComponent c(&e, QUrl("qrc:///importtest.qml")); + QVERIFY(c.isReady()); + QObject *o = c.create(); + QVERIFY(o); + QCOMPARE(o->property("tokenProperty").toString(), token); + delete o; +} + QTEST_MAIN(tst_qrcqml) #include "tst_qrcqml.moc" |