diff options
author | Qt by Nokia <qt-info@nokia.com> | 2011-04-27 14:13:26 +0200 |
---|---|---|
committer | axis <qt-info@nokia.com> | 2011-04-27 14:40:44 +0200 |
commit | a129444bb0156c936900dbd2f12bd9f427ff366c (patch) | |
tree | e2e8e77f185d5a5ac32ea0a96cd9945c742e8663 /tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp | |
parent | 885735d011472bcfbb96e688d9e64553d7fe9d4b (diff) |
Initial import from qtquick2.
Branched from the monolithic repo, Qt qtquick2 branch, at commit
a4a585d2ee907746682846ae6e8a48e19deef469
Diffstat (limited to 'tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp')
-rw-r--r-- | tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp | 49 |
1 files changed, 48 insertions, 1 deletions
diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp b/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp index 9d1c609616..06b65d3c6f 100644 --- a/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp +++ b/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp @@ -70,6 +70,7 @@ private slots: void remoteImportWithUnquotedUri(); void versionNotInstalled(); void versionNotInstalled_data(); + void implicitQmldir(); }; #ifdef Q_OS_SYMBIAN @@ -119,7 +120,6 @@ inline QUrl TEST_FILE(const QString &filename) return QUrl::fromLocalFile(fileInfo.absoluteDir().filePath(filename)); } - void tst_qdeclarativemoduleplugin::importsPlugin() { QDeclarativeEngine engine; @@ -308,6 +308,53 @@ void tst_qdeclarativemoduleplugin::versionNotInstalled() VERIFY_ERRORS(errorFile.toLatin1().constData()); } + +// test that errors are reporting correctly for plugin loading and qmldir parsing +void tst_qdeclarativemoduleplugin::implicitQmldir() +{ + QDeclarativeEngine engine; + + QObject *obj = 0; + QList<QDeclarativeError> errors; + QString qmldirUrl; + QStringList expectedErrors; + + // parsing qmldir succeeds, but plugin specified in the qmldir file doesn't exist + QDeclarativeComponent c(&engine, TEST_FILE("data/implicit1/temptest.qml")); + qmldirUrl = TEST_FILE("data/implicit1/qmldir").toString(); + errors = c.errors(); + QString moduleName = TEST_FILE("data/implicit1").toString().remove(0,7).replace(QLatin1String("/"), QLatin1String(".")); + expectedErrors << QString(QLatin1String(": module \"") + moduleName + QLatin1String("\" plugin \"AType\" not found")); + QVERIFY(errors.size() == expectedErrors.size()); + for (int i = 0; i < errors.size(); ++i) { + QString msg = qmldirUrl + expectedErrors.at(i); + QCOMPARE(errors.at(i).toString(), msg); // ensure that the expected message matches the real message. + } + QTest::ignoreMessage(QtWarningMsg, "QDeclarativeComponent: Component is not ready"); + obj = c.create(); + QVERIFY(!obj); + delete obj; + + // parsing qmldir fails due to syntax errors etc. + QDeclarativeComponent c2(&engine, TEST_FILE("data/implicit2/temptest2.qml")); + qmldirUrl = TEST_FILE("data/implicit2/qmldir").toString(); + errors = c2.errors(); + expectedErrors = QStringList(); + expectedErrors << QLatin1String(":1:12: unexpected token"); + expectedErrors << QLatin1String(":1: expected '.'"); + expectedErrors << QLatin1String(":2:17: unexpected token"); + QVERIFY(errors.size() == expectedErrors.size()); + for (int i = 0; i < errors.size(); ++i) { + QString msg = qmldirUrl + expectedErrors.at(i); + QCOMPARE(errors.at(i).toString(), msg); // ensure that the expected message matches the real message. + } + QTest::ignoreMessage(QtWarningMsg, "QDeclarativeComponent: Component is not ready"); + obj = c2.create(); + QVERIFY(!obj); + delete obj; +} + + QTEST_MAIN(tst_qdeclarativemoduleplugin) #include "tst_qdeclarativemoduleplugin.moc" |