aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorChris Adams <christopher.adams@nokia.com>2011-05-20 15:47:46 +1000
committerChris Adams <christopher.adams@nokia.com>2011-05-20 16:15:35 +1000
commit02659f97761629625b7fcf38e5e8e00b489aa8b6 (patch)
treeff85a812a6069b7821341f0afa5f6fa3212cfe13 /tests
parent221f7f3c81e233125f5dc3ce47ef0518fafea815 (diff)
Fix implicit qmldir imports unit test
Previously, the tst_qdeclarativemoduleplugin::implicitQmldir() test worked only under shadow-built Qt. Now it works under in-src build as well. Reviewed-by: Martin Jones Change-Id: Ie1395a8b93aba6e02f00bb047169d76f05ec10d9
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/declarative/qdeclarativemoduleplugin/data/implicit1/implicitQmldir.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativemoduleplugin/data/implicit2/implicitQmldir.2.errors.txt3
-rw-r--r--tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp70
3 files changed, 36 insertions, 38 deletions
diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/data/implicit1/implicitQmldir.errors.txt b/tests/auto/declarative/qdeclarativemoduleplugin/data/implicit1/implicitQmldir.errors.txt
new file mode 100644
index 0000000000..ce3b796e16
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativemoduleplugin/data/implicit1/implicitQmldir.errors.txt
@@ -0,0 +1 @@
+-1:-1:module "" plugin "AType" not found
diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/data/implicit2/implicitQmldir.2.errors.txt b/tests/auto/declarative/qdeclarativemoduleplugin/data/implicit2/implicitQmldir.2.errors.txt
new file mode 100644
index 0000000000..9cafb78740
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativemoduleplugin/data/implicit2/implicitQmldir.2.errors.txt
@@ -0,0 +1,3 @@
+1:12:unexpected token
+1:-1:expected '.'
+2:17:unexpected token
diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp b/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp
index 06b65d3c6f..338a07fa64 100644
--- a/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp
+++ b/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp
@@ -71,6 +71,7 @@ private slots:
void versionNotInstalled();
void versionNotInstalled_data();
void implicitQmldir();
+ void implicitQmldir_data();
};
#ifdef Q_OS_SYMBIAN
@@ -85,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(); \
@@ -100,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"); \
@@ -310,46 +313,37 @@ void tst_qdeclarativemoduleplugin::versionNotInstalled()
// 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()
{
- QDeclarativeEngine engine;
+ QFETCH(QString, directory);
+ QFETCH(QString, file);
+ QFETCH(QString, errorFile);
- QObject *obj = 0;
- QList<QDeclarativeError> errors;
- QString qmldirUrl;
- QStringList expectedErrors;
+ 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);
- // 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;
+ QDeclarativeEngine engine;
+ engine.addImportPath(importPath);
- // 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.
- }
+ QDeclarativeComponent component(&engine, testFileUrl);
+ QList<QDeclarativeError> errors = component.errors();
+ VERIFY_ERRORS(errorFileName.toLatin1().constData());
QTest::ignoreMessage(QtWarningMsg, "QDeclarativeComponent: Component is not ready");
- obj = c2.create();
+ QObject *obj = component.create();
QVERIFY(!obj);
delete obj;
}