diff options
Diffstat (limited to 'tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp')
-rw-r--r-- | tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp | 61 |
1 files changed, 58 insertions, 3 deletions
diff --git a/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp b/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp index 68e11e3551..17766a89b5 100644 --- a/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp +++ b/tests/auto/qml/qmlplugindump/tst_qmlplugindump.cpp @@ -26,6 +26,8 @@ ** ****************************************************************************/ +#include "util.h" + #include <qtest.h> #include <QLibraryInfo> #include <QDir> @@ -33,7 +35,7 @@ #include <QDebug> #include <cstdlib> -class tst_qmlplugindump : public QObject +class tst_qmlplugindump : public QQmlDataTest { Q_OBJECT public: @@ -43,6 +45,10 @@ private slots: void initTestCase(); void builtins(); void singleton(); + void compositeWithinSingleton(); + + void plugin_data(); + void plugin(); private: QString qmlplugindumpPath; @@ -54,6 +60,7 @@ tst_qmlplugindump::tst_qmlplugindump() void tst_qmlplugindump::initTestCase() { + QQmlDataTest::initTestCase(); qmlplugindumpPath = QLibraryInfo::location(QLibraryInfo::BinariesPath); #if defined(Q_OS_WIN) @@ -102,8 +109,8 @@ void tst_qmlplugindump::singleton() { QProcess dumper; QStringList args; - args << QLatin1String("tests.dumper.CompositeSingleton") << QLatin1String("1.0") - << QLatin1String("."); + args << QLatin1String("dumper.CompositeSingleton") << QLatin1String("1.0") + << QLatin1String(QT_QMLTEST_DIR "/data"); dumper.start(qmlplugindumpPath, args); QVERIFY2(dumper.waitForStarted(), qPrintable(dumper.errorString())); QVERIFY2(dumper.waitForFinished(), qPrintable(dumper.errorString())); @@ -113,6 +120,54 @@ void tst_qmlplugindump::singleton() QVERIFY2(result.contains(QLatin1String("exportMetaObjectRevisions: [0]")), qPrintable(result)); } +void tst_qmlplugindump::compositeWithinSingleton() +{ + QProcess dumper; + QStringList args; + args << QLatin1String("dumper.CompositeWithinSingleton") << QLatin1String("1.0") + << QLatin1String(QT_QMLTEST_DIR "/data"); + dumper.start(qmlplugindumpPath, args); + QVERIFY2(dumper.waitForStarted(), qPrintable(dumper.errorString())); + QVERIFY2(dumper.waitForFinished(), qPrintable(dumper.errorString())); + + const QString &result = dumper.readAllStandardOutput(); + QVERIFY2(result.contains(QLatin1String("exports: [\"Composite 1.0\"]")), qPrintable(result)); + QVERIFY2(result.contains(QLatin1String("exportMetaObjectRevisions: [0]")), qPrintable(result)); +} + +void tst_qmlplugindump::plugin_data() +{ + QTest::addColumn<QString>("import"); + QTest::addColumn<QString>("version"); + QTest::addColumn<QString>("expectedPath"); + + QTest::newRow("dumper.Dummy") << "dumper.Dummy" << "1.0" << testFile("dumper/Dummy/plugins.qmltypes"); + QTest::newRow("dumper.Imports") << "dumper.Imports" << "1.0" << testFile("dumper/Imports/plugins.qmltypes"); + QTest::newRow("dumper.Versions") << "dumper.Versions" << "1.1" << testFile("dumper/Versions/plugins.qmltypes"); + QTest::newRow("dumper.ExtendedType") << "dumper.ExtendedType" + << "1.1" << testFile("dumper/ExtendedType/plugins.qmltypes"); +} + +void tst_qmlplugindump::plugin() +{ + QFETCH(QString, import); + QFETCH(QString, version); + QFETCH(QString, expectedPath); + + QProcess dumper; + dumper.setWorkingDirectory(dataDirectory()); + QStringList args = { QLatin1String("-nonrelocatable"), QLatin1String("-noforceqtquick"), import, version, QLatin1String(".") }; + dumper.start(qmlplugindumpPath, args); + QVERIFY2(dumper.waitForStarted(), qPrintable(dumper.errorString())); + QVERIFY2(dumper.waitForFinished(), qPrintable(dumper.errorString())); + + const QString &result = dumper.readAllStandardOutput(); + QFile expectedFile(expectedPath); + QVERIFY2(expectedFile.open(QIODevice::ReadOnly), qPrintable(expectedFile.errorString())); + const QString expected = expectedFile.readAll(); + QCOMPARE(result, expected); +} + QTEST_MAIN(tst_qmlplugindump) #include "tst_qmlplugindump.moc" |