From e4fec8ece464dd7055505b4c90afad5c9a6390cf Mon Sep 17 00:00:00 2001 From: Matthew Vogt Date: Tue, 14 Feb 2012 13:39:13 +1000 Subject: Copy qmldir files into build tree with associated plugins. The qdeclarativemoduleplugin test verifies that the plugins it constructs are correctly imported. Ths requires that the qmldir files that describe the plugins are copied into the build tree along with the plugins they refer to. QML (and .js, where relevant) files must also be copied into the same directory if they form part of the imported module. Change-Id: I827a0b678a17cac42aadc4f2176fdd8bd693aab1 Reviewed-by: Rohan McGovern --- .../nokia/AutoTestPluginWithQmlFile/MyQmlFile.qml | 3 - .../com/nokia/AutoTestPluginWithQmlFile/qmldir | 3 - .../com/nokia/AutoTestQmlMixedPluginType/Foo.qml | 5 -- .../com/nokia/AutoTestQmlMixedPluginType/qmldir | 2 - .../com/nokia/AutoTestQmlPluginType.2.1/qmldir | 1 - .../com/nokia/AutoTestQmlPluginType.2/qmldir | 1 - .../imports/com/nokia/AutoTestQmlPluginType/qmldir | 1 - .../com/nokia/AutoTestQmlVersionPluginType/qmldir | 1 - .../imports/com/nokia/PureQmlModule/ComponentA.qml | 3 - .../imports/com/nokia/PureQmlModule/ComponentB.qml | 4 -- .../imports/com/nokia/PureQmlModule/qmldir | 3 - .../imports/com/nokia/WrongCase/qmldir | 1 - .../plugin.2.1/plugin.2.1.pro | 2 + .../qdeclarativemoduleplugin/plugin.2.1/qmldir | 1 + .../qdeclarativemoduleplugin/plugin.2/plugin.2.pro | 2 + .../qdeclarativemoduleplugin/plugin.2/qmldir | 1 + .../qdeclarativemoduleplugin/plugin/plugin.pro | 2 + .../qdeclarativemoduleplugin/plugin/qmldir | 1 + .../qdeclarativemoduleplugin/pluginMixed/Foo.qml | 5 ++ .../pluginMixed/pluginMixed.pro | 23 +++++++ .../qdeclarativemoduleplugin/pluginMixed/qmldir | 2 + .../pluginVersion/pluginVersion.pro | 2 + .../qdeclarativemoduleplugin/pluginVersion/qmldir | 1 + .../pluginWithQmlFile/MyQmlFile.qml | 3 + .../pluginWithQmlFile/pluginWithQmlFile.pro | 23 +++++++ .../pluginWithQmlFile/qmldir | 3 + .../pluginWrongCase/pluginWrongCase.pro | 2 + .../pluginWrongCase/qmldir | 1 + .../pureQml/ComponentA.qml | 3 + .../pureQml/ComponentB.qml | 4 ++ .../qdeclarativemoduleplugin/pureQml/plugin.cpp | 75 ++++++++++++++++++++++ .../qdeclarativemoduleplugin/pureQml/pureQml.pro | 52 +++++++++++++++ .../qdeclarativemoduleplugin/pureQml/qmldir | 3 + .../qdeclarativemoduleplugin.pro | 2 +- .../qdeclarativemoduleplugin/qmldir_copier.pri | 19 ++++++ .../tst_qdeclarativemoduleplugin.cpp | 18 +++--- .../declarative/shared/qdeclarativedatatest.cpp | 6 +- .../auto/declarative/shared/qdeclarativedatatest.h | 6 ++ .../declarative/shared/qdeclarativedatatest.pri | 3 +- 39 files changed, 252 insertions(+), 41 deletions(-) delete mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestPluginWithQmlFile/MyQmlFile.qml delete mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestPluginWithQmlFile/qmldir delete mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlMixedPluginType/Foo.qml delete mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlMixedPluginType/qmldir delete mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlPluginType.2.1/qmldir delete mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlPluginType.2/qmldir delete mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlPluginType/qmldir delete mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlVersionPluginType/qmldir delete mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/PureQmlModule/ComponentA.qml delete mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/PureQmlModule/ComponentB.qml delete mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/PureQmlModule/qmldir delete mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/WrongCase/qmldir create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/plugin.2.1/qmldir create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/plugin.2/qmldir create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/plugin/qmldir create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pluginMixed/Foo.qml create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pluginMixed/qmldir create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pluginVersion/qmldir create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pluginWithQmlFile/MyQmlFile.qml create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pluginWithQmlFile/qmldir create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pluginWrongCase/qmldir create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pureQml/ComponentA.qml create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pureQml/ComponentB.qml create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pureQml/plugin.cpp create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pureQml/pureQml.pro create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/pureQml/qmldir create mode 100644 tests/auto/declarative/qdeclarativemoduleplugin/qmldir_copier.pri (limited to 'tests') diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestPluginWithQmlFile/MyQmlFile.qml b/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestPluginWithQmlFile/MyQmlFile.qml deleted file mode 100644 index 18dcd26f..00000000 --- a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestPluginWithQmlFile/MyQmlFile.qml +++ /dev/null @@ -1,3 +0,0 @@ -import QtQuick 1.0 - -Item {} \ No newline at end of file diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestPluginWithQmlFile/qmldir b/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestPluginWithQmlFile/qmldir deleted file mode 100644 index 858ba145..00000000 --- a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestPluginWithQmlFile/qmldir +++ /dev/null @@ -1,3 +0,0 @@ -MyQmlFile 1.0 MyQmlFile.qml -plugin pluginWithQmlFile - diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlMixedPluginType/Foo.qml b/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlMixedPluginType/Foo.qml deleted file mode 100644 index ce51cbd2..00000000 --- a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlMixedPluginType/Foo.qml +++ /dev/null @@ -1,5 +0,0 @@ -import QtQuick 1.0 - -Item { - property int value: 89 -} diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlMixedPluginType/qmldir b/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlMixedPluginType/qmldir deleted file mode 100644 index 065dc3b2..00000000 --- a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlMixedPluginType/qmldir +++ /dev/null @@ -1,2 +0,0 @@ -plugin pluginMixed -Foo 1.5 Foo.qml diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlPluginType.2.1/qmldir b/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlPluginType.2.1/qmldir deleted file mode 100644 index 0a8b5d46..00000000 --- a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlPluginType.2.1/qmldir +++ /dev/null @@ -1 +0,0 @@ -plugin plugin diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlPluginType.2/qmldir b/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlPluginType.2/qmldir deleted file mode 100644 index 0a8b5d46..00000000 --- a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlPluginType.2/qmldir +++ /dev/null @@ -1 +0,0 @@ -plugin plugin diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlPluginType/qmldir b/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlPluginType/qmldir deleted file mode 100644 index 0a8b5d46..00000000 --- a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlPluginType/qmldir +++ /dev/null @@ -1 +0,0 @@ -plugin plugin diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlVersionPluginType/qmldir b/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlVersionPluginType/qmldir deleted file mode 100644 index 640967fe..00000000 --- a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlVersionPluginType/qmldir +++ /dev/null @@ -1 +0,0 @@ -plugin pluginVersion diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/PureQmlModule/ComponentA.qml b/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/PureQmlModule/ComponentA.qml deleted file mode 100644 index 49613aab..00000000 --- a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/PureQmlModule/ComponentA.qml +++ /dev/null @@ -1,3 +0,0 @@ -import QtQuick 1.0 - -Item {} diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/PureQmlModule/ComponentB.qml b/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/PureQmlModule/ComponentB.qml deleted file mode 100644 index f19a336d..00000000 --- a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/PureQmlModule/ComponentB.qml +++ /dev/null @@ -1,4 +0,0 @@ -import QtQuick 1.0 - -Item {} - diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/PureQmlModule/qmldir b/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/PureQmlModule/qmldir deleted file mode 100644 index 167bb10c..00000000 --- a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/PureQmlModule/qmldir +++ /dev/null @@ -1,3 +0,0 @@ -ComponentA 1.0 ComponentA.qml -ComponentB 1.0 ComponentB.qml - diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/WrongCase/qmldir b/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/WrongCase/qmldir deleted file mode 100644 index 6c878749..00000000 --- a/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/WrongCase/qmldir +++ /dev/null @@ -1 +0,0 @@ -plugin PluGin diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/plugin.2.1/plugin.2.1.pro b/tests/auto/declarative/qdeclarativemoduleplugin/plugin.2.1/plugin.2.1.pro index e9dcb87f..568b6c65 100644 --- a/tests/auto/declarative/qdeclarativemoduleplugin/plugin.2.1/plugin.2.1.pro +++ b/tests/auto/declarative/qdeclarativemoduleplugin/plugin.2.1/plugin.2.1.pro @@ -4,6 +4,8 @@ SOURCES = plugin.cpp QT = core quick1 DESTDIR = ../imports/com/nokia/AutoTestQmlPluginType.2.1 +include(../qmldir_copier.pri) + symbian: { TARGET.EPOCALLOWDLLDATA=1 } diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/plugin.2.1/qmldir b/tests/auto/declarative/qdeclarativemoduleplugin/plugin.2.1/qmldir new file mode 100644 index 00000000..0a8b5d46 --- /dev/null +++ b/tests/auto/declarative/qdeclarativemoduleplugin/plugin.2.1/qmldir @@ -0,0 +1 @@ +plugin plugin diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/plugin.2/plugin.2.pro b/tests/auto/declarative/qdeclarativemoduleplugin/plugin.2/plugin.2.pro index ff667b80..ed9759dd 100644 --- a/tests/auto/declarative/qdeclarativemoduleplugin/plugin.2/plugin.2.pro +++ b/tests/auto/declarative/qdeclarativemoduleplugin/plugin.2/plugin.2.pro @@ -4,6 +4,8 @@ SOURCES = plugin.cpp QT = core quick1 DESTDIR = ../imports/com/nokia/AutoTestQmlPluginType.2 +include(../qmldir_copier.pri) + symbian: { TARGET.EPOCALLOWDLLDATA=1 } diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/plugin.2/qmldir b/tests/auto/declarative/qdeclarativemoduleplugin/plugin.2/qmldir new file mode 100644 index 00000000..0a8b5d46 --- /dev/null +++ b/tests/auto/declarative/qdeclarativemoduleplugin/plugin.2/qmldir @@ -0,0 +1 @@ +plugin plugin diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/plugin/plugin.pro b/tests/auto/declarative/qdeclarativemoduleplugin/plugin/plugin.pro index 5ccaf8d3..6db60cba 100644 --- a/tests/auto/declarative/qdeclarativemoduleplugin/plugin/plugin.pro +++ b/tests/auto/declarative/qdeclarativemoduleplugin/plugin/plugin.pro @@ -4,6 +4,8 @@ SOURCES = plugin.cpp QT = core quick1 DESTDIR = ../imports/com/nokia/AutoTestQmlPluginType +include(../qmldir_copier.pri) + symbian: { TARGET.EPOCALLOWDLLDATA=1 } diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/plugin/qmldir b/tests/auto/declarative/qdeclarativemoduleplugin/plugin/qmldir new file mode 100644 index 00000000..0a8b5d46 --- /dev/null +++ b/tests/auto/declarative/qdeclarativemoduleplugin/plugin/qmldir @@ -0,0 +1 @@ +plugin plugin diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/pluginMixed/Foo.qml b/tests/auto/declarative/qdeclarativemoduleplugin/pluginMixed/Foo.qml new file mode 100644 index 00000000..ce51cbd2 --- /dev/null +++ b/tests/auto/declarative/qdeclarativemoduleplugin/pluginMixed/Foo.qml @@ -0,0 +1,5 @@ +import QtQuick 1.0 + +Item { + property int value: 89 +} diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/pluginMixed/pluginMixed.pro b/tests/auto/declarative/qdeclarativemoduleplugin/pluginMixed/pluginMixed.pro index d83ab1e0..df0712e7 100644 --- a/tests/auto/declarative/qdeclarativemoduleplugin/pluginMixed/pluginMixed.pro +++ b/tests/auto/declarative/qdeclarativemoduleplugin/pluginMixed/pluginMixed.pro @@ -4,6 +4,29 @@ SOURCES = plugin.cpp QT = core quick1 DESTDIR = ../imports/com/nokia/AutoTestQmlMixedPluginType +include(../qmldir_copier.pri) + +# Copy the necessary QML files to the build tree +FOO_IN_FILE = $${_PRO_FILE_PWD_}/Foo.qml +FOO_OUT_FILE = $$OUT_PWD/$$DESTDIR/Foo.qml + +FOO_OUT_DIR = $$OUT_PWD/$$DESTDIR +FOO_OUT_DIR ~= s,/,$$QMAKE_DIR_SEP, + +copyFoo.input = FOO_IN_FILE +copyFoo.output = $$FOO_OUT_FILE +!contains(TEMPLATE_PREFIX, vc):copyFoo.variable_out = PRE_TARGETDEPS +win32 { + copyFoo.commands = ( $$QMAKE_CHK_DIR_EXISTS $$FOO_OUT_DIR $(MKDIR) $$FOO_OUT_DIR ) && $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} +} else { + copyFoo.commands = $(MKDIR) $$FOO_OUT_DIR && $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} +} +copyFoo.name = COPY ${QMAKE_FILE_IN} +copyFoo.CONFIG += no_link +# `clean' should leave the build in a runnable state, which means it shouldn't delete +copyFoo.CONFIG += no_clean +QMAKE_EXTRA_COMPILERS += copyFoo + symbian: { TARGET.EPOCALLOWDLLDATA=1 } diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/pluginMixed/qmldir b/tests/auto/declarative/qdeclarativemoduleplugin/pluginMixed/qmldir new file mode 100644 index 00000000..065dc3b2 --- /dev/null +++ b/tests/auto/declarative/qdeclarativemoduleplugin/pluginMixed/qmldir @@ -0,0 +1,2 @@ +plugin pluginMixed +Foo 1.5 Foo.qml diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/pluginVersion/pluginVersion.pro b/tests/auto/declarative/qdeclarativemoduleplugin/pluginVersion/pluginVersion.pro index 33334d9b..ef0176ac 100644 --- a/tests/auto/declarative/qdeclarativemoduleplugin/pluginVersion/pluginVersion.pro +++ b/tests/auto/declarative/qdeclarativemoduleplugin/pluginVersion/pluginVersion.pro @@ -4,6 +4,8 @@ SOURCES = plugin.cpp QT = core quick1 DESTDIR = ../imports/com/nokia/AutoTestQmlVersionPluginType +include(../qmldir_copier.pri) + symbian: { TARGET.EPOCALLOWDLLDATA=1 } diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/pluginVersion/qmldir b/tests/auto/declarative/qdeclarativemoduleplugin/pluginVersion/qmldir new file mode 100644 index 00000000..640967fe --- /dev/null +++ b/tests/auto/declarative/qdeclarativemoduleplugin/pluginVersion/qmldir @@ -0,0 +1 @@ +plugin pluginVersion diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/pluginWithQmlFile/MyQmlFile.qml b/tests/auto/declarative/qdeclarativemoduleplugin/pluginWithQmlFile/MyQmlFile.qml new file mode 100644 index 00000000..18dcd26f --- /dev/null +++ b/tests/auto/declarative/qdeclarativemoduleplugin/pluginWithQmlFile/MyQmlFile.qml @@ -0,0 +1,3 @@ +import QtQuick 1.0 + +Item {} \ No newline at end of file diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/pluginWithQmlFile/pluginWithQmlFile.pro b/tests/auto/declarative/qdeclarativemoduleplugin/pluginWithQmlFile/pluginWithQmlFile.pro index 62f090a6..b9472bdc 100644 --- a/tests/auto/declarative/qdeclarativemoduleplugin/pluginWithQmlFile/pluginWithQmlFile.pro +++ b/tests/auto/declarative/qdeclarativemoduleplugin/pluginWithQmlFile/pluginWithQmlFile.pro @@ -4,6 +4,29 @@ SOURCES = plugin.cpp QT = core quick1 DESTDIR = ../imports/com/nokia/AutoTestPluginWithQmlFile +include(../qmldir_copier.pri) + +# Copy the necessary QML files to the build tree +QML_IN_FILE = $${_PRO_FILE_PWD_}/MyQmlFile.qml +QML_OUT_FILE = $$OUT_PWD/$$DESTDIR/MyQmlFile.qml + +QML_OUT_DIR = $$OUT_PWD/$$DESTDIR +QML_OUT_DIR ~= s,/,$$QMAKE_DIR_SEP, + +copyMyQmlFile.input = QML_IN_FILE +copyMyQmlFile.output = $$QML_OUT_FILE +!contains(TEMPLATE_PREFIX, vc):copyMyQmlFile.variable_out = PRE_TARGETDEPS +win32 { + copyMyQmlFile.commands = ( $$QMAKE_CHK_DIR_EXISTS $$QML_OUT_DIR $(MKDIR) $$QML_OUT_DIR ) && $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} +} else { + copyMyQmlFile.commands = $(MKDIR) $$QML_OUT_DIR && $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} +} +copyMyQmlFile.name = COPY ${QMAKE_FILE_IN} +copyMyQmlFile.CONFIG += no_link +# `clean' should leave the build in a runnable state, which means it shouldn't delete +copyMyQmlFile.CONFIG += no_clean +QMAKE_EXTRA_COMPILERS += copyMyQmlFile + symbian: { TARGET.EPOCALLOWDLLDATA=1 } diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/pluginWithQmlFile/qmldir b/tests/auto/declarative/qdeclarativemoduleplugin/pluginWithQmlFile/qmldir new file mode 100644 index 00000000..858ba145 --- /dev/null +++ b/tests/auto/declarative/qdeclarativemoduleplugin/pluginWithQmlFile/qmldir @@ -0,0 +1,3 @@ +MyQmlFile 1.0 MyQmlFile.qml +plugin pluginWithQmlFile + diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/pluginWrongCase/pluginWrongCase.pro b/tests/auto/declarative/qdeclarativemoduleplugin/pluginWrongCase/pluginWrongCase.pro index 31a4464d..37d19f44 100644 --- a/tests/auto/declarative/qdeclarativemoduleplugin/pluginWrongCase/pluginWrongCase.pro +++ b/tests/auto/declarative/qdeclarativemoduleplugin/pluginWrongCase/pluginWrongCase.pro @@ -5,6 +5,8 @@ QT = core quick1 TARGET = Plugin DESTDIR = ../imports/com/nokia/WrongCase +include(../qmldir_copier.pri) + symbian: { TARGET.EPOCALLOWDLLDATA=1 } diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/pluginWrongCase/qmldir b/tests/auto/declarative/qdeclarativemoduleplugin/pluginWrongCase/qmldir new file mode 100644 index 00000000..6c878749 --- /dev/null +++ b/tests/auto/declarative/qdeclarativemoduleplugin/pluginWrongCase/qmldir @@ -0,0 +1 @@ +plugin PluGin diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/pureQml/ComponentA.qml b/tests/auto/declarative/qdeclarativemoduleplugin/pureQml/ComponentA.qml new file mode 100644 index 00000000..49613aab --- /dev/null +++ b/tests/auto/declarative/qdeclarativemoduleplugin/pureQml/ComponentA.qml @@ -0,0 +1,3 @@ +import QtQuick 1.0 + +Item {} diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/pureQml/ComponentB.qml b/tests/auto/declarative/qdeclarativemoduleplugin/pureQml/ComponentB.qml new file mode 100644 index 00000000..f19a336d --- /dev/null +++ b/tests/auto/declarative/qdeclarativemoduleplugin/pureQml/ComponentB.qml @@ -0,0 +1,4 @@ +import QtQuick 1.0 + +Item {} + diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/pureQml/plugin.cpp b/tests/auto/declarative/qdeclarativemoduleplugin/pureQml/plugin.cpp new file mode 100644 index 00000000..48dca0ae --- /dev/null +++ b/tests/auto/declarative/qdeclarativemoduleplugin/pureQml/plugin.cpp @@ -0,0 +1,75 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include +#include +#include + +// Note: this plugin is unused! + +class DummyPluginType : public QObject +{ + Q_OBJECT +public: + DummyPluginType(QObject *parent=0) : QObject(parent) + { + qWarning("import worked"); + } +}; + + +class DummyPlugin : public QDeclarativeExtensionPlugin +{ + Q_OBJECT +public: + DummyPlugin() + { + qWarning("plugin created"); + } + + void registerTypes(const char *uri) + { + } +}; + +#include "plugin.moc" + +Q_EXPORT_PLUGIN2(plugin, DummyPlugin); diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/pureQml/pureQml.pro b/tests/auto/declarative/qdeclarativemoduleplugin/pureQml/pureQml.pro new file mode 100644 index 00000000..0be2608b --- /dev/null +++ b/tests/auto/declarative/qdeclarativemoduleplugin/pureQml/pureQml.pro @@ -0,0 +1,52 @@ +TEMPLATE = lib +CONFIG += plugin +SOURCES = plugin.cpp +QT = core quick1 +DESTDIR = ../imports/com/nokia/PureQmlModule + +include(../qmldir_copier.pri) + +# Copy the necessary QML files to the build tree +COMPONENTA_IN_FILE = $${_PRO_FILE_PWD_}/ComponentA.qml +COMPONENTA_OUT_FILE = $$OUT_PWD/$$DESTDIR/ComponentA.qml + +COMPONENTA_OUT_DIR = $$OUT_PWD/$$DESTDIR +COMPONENTA_OUT_DIR ~= s,/,$$QMAKE_DIR_SEP, + +copyComponentA.input = COMPONENTA_IN_FILE +copyComponentA.output = $$COMPONENTA_OUT_FILE +!contains(TEMPLATE_PREFIX, vc):copyComponentA.variable_out = PRE_TARGETDEPS +win32 { + copyComponentA.commands = ( $$QMAKE_CHK_DIR_EXISTS $$COMPONENTA_OUT_DIR $(MKDIR) $$COMPONENTA_OUT_DIR ) && $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} +} else { + copyComponentA.commands = $(MKDIR) $$COMPONENTA_OUT_DIR && $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} +} +copyComponentA.name = COPY ${QMAKE_FILE_IN} +copyComponentA.CONFIG += no_link +# `clean' should leave the build in a runnable state, which means it shouldn't delete +copyComponentA.CONFIG += no_clean +QMAKE_EXTRA_COMPILERS += copyComponentA + +COMPONENTB_IN_FILE = $${_PRO_FILE_PWD_}/ComponentB.qml +COMPONENTB_OUT_FILE = $$OUT_PWD/$$DESTDIR/ComponentB.qml + +COMPONENTB_OUT_DIR = $$OUT_PWD/$$DESTDIR +COMPONENTB_OUT_DIR ~= s,/,$$QMAKE_DIR_SEP, + +copyComponentB.input = COMPONENTB_IN_FILE +copyComponentB.output = $$COMPONENTB_OUT_FILE +!contains(TEMPLATE_PREFIX, vc):copyComponentB.variable_out = PRE_TARGETDEPS +win32 { + copyComponentB.commands = ( $$QMAKE_CHK_DIR_EXISTS $$COMPONENTB_OUT_DIR $(MKDIR) $$COMPONENTB_OUT_DIR ) && $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} +} else { + copyComponentB.commands = $(MKDIR) $$COMPONENTB_OUT_DIR && $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} +} +copyComponentB.name = COPY ${QMAKE_FILE_IN} +copyComponentB.CONFIG += no_link +# `clean' should leave the build in a runnable state, which means it shouldn't delete +copyComponentB.CONFIG += no_clean +QMAKE_EXTRA_COMPILERS += copyComponentB + +symbian: { + TARGET.EPOCALLOWDLLDATA=1 +} diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/pureQml/qmldir b/tests/auto/declarative/qdeclarativemoduleplugin/pureQml/qmldir new file mode 100644 index 00000000..167bb10c --- /dev/null +++ b/tests/auto/declarative/qdeclarativemoduleplugin/pureQml/qmldir @@ -0,0 +1,3 @@ +ComponentA 1.0 ComponentA.qml +ComponentB 1.0 ComponentB.qml + diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/qdeclarativemoduleplugin.pro b/tests/auto/declarative/qdeclarativemoduleplugin/qdeclarativemoduleplugin.pro index 248da333..702dcfd6 100644 --- a/tests/auto/declarative/qdeclarativemoduleplugin/qdeclarativemoduleplugin.pro +++ b/tests/auto/declarative/qdeclarativemoduleplugin/qdeclarativemoduleplugin.pro @@ -1,6 +1,6 @@ QT = core testlib TEMPLATE = subdirs -SUBDIRS = plugin plugin.2 plugin.2.1 pluginWrongCase pluginWithQmlFile pluginMixed pluginVersion +SUBDIRS = plugin plugin.2 plugin.2.1 pluginWrongCase pluginWithQmlFile pluginMixed pluginVersion pureQml tst_qdeclarativemoduleplugin_pro.depends += plugin SUBDIRS += tst_qdeclarativemoduleplugin.pro diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/qmldir_copier.pri b/tests/auto/declarative/qdeclarativemoduleplugin/qmldir_copier.pri new file mode 100644 index 00000000..034919fa --- /dev/null +++ b/tests/auto/declarative/qdeclarativemoduleplugin/qmldir_copier.pri @@ -0,0 +1,19 @@ +COPY_IN_FILE = $${_PRO_FILE_PWD_}/qmldir +COPY_OUT_FILE = $$OUT_PWD/$$DESTDIR/qmldir + +COPY_OUT_DIR = $$OUT_PWD/$$DESTDIR +COPY_OUT_DIR ~= s,/,$$QMAKE_DIR_SEP, + +copy2build.input = COPY_IN_FILE +copy2build.output = $$COPY_OUT_FILE +!contains(TEMPLATE_PREFIX, vc):copy2build.variable_out = PRE_TARGETDEPS +win32 { + copy2build.commands = ( $$QMAKE_CHK_DIR_EXISTS $$COPY_OUT_DIR $(MKDIR) $$COPY_OUT_DIR ) && $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} +} else { + copy2build.commands = $(MKDIR) $$COPY_OUT_DIR && $$QMAKE_COPY ${QMAKE_FILE_IN} ${QMAKE_FILE_OUT} +} +copy2build.name = COPY ${QMAKE_FILE_IN} +copy2build.CONFIG += no_link +# `clean' should leave the build in a runnable state, which means it shouldn't delete qmldir +copy2build.CONFIG += no_clean +QMAKE_EXTRA_COMPILERS += copy2build diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp b/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp index 9dc29226..f24052fb 100644 --- a/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp +++ b/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp @@ -112,7 +112,7 @@ private slots: void tst_qdeclarativemoduleplugin::importsPlugin() { QDeclarativeEngine engine; - engine.addImportPath(directory() + QDir::separator() + QLatin1String("imports")); + engine.addImportPath(importsDirectory()); QTest::ignoreMessage(QtWarningMsg, "plugin created"); QTest::ignoreMessage(QtWarningMsg, "import worked"); QDeclarativeComponent component(&engine, testFileUrl("works.qml")); @@ -128,7 +128,7 @@ void tst_qdeclarativemoduleplugin::importsPlugin() void tst_qdeclarativemoduleplugin::importsPlugin2() { QDeclarativeEngine engine; - engine.addImportPath(directory() + QDir::separator() + QLatin1String("imports")); + engine.addImportPath(importsDirectory()); QTest::ignoreMessage(QtWarningMsg, "plugin2 created"); QTest::ignoreMessage(QtWarningMsg, "import2 worked"); QDeclarativeComponent component(&engine, testFileUrl("works2.qml")); @@ -144,7 +144,7 @@ void tst_qdeclarativemoduleplugin::importsPlugin2() void tst_qdeclarativemoduleplugin::importsPlugin21() { QDeclarativeEngine engine; - engine.addImportPath(directory() + QDir::separator() + QLatin1String("imports")); + engine.addImportPath(importsDirectory()); QTest::ignoreMessage(QtWarningMsg, "plugin2.1 created"); QTest::ignoreMessage(QtWarningMsg, "import2.1 worked"); QDeclarativeComponent component(&engine, testFileUrl("works21.qml")); @@ -160,7 +160,7 @@ void tst_qdeclarativemoduleplugin::importsPlugin21() void tst_qdeclarativemoduleplugin::incorrectPluginCase() { QDeclarativeEngine engine; - engine.addImportPath(directory() + QDir::separator() + QLatin1String("imports")); + engine.addImportPath(importsDirectory()); QDeclarativeComponent component(&engine, testFileUrl("incorrectCase.qml")); @@ -183,7 +183,7 @@ void tst_qdeclarativemoduleplugin::incorrectPluginCase() void tst_qdeclarativemoduleplugin::importPluginWithQmlFile() { - QString path = directory() + QDir::separator() + QLatin1String("imports"); + QString path = importsDirectory(); // QTBUG-16885: adding an import path with a lower-case "c:" causes assert failure // (this only happens if the plugin includes pure QML files) @@ -208,7 +208,7 @@ void tst_qdeclarativemoduleplugin::remoteImportWithQuotedUrl() { TestHTTPServer server(SERVER_PORT); QVERIFY(server.isValid()); - server.serveDirectory(directory() + QStringLiteral("/imports")); + server.serveDirectory(importsDirectory()); QDeclarativeEngine engine; QDeclarativeComponent component(&engine); @@ -232,7 +232,7 @@ void tst_qdeclarativemoduleplugin::remoteImportWithUnquotedUri() server.serveDirectory(directory() + QStringLiteral("/imports")); QDeclarativeEngine engine; - engine.addImportPath(directory() + QDir::separator() + QLatin1String("imports")); + engine.addImportPath(importsDirectory()); QDeclarativeComponent component(&engine); component.setData("import com.nokia.PureQmlModule 1.0 \nComponentA { width: 300; ComponentB{} }", QUrl()); @@ -252,7 +252,7 @@ void tst_qdeclarativemoduleplugin::remoteImportWithUnquotedUri() void tst_qdeclarativemoduleplugin::importsMixedQmlCppPlugin() { QDeclarativeEngine engine; - engine.addImportPath(directory() + QDir::separator() + QLatin1String("imports")); + engine.addImportPath(importsDirectory()); { QDeclarativeComponent component(&engine, testFileUrl("importsMixedQmlCppPlugin.qml")); @@ -291,7 +291,7 @@ void tst_qdeclarativemoduleplugin::versionNotInstalled() QFETCH(QString, errorFile); QDeclarativeEngine engine; - engine.addImportPath(directory() + QDir::separator() + QLatin1String("imports")); + engine.addImportPath(importsDirectory()); QDeclarativeComponent component(&engine, testFileUrl(file)); VERIFY_ERRORS(errorFile.toLatin1().constData()); diff --git a/tests/auto/declarative/shared/qdeclarativedatatest.cpp b/tests/auto/declarative/shared/qdeclarativedatatest.cpp index 12fc9d13..626da488 100644 --- a/tests/auto/declarative/shared/qdeclarativedatatest.cpp +++ b/tests/auto/declarative/shared/qdeclarativedatatest.cpp @@ -52,11 +52,13 @@ QDeclarativeDataTest *QDeclarativeDataTest::m_instance = 0; QDeclarativeDataTest::QDeclarativeDataTest() : #ifdef QT_TESTCASE_BUILDDIR m_dataDirectory(QTest::qFindTestData("data", QT_DECLARATIVETEST_DATADIR, 0, QT_TESTCASE_BUILDDIR)), + m_importsDirectory(QTest::qFindTestData("imports", QT_DECLARATIVETEST_IMPORTSDIR, 0, QT_TESTCASE_BUILDDIR)), #else m_dataDirectory(QTest::qFindTestData("data", QT_DECLARATIVETEST_DATADIR, 0)), + m_importsDirectory(QTest::qFindTestData("imports", QT_DECLARATIVETEST_IMPORTSDIR, 0)), #endif - - m_dataDirectoryUrl(QUrl::fromLocalFile(m_dataDirectory + QLatin1Char('/'))) + m_dataDirectoryUrl(QUrl::fromLocalFile(m_dataDirectory + QLatin1Char('/'))), + m_importsDirectoryUrl(QUrl::fromLocalFile(m_importsDirectory + QLatin1Char('/'))) { m_instance = this; } diff --git a/tests/auto/declarative/shared/qdeclarativedatatest.h b/tests/auto/declarative/shared/qdeclarativedatatest.h index 9f73d9eb..78341335 100644 --- a/tests/auto/declarative/shared/qdeclarativedatatest.h +++ b/tests/auto/declarative/shared/qdeclarativedatatest.h @@ -69,6 +69,10 @@ public: inline QString dataDirectory() const { return m_dataDirectory; } inline QUrl dataDirectoryUrl() const { return m_dataDirectoryUrl; } + + inline QString importsDirectory() const { return m_importsDirectory; } + inline QUrl importsDirectoryUrl() const { return m_importsDirectoryUrl; } + inline QString directory() const { return m_directory; } static inline QDeclarativeDataTest *instance() { return m_instance; } @@ -83,7 +87,9 @@ private: static QDeclarativeDataTest *m_instance; const QString m_dataDirectory; + const QString m_importsDirectory; const QUrl m_dataDirectoryUrl; + const QUrl m_importsDirectoryUrl; QString m_directory; }; diff --git a/tests/auto/declarative/shared/qdeclarativedatatest.pri b/tests/auto/declarative/shared/qdeclarativedatatest.pri index 9275f50d..6f712fd2 100644 --- a/tests/auto/declarative/shared/qdeclarativedatatest.pri +++ b/tests/auto/declarative/shared/qdeclarativedatatest.pri @@ -3,4 +3,5 @@ SOURCES += $$PWD/qdeclarativedatatest.cpp INCLUDEPATH += $$PWD -DEFINES += QT_DECLARATIVETEST_DATADIR=\\\"$${_PRO_FILE_PWD_}/data\\\" +DEFINES += QT_DECLARATIVETEST_DATADIR=\\\"$${_PRO_FILE_PWD_}/data\\\" \ + QT_DECLARATIVETEST_IMPORTSDIR=\\\"$${_PRO_FILE_PWD_}/imports\\\" -- cgit v1.2.3