X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=tests%2Fauto%2Fdeclarative%2Fqdeclarativeworkerscript%2Ftst_qdeclarativeworkerscript.cpp;h=92e5df127a048e85a6cb3bc934413e5ed0639f76;hb=45b14259fc0cf704692df1c00da511527d1fba1d;hp=2c85040f5f1b81130d7f95a1e917bc507d9231a8;hpb=8da9d3fe15ff1f587fbe2a180036317335c705a7;p=profile%2Fivi%2Fqtdeclarative.git diff --git a/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp b/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp index 2c85040..92e5df1 100644 --- a/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp +++ b/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp @@ -1,8 +1,7 @@ /**************************************************************************** ** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) +** 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. ** @@ -35,6 +34,7 @@ ** ** ** +** ** $QT_END_LICENSE$ ** ****************************************************************************/ @@ -43,29 +43,16 @@ #include #include #include -#include +#include #include #include -#include #include #include -#include "../../../shared/util.h" - -#ifdef Q_OS_SYMBIAN -// In Symbian OS test data is located in applications private dir -#define SRCDIR "." -#endif - -inline QUrl TEST_FILE(const QString &filename) -{ - QFileInfo fileInfo(__FILE__); - return QUrl::fromLocalFile(fileInfo.absoluteDir().filePath(filename)); -} - +#include "../../shared/util.h" -class tst_QDeclarativeWorkerScript : public QObject +class tst_QDeclarativeWorkerScript : public QDeclarativeDataTest { Q_OBJECT public: @@ -76,6 +63,7 @@ private slots: void messaging_data(); void messaging_sendQObjectList(); void messaging_sendJsObject(); + void messaging_sendExternalObject(); void script_with_pragma(); void script_included(); void scriptError_onLoad(); @@ -99,7 +87,7 @@ private: void tst_QDeclarativeWorkerScript::source() { - QDeclarativeComponent component(&m_engine, SRCDIR "/data/worker.qml"); + QDeclarativeComponent component(&m_engine, testFileUrl("worker.qml")); QDeclarativeWorkerScript *worker = qobject_cast(component.create()); QVERIFY(worker != 0); const QMetaObject *mo = worker->metaObject(); @@ -109,7 +97,7 @@ void tst_QDeclarativeWorkerScript::source() waitForEchoMessage(worker); QCOMPARE(mo->property(mo->indexOfProperty("response")).read(worker).value(), value); - QUrl source = QUrl::fromLocalFile(SRCDIR "/data/script_fixed_return.js"); + QUrl source = testFileUrl("script_fixed_return.js"); worker->setSource(source); QCOMPARE(worker->source(), source); QVERIFY(QMetaObject::invokeMethod(worker, "testSend", Q_ARG(QVariant, value))); @@ -124,7 +112,7 @@ void tst_QDeclarativeWorkerScript::messaging() { QFETCH(QVariant, value); - QDeclarativeComponent component(&m_engine, SRCDIR "/data/worker.qml"); + QDeclarativeComponent component(&m_engine, testFileUrl("worker.qml")); QDeclarativeWorkerScript *worker = qobject_cast(component.create()); QVERIFY(worker != 0); @@ -161,7 +149,7 @@ void tst_QDeclarativeWorkerScript::messaging_sendQObjectList() // instances. If objects are sent in a list, they will be sent as 'undefined' // js values. - QDeclarativeComponent component(&m_engine, SRCDIR "/data/worker.qml"); + QDeclarativeComponent component(&m_engine, testFileUrl("worker.qml")); QDeclarativeWorkerScript *worker = qobject_cast(component.create()); QVERIFY(worker != 0); @@ -182,7 +170,7 @@ void tst_QDeclarativeWorkerScript::messaging_sendQObjectList() void tst_QDeclarativeWorkerScript::messaging_sendJsObject() { - QDeclarativeComponent component(&m_engine, SRCDIR "/data/worker.qml"); + QDeclarativeComponent component(&m_engine, testFileUrl("worker.qml")); QDeclarativeWorkerScript *worker = qobject_cast(component.create()); QVERIFY(worker != 0); @@ -207,11 +195,21 @@ void tst_QDeclarativeWorkerScript::messaging_sendJsObject() delete worker; } +void tst_QDeclarativeWorkerScript::messaging_sendExternalObject() +{ + QDeclarativeComponent component(&m_engine, testFileUrl("externalObjectWorker.qml")); + QObject *obj = component.create(); + QVERIFY(obj); + QMetaObject::invokeMethod(obj, "testExternalObject"); + QTest::qWait(100); // shouldn't crash. + delete obj; +} + void tst_QDeclarativeWorkerScript::script_with_pragma() { QVariant value(100); - QDeclarativeComponent component(&m_engine, SRCDIR "/data/worker_pragma.qml"); + QDeclarativeComponent component(&m_engine, testFileUrl("worker_pragma.qml")); QDeclarativeWorkerScript *worker = qobject_cast(component.create()); QVERIFY(worker != 0); @@ -227,7 +225,7 @@ void tst_QDeclarativeWorkerScript::script_with_pragma() void tst_QDeclarativeWorkerScript::script_included() { - QDeclarativeComponent component(&m_engine, SRCDIR "/data/worker_include.qml"); + QDeclarativeComponent component(&m_engine, testFileUrl("worker_include.qml")); QDeclarativeWorkerScript *worker = qobject_cast(component.create()); QVERIFY(worker != 0); @@ -252,14 +250,14 @@ static void qdeclarativeworkerscript_warningsHandler(QtMsgType type, const char void tst_QDeclarativeWorkerScript::scriptError_onLoad() { - QDeclarativeComponent component(&m_engine, SRCDIR "/data/worker_error_onLoad.qml"); + QDeclarativeComponent component(&m_engine, testFileUrl("worker_error_onLoad.qml")); QtMsgHandler previousMsgHandler = qInstallMsgHandler(qdeclarativeworkerscript_warningsHandler); QDeclarativeWorkerScript *worker = qobject_cast(component.create()); QVERIFY(worker != 0); QTRY_COMPARE(qdeclarativeworkerscript_lastWarning, - TEST_FILE("data/script_error_onLoad.js").toString() + QLatin1String(":3: SyntaxError: Unexpected identifier")); + testFileUrl("script_error_onLoad.js").toString() + QLatin1String(":3: SyntaxError: Unexpected identifier")); qInstallMsgHandler(previousMsgHandler); qApp->processEvents(); @@ -268,7 +266,7 @@ void tst_QDeclarativeWorkerScript::scriptError_onLoad() void tst_QDeclarativeWorkerScript::scriptError_onCall() { - QDeclarativeComponent component(&m_engine, SRCDIR "/data/worker_error_onCall.qml"); + QDeclarativeComponent component(&m_engine, testFileUrl("worker_error_onCall.qml")); QDeclarativeWorkerScript *worker = qobject_cast(component.create()); QVERIFY(worker != 0); @@ -277,7 +275,7 @@ void tst_QDeclarativeWorkerScript::scriptError_onCall() QVERIFY(QMetaObject::invokeMethod(worker, "testSend", Q_ARG(QVariant, value))); QTRY_COMPARE(qdeclarativeworkerscript_lastWarning, - TEST_FILE("data/script_error_onCall.js").toString() + QLatin1String(":4: ReferenceError: Can't find variable: getData")); + testFileUrl("script_error_onCall.js").toString() + QLatin1String(":4: ReferenceError: Can't find variable: getData")); qInstallMsgHandler(previousMsgHandler); qApp->processEvents(); @@ -290,7 +288,7 @@ void tst_QDeclarativeWorkerScript::stressDispose() { for (int ii = 0; ii < 100; ++ii) { QDeclarativeEngine engine; - QDeclarativeComponent component(&engine, SRCDIR "/data/stressDispose.qml"); + QDeclarativeComponent component(&engine, testFileUrl("stressDispose.qml")); QObject *o = component.create(); QVERIFY(o); delete o;