diff options
Diffstat (limited to 'tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp')
-rw-r--r-- | tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp | 51 |
1 files changed, 46 insertions, 5 deletions
diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp b/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp index 2cc297171c..3b08229554 100644 --- a/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp +++ b/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp @@ -70,6 +70,8 @@ private slots: void remoteImportWithUnquotedUri(); void versionNotInstalled(); void versionNotInstalled_data(); + void implicitQmldir(); + void implicitQmldir_data(); }; #ifdef Q_OS_SYMBIAN @@ -84,7 +86,8 @@ private slots: QVERIFY(!component.isError()); \ QVERIFY(component.errors().isEmpty()); \ } else { \ - QFile file(QLatin1String("data/") + QLatin1String(errorfile)); \ + QString verify_errors_file_name = QLatin1String(SRCDIR) + QDir::separator() + QLatin1String("data") + QDir::separator() + QLatin1String(errorfile); \ + QFile file(verify_errors_file_name); \ QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text)); \ QByteArray data = file.readAll(); \ file.close(); \ @@ -99,10 +102,11 @@ private slots: error.description().toUtf8(); \ actual << errorStr; \ } \ - if (qgetenv("DEBUG") != "" && expected != actual) \ - qWarning() << "Expected:" << expected << "Actual:" << actual; \ + if (qgetenv("DEBUG") != "" && expected != actual) { \ + qWarning() << "Expected:" << expected << "Actual:" << actual; \ + } \ if (qgetenv("QDECLARATIVELANGUAGE_UPDATEERRORS") != "" && expected != actual) {\ - QFile file(QLatin1String("data/") + QLatin1String(errorfile)); \ + QFile file(QLatin1String(SRCDIR) + QDir::separator() + QLatin1String("data") + QDir::separator() + QLatin1String(errorfile)); \ QVERIFY(file.open(QIODevice::WriteOnly)); \ for (int ii = 0; ii < actual.count(); ++ii) { \ file.write(actual.at(ii)); file.write("\n"); \ @@ -119,7 +123,6 @@ inline QUrl TEST_FILE(const QString &filename) return QUrl::fromLocalFile(fileInfo.absoluteDir().filePath(filename)); } - void tst_qdeclarativemoduleplugin::importsPlugin() { QDeclarativeEngine engine; @@ -308,6 +311,44 @@ 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_data() +{ + QTest::addColumn<QString>("directory"); + QTest::addColumn<QString>("file"); + QTest::addColumn<QString>("errorFile"); + + // parsing qmldir succeeds, but plugin specified in the qmldir file doesn't exist + QTest::newRow("implicitQmldir") << "implicit1" << "temptest.qml" << "implicitQmldir.errors.txt"; + + // parsing qmldir fails due to syntax errors, etc. + QTest::newRow("implicitQmldir2") << "implicit2" << "temptest2.qml" << "implicitQmldir.2.errors.txt"; +} +void tst_qdeclarativemoduleplugin::implicitQmldir() +{ + QFETCH(QString, directory); + QFETCH(QString, file); + QFETCH(QString, errorFile); + + QString importPath = QLatin1String(SRCDIR) + QDir::separator() + QLatin1String("data") + QDir::separator() + directory; + QString fileName = QLatin1String("data") + QDir::separator() + directory + QDir::separator() + file; + QString errorFileName = directory + QDir::separator() + errorFile; + QUrl testFileUrl = TEST_FILE(fileName); + + QDeclarativeEngine engine; + engine.addImportPath(importPath); + + QDeclarativeComponent component(&engine, testFileUrl); + QList<QDeclarativeError> errors = component.errors(); + VERIFY_ERRORS(errorFileName.toLatin1().constData()); + QTest::ignoreMessage(QtWarningMsg, "QDeclarativeComponent: Component is not ready"); + QObject *obj = component.create(); + QVERIFY(!obj); + delete obj; +} + + QTEST_MAIN(tst_qdeclarativemoduleplugin) #include "tst_qdeclarativemoduleplugin.moc" |