summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAssam Boudjelthia <assam.boudjelthia@qt.io>2022-04-05 16:33:36 +0300
committerAssam Boudjelthia <assam.boudjelthia@qt.io>2022-04-11 15:16:14 +0300
commit551a0170a2a68045fe8244b229ffff9a47c0444f (patch)
tree9049ab7e1108b3ad2652a0d5a89d055be27e0228 /tests
parent926be6315dcbc2aae9ad10dc64cc0429645ba07c (diff)
Android: Move tst_scxmlqmlcpp inlined QQmlComponent data to a qml file
This ensures that qmlimportscanner finds the necessary modules and that androiddeployqt packages their libs. Pick-to: 6.2 6.3 Change-Id: Icc91fc828d770a1b5cc8e489b117595f1f6d2783 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Pasi Petäjäjärvi <pasi.petajajarvi@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qml/scxmlqmlcpp/CMakeLists.txt27
-rw-r--r--tests/auto/qml/scxmlqmlcpp/data/brokenstatemachine.scxml (renamed from tests/auto/qml/scxmlqmlcpp/brokenstatemachine.scxml)0
-rw-r--r--tests/auto/qml/scxmlqmlcpp/data/stateMachineLoader.qml8
-rw-r--r--tests/auto/qml/scxmlqmlcpp/data/statemachine.scxml (renamed from tests/auto/qml/scxmlqmlcpp/statemachine.scxml)0
-rw-r--r--tests/auto/qml/scxmlqmlcpp/data/submachineA.scxml (renamed from tests/auto/qml/scxmlqmlcpp/submachineA.scxml)0
-rw-r--r--tests/auto/qml/scxmlqmlcpp/data/submachineB.scxml (renamed from tests/auto/qml/scxmlqmlcpp/submachineB.scxml)0
-rw-r--r--tests/auto/qml/scxmlqmlcpp/data/topmachine.scxml (renamed from tests/auto/qml/scxmlqmlcpp/topmachine.scxml)0
-rw-r--r--tests/auto/qml/scxmlqmlcpp/tst_scxmlqmlcpp.cpp41
8 files changed, 51 insertions, 25 deletions
diff --git a/tests/auto/qml/scxmlqmlcpp/CMakeLists.txt b/tests/auto/qml/scxmlqmlcpp/CMakeLists.txt
index 62e9f10..5436a4f 100644
--- a/tests/auto/qml/scxmlqmlcpp/CMakeLists.txt
+++ b/tests/auto/qml/scxmlqmlcpp/CMakeLists.txt
@@ -1,24 +1,31 @@
+# Collect test data
+file(GLOB_RECURSE test_data_glob
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ data/*)
+list(APPEND test_data ${test_data_glob})
+
qt_internal_add_test(tst_scxmlqmlcpp
SOURCES
+ ../../shared/util.cpp ../../shared/util.h
tst_scxmlqmlcpp.cpp
LIBRARIES
Qt::Scxml
Qt::ScxmlQmlPrivate
Qt::CorePrivate
Qt::TestPrivate
+ TESTDATA ${test_data}
+)
+
+qt_internal_extend_target(tst_scxmlqmlcpp CONDITION ANDROID OR IOS
+ DEFINES
+ QT_QMLTEST_DATADIR=\\\":/data\\\"
)
-qt_internal_add_resource(tst_scxmlqmlcpp "tst_compiled"
- PREFIX
- "/"
- FILES
- "submachineA.scxml"
- "submachineB.scxml"
- "topmachine.scxml"
- "statemachine.scxml"
- "brokenstatemachine.scxml"
+qt_internal_extend_target(tst_scxmlqmlcpp CONDITION NOT ANDROID AND NOT IOS
+ DEFINES
+ QT_QMLTEST_DATADIR=\\\"${CMAKE_CURRENT_SOURCE_DIR}/data\\\"
)
qt6_add_statecharts(tst_scxmlqmlcpp
- topmachine.scxml
+ "data/topmachine.scxml"
)
diff --git a/tests/auto/qml/scxmlqmlcpp/brokenstatemachine.scxml b/tests/auto/qml/scxmlqmlcpp/data/brokenstatemachine.scxml
index 4864303..4864303 100644
--- a/tests/auto/qml/scxmlqmlcpp/brokenstatemachine.scxml
+++ b/tests/auto/qml/scxmlqmlcpp/data/brokenstatemachine.scxml
diff --git a/tests/auto/qml/scxmlqmlcpp/data/stateMachineLoader.qml b/tests/auto/qml/scxmlqmlcpp/data/stateMachineLoader.qml
new file mode 100644
index 0000000..4014a6b
--- /dev/null
+++ b/tests/auto/qml/scxmlqmlcpp/data/stateMachineLoader.qml
@@ -0,0 +1,8 @@
+import QtQuick
+import QtScxml
+
+Item {
+ StateMachineLoader {
+ objectName: 'sml'
+ }
+}
diff --git a/tests/auto/qml/scxmlqmlcpp/statemachine.scxml b/tests/auto/qml/scxmlqmlcpp/data/statemachine.scxml
index 3cf023e..3cf023e 100644
--- a/tests/auto/qml/scxmlqmlcpp/statemachine.scxml
+++ b/tests/auto/qml/scxmlqmlcpp/data/statemachine.scxml
diff --git a/tests/auto/qml/scxmlqmlcpp/submachineA.scxml b/tests/auto/qml/scxmlqmlcpp/data/submachineA.scxml
index 0924b2e..0924b2e 100644
--- a/tests/auto/qml/scxmlqmlcpp/submachineA.scxml
+++ b/tests/auto/qml/scxmlqmlcpp/data/submachineA.scxml
diff --git a/tests/auto/qml/scxmlqmlcpp/submachineB.scxml b/tests/auto/qml/scxmlqmlcpp/data/submachineB.scxml
index 0924b2e..0924b2e 100644
--- a/tests/auto/qml/scxmlqmlcpp/submachineB.scxml
+++ b/tests/auto/qml/scxmlqmlcpp/data/submachineB.scxml
diff --git a/tests/auto/qml/scxmlqmlcpp/topmachine.scxml b/tests/auto/qml/scxmlqmlcpp/data/topmachine.scxml
index b733c6a..b733c6a 100644
--- a/tests/auto/qml/scxmlqmlcpp/topmachine.scxml
+++ b/tests/auto/qml/scxmlqmlcpp/data/topmachine.scxml
diff --git a/tests/auto/qml/scxmlqmlcpp/tst_scxmlqmlcpp.cpp b/tests/auto/qml/scxmlqmlcpp/tst_scxmlqmlcpp.cpp
index 3e13621..c3834c9 100644
--- a/tests/auto/qml/scxmlqmlcpp/tst_scxmlqmlcpp.cpp
+++ b/tests/auto/qml/scxmlqmlcpp/tst_scxmlqmlcpp.cpp
@@ -26,6 +26,8 @@
**
****************************************************************************/
+#include "../../shared/util.h"
+
#include <QtTest>
#include <QtTest/private/qpropertytesthelper_p.h>
#include <QtScxml/QScxmlStateMachine>
@@ -39,12 +41,12 @@
#include <QtQml/QQmlComponent>
#include <memory>
-class tst_scxmlqmlcpp: public QObject
+class tst_scxmlqmlcpp : public QQmlDataTest
{
Q_OBJECT
private slots:
- void initTestCase();
+ void initTestCase() override;
void eventConnectionStateMachineBinding();
void eventConnectionEventsBinding();
@@ -66,6 +68,7 @@ private:
void tst_scxmlqmlcpp::initTestCase()
{
+ QQmlDataTest::initTestCase();
m_stateMachine1.reset(QScxmlStateMachine::fromFile("no_real_file_needed"));
m_stateMachine2.reset(QScxmlStateMachine::fromFile("no_real_file_needed"));
}
@@ -134,16 +137,13 @@ void tst_scxmlqmlcpp::stateMachineLoaderSourceStateMachineBinding()
{
// Test source and stateMachine together as they interact with each other
- QUrl source1(QStringLiteral("qrc:///statemachine.scxml"));
- QUrl source2(QStringLiteral("qrc:///topmachine.scxml"));
+ QUrl source1(testFileUrl("statemachine.scxml"));
+ QUrl source2(testFileUrl("topmachine.scxml"));
// The 'setSource' of the statemachineloader assumes a valid qml context
QQmlEngine engine;
- QQmlComponent component(&engine);
- component.setData(
- "import QtQuick;\n"
- "import QtScxml;\n"
- "Item { StateMachineLoader { objectName: \'sml\'; } }",
- QUrl());
+ const QUrl smlUrl = testFileUrl("stateMachineLoader.qml");
+ QQmlComponent component(&engine, smlUrl);
+ QVERIFY2(component.isReady(), qPrintable(component.errorString()));
std::unique_ptr<QObject> root(component.create());
QScxmlStateMachineLoader *sml =
qobject_cast<QScxmlStateMachineLoader*>(root->findChild<QObject*>("sml"));
@@ -160,21 +160,32 @@ void tst_scxmlqmlcpp::stateMachineLoaderSourceStateMachineBinding()
// -- StateMachineLoader::stateMachine
// The statemachine can be set indirectly by setting the 'source'
QSignalSpy smSpy(sml, &QScxmlStateMachineLoader::stateMachineChanged);
- QUrl sourceNonexistent(QStringLiteral("qrc:///file_doesnt_exist.scxml"));
- QUrl sourceBroken(QStringLiteral("qrc:///brokenstatemachine.scxml"));
+ QUrl sourceNonexistent(testFileUrl("file_doesnt_exist.scxml"));
+ QUrl sourceBroken(testFileUrl("brokenstatemachine.scxml"));
QVERIFY(sml->stateMachine() != nullptr);
QTest::ignoreMessage(QtWarningMsg,
- "<Unknown File>:3:8: QML StateMachineLoader: Cannot open 'qrc:///file_doesnt_exist.scxml' for reading.");
+ qPrintable(smlUrl.toString() + ":5:5: QML StateMachineLoader: " +
+ "Cannot open '" + sourceNonexistent.toString() + "' for reading."));
sml->setSource(sourceNonexistent);
QVERIFY(sml->stateMachine() == nullptr);
QCOMPARE(smSpy.count(), 1);
+
+ QString sourceBrokenNoScheme;
+ if (sourceBroken.scheme() == QStringLiteral("qrc"))
+ sourceBrokenNoScheme = QStringLiteral(":") + sourceBroken.path();
+ else
+ sourceBrokenNoScheme = sourceBroken.toLocalFile();
QTest::ignoreMessage(QtWarningMsg,
- "<Unknown File>:3:8: QML StateMachineLoader: :/brokenstatemachine.scxml:59:1: error: initial state 'working' not found for <scxml> element");
+ qPrintable(smlUrl.toString() + ":5:5: QML StateMachineLoader: " +
+ sourceBrokenNoScheme + ":59:1: error: initial state 'working' " +
+ "not found for <scxml> element"));
+
QTest::ignoreMessage(QtWarningMsg,
"SCXML document has errors");
QTest::ignoreMessage(QtWarningMsg,
- "<Unknown File>:3:8: QML StateMachineLoader: Something went wrong while parsing 'qrc:///brokenstatemachine.scxml':\n");
+ qPrintable(smlUrl.toString() + ":5:5: QML StateMachineLoader: Something " +
+ "went wrong while parsing '" + sourceBroken.toString() + "':\n"));
sml->setSource(sourceBroken);
QVERIFY(sml->stateMachine() == nullptr);
QCOMPARE(smSpy.count(), 1);