diff options
Diffstat (limited to 'tests/auto')
3 files changed, 23 insertions, 8 deletions
diff --git a/tests/auto/qml/qquickworkerscript/data/messagehandler.mjs b/tests/auto/qml/qquickworkerscript/data/messagehandler.mjs new file mode 100644 index 0000000000..749ff561da --- /dev/null +++ b/tests/auto/qml/qquickworkerscript/data/messagehandler.mjs @@ -0,0 +1,4 @@ + +export function messageHandler(msg) { + WorkerScript.sendMessage("Hello from the module") +} diff --git a/tests/auto/qml/qquickworkerscript/data/script_module.mjs b/tests/auto/qml/qquickworkerscript/data/script_module.mjs new file mode 100644 index 0000000000..eaa191c5a7 --- /dev/null +++ b/tests/auto/qml/qquickworkerscript/data/script_module.mjs @@ -0,0 +1,5 @@ + +import { messageHandler as handler } from "./messagehandler.mjs"; + +WorkerScript.onMessage = handler + diff --git a/tests/auto/qml/qquickworkerscript/tst_qquickworkerscript.cpp b/tests/auto/qml/qquickworkerscript/tst_qquickworkerscript.cpp index e21a53b4f3..4ad58ba56c 100644 --- a/tests/auto/qml/qquickworkerscript/tst_qquickworkerscript.cpp +++ b/tests/auto/qml/qquickworkerscript/tst_qquickworkerscript.cpp @@ -77,24 +77,30 @@ private: void tst_QQuickWorkerScript::source() { QQmlComponent component(&m_engine, testFileUrl("worker.qml")); - QQuickWorkerScript *worker = qobject_cast<QQuickWorkerScript*>(component.create()); + QScopedPointer<QQuickWorkerScript>worker(qobject_cast<QQuickWorkerScript*>(component.create())); QVERIFY(worker != nullptr); const QMetaObject *mo = worker->metaObject(); QVariant value(100); - QVERIFY(QMetaObject::invokeMethod(worker, "testSend", Q_ARG(QVariant, value))); - waitForEchoMessage(worker); - QCOMPARE(mo->property(mo->indexOfProperty("response")).read(worker).value<QVariant>(), value); + QVERIFY(QMetaObject::invokeMethod(worker.data(), "testSend", Q_ARG(QVariant, value))); + waitForEchoMessage(worker.data()); + QCOMPARE(mo->property(mo->indexOfProperty("response")).read(worker.data()).value<QVariant>(), value); QUrl source = testFileUrl("script_fixed_return.js"); worker->setSource(source); QCOMPARE(worker->source(), source); - QVERIFY(QMetaObject::invokeMethod(worker, "testSend", Q_ARG(QVariant, value))); - waitForEchoMessage(worker); - QCOMPARE(mo->property(mo->indexOfProperty("response")).read(worker).value<QVariant>(), qVariantFromValue(QString("Hello_World"))); + QVERIFY(QMetaObject::invokeMethod(worker.data(), "testSend", Q_ARG(QVariant, value))); + waitForEchoMessage(worker.data()); + QCOMPARE(mo->property(mo->indexOfProperty("response")).read(worker.data()).value<QVariant>(), qVariantFromValue(QString("Hello_World"))); + + source = testFileUrl("script_module.mjs"); + worker->setSource(source); + QCOMPARE(worker->source(), source); + QVERIFY(QMetaObject::invokeMethod(worker.data(), "testSend", Q_ARG(QVariant, value))); + waitForEchoMessage(worker.data()); + QCOMPARE(mo->property(mo->indexOfProperty("response")).read(worker.data()).value<QVariant>(), qVariantFromValue(QString("Hello from the module"))); qApp->processEvents(); - delete worker; } void tst_QQuickWorkerScript::messaging() |