diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-10-03 11:20:14 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-10-03 13:31:32 +0000 |
commit | b13bafec9ca34aa12b4ba9fbc6bf0165957f9b37 (patch) | |
tree | 8a16936c25ee40baea19146da2ec9e04b6cdeda2 /tests/auto/snippets | |
parent | 8aaa72c1035940eb290de9ba16513b2dafe5248c (diff) | |
parent | b6cfb4a1e30598a6176f9bbfdbd1495b37c7f59a (diff) |
Merge remote-tracking branch 'origin/5.7' into 5.8
Conflicts:
examples/quickcontrols2/gallery/gallery.qrc
src/imports/calendar/doc/snippets/qtlabscalendar-calendarmodel.qml
src/imports/calendar/doc/snippets/qtlabscalendar-dayofweekrow-layout.qml
src/imports/calendar/doc/snippets/qtlabscalendar-dayofweekrow.qml
src/imports/calendar/doc/snippets/qtlabscalendar-monthgrid-layout.qml
src/imports/calendar/doc/snippets/qtlabscalendar-monthgrid.qml
src/imports/calendar/doc/snippets/qtlabscalendar-weeknumbercolumn-layout.qml
src/imports/calendar/doc/snippets/qtlabscalendar-weeknumbercolumn.qml
src/imports/controls/doc/qtquickcontrols2.qdocconf
src/imports/controls/doc/snippets/qtlabscalendar-calendarmodel.qml
src/imports/controls/doc/snippets/qtlabscalendar-dayofweekrow-layout.qml
src/imports/controls/doc/snippets/qtlabscalendar-dayofweekrow.qml
src/imports/controls/doc/snippets/qtlabscalendar-monthgrid-layout.qml
src/imports/controls/doc/snippets/qtlabscalendar-monthgrid.qml
src/imports/controls/doc/snippets/qtlabscalendar-weeknumbercolumn-layout.qml
src/imports/controls/doc/snippets/qtlabscalendar-weeknumbercolumn.qml
src/imports/controls/doc/snippets/screenshots/qtlabscalendar-calendarmodel.qml
src/imports/controls/doc/snippets/screenshots/qtlabscalendar-dayofweekrow-layout.qml
src/imports/controls/doc/snippets/screenshots/qtlabscalendar-dayofweekrow.qml
src/imports/controls/doc/snippets/screenshots/qtlabscalendar-monthgrid-layout.qml
src/imports/controls/doc/snippets/screenshots/qtlabscalendar-monthgrid.qml
src/imports/controls/doc/snippets/screenshots/qtlabscalendar-weeknumbercolumn-layout.qml
src/imports/controls/doc/snippets/screenshots/qtlabscalendar-weeknumbercolumn.qml
src/imports/controls/qtquickcontrols2plugin.cpp
src/quicktemplates2/qquicktooltip.cpp
src/quicktemplates2/qquicktooltip_p.h
src/quicktemplates2/qquicktumbler.cpp
tests/auto/controls/data/tst_spinbox.qml
tests/auto/controls/data/tst_tumbler.qml
tests/auto/qquickmaterialstyle/data/tst_material.qml
Change-Id: I25b7473b47739043b6f768603bece30b18021318
Diffstat (limited to 'tests/auto/snippets')
-rw-r--r-- | tests/auto/snippets/tst_snippets.cpp | 115 |
1 files changed, 70 insertions, 45 deletions
diff --git a/tests/auto/snippets/tst_snippets.cpp b/tests/auto/snippets/tst_snippets.cpp index 6ca9e72c..7972591b 100644 --- a/tests/auto/snippets/tst_snippets.cpp +++ b/tests/auto/snippets/tst_snippets.cpp @@ -46,75 +46,100 @@ class tst_Snippets : public QObject private slots: void initTestCase(); + void verify(); + void verify_data(); + void screenshots(); void screenshots_data(); private: - QMap<QString, QStringPair> filePaths; - QStringList nonVisualSnippets; + QMap<QString, QStringPair> snippetPaths; + QMap<QString, QStringPair> screenshotSnippetPaths; }; +static QMap<QString, QStringPair> findSnippets(const QDir &inputDir, const QDir &outputDir = QDir()) +{ + QMap<QString, QStringPair> snippetPaths; + QDirIterator it(inputDir.path(), QStringList() << "qtquick*.qml" << "qtlabs*.qml", QDir::Files | QDir::Readable); + while (it.hasNext()) { + QFileInfo fi(it.next()); + const QString outDirPath = !outputDir.path().isEmpty() ? outputDir.filePath(fi.baseName() + ".png") : QString(); + snippetPaths.insert(fi.baseName(), qMakePair(fi.filePath(), outDirPath)); + } + return snippetPaths; +} + void tst_Snippets::initTestCase() { - QDir outdir(QDir::current().filePath("screenshots")); - QVERIFY(outdir.exists() || QDir::current().mkpath("screenshots")); + qInfo() << "Snippets are taken from" << QQC2_SNIPPETS_PATH; - QString datadir(QQC2_SNIPPETS_PATH); - QVERIFY(!datadir.isEmpty()); + QDir snippetsDir(QQC2_SNIPPETS_PATH); + QVERIFY(!snippetsDir.path().isEmpty()); - qInfo() << datadir; + snippetPaths = findSnippets(snippetsDir); + QVERIFY(!snippetPaths.isEmpty()); - QDirIterator it(datadir, QStringList() << "qtquick*.qml" << "qtlabs*.qml", QDir::Files | QDir::Readable, QDirIterator::Subdirectories); - while (it.hasNext()) { - QFileInfo fi(it.next()); - filePaths.insert(fi.baseName(), qMakePair(fi.filePath(), outdir.filePath(fi.baseName() + ".png"))); - } - QVERIFY(!filePaths.isEmpty()); + QDir screenshotOutputDir(QDir::current().filePath("screenshots")); + QVERIFY(screenshotOutputDir.exists() || QDir::current().mkpath("screenshots")); - nonVisualSnippets << "qtquickcontrols2-stackview-custom.qml" - << "qtquickcontrols2-swipeview-custom.qml" - << "qtquickcontrols2-tooltip-custom.qml"; + QDir screenshotSnippetsDir(QQC2_SNIPPETS_PATH "/screenshots"); + QVERIFY(!screenshotSnippetsDir.path().isEmpty()); + + screenshotSnippetPaths = findSnippets(screenshotSnippetsDir, screenshotOutputDir); + QVERIFY(!screenshotSnippetPaths.isEmpty()); } Q_DECLARE_METATYPE(QList<QQmlError>) -void tst_Snippets::screenshots() +static void loadAndShow(QQuickView *view, const QString &source) { - QFETCH(QString, input); - QFETCH(QString, output); - qRegisterMetaType<QList<QQmlError> >(); - - QQuickView view; - QSignalSpy warnings(view.engine(), SIGNAL(warnings(QList<QQmlError>))); + QSignalSpy warnings(view->engine(), SIGNAL(warnings(QList<QQmlError>))); QVERIFY(warnings.isValid()); - view.setSource(QUrl::fromLocalFile(input)); - QCOMPARE(view.status(), QQuickView::Ready); - QVERIFY(view.errors().isEmpty()); - QVERIFY(view.rootObject()); + view->setSource(QUrl::fromLocalFile(source)); + QCOMPARE(view->status(), QQuickView::Ready); + QVERIFY(view->errors().isEmpty()); + QVERIFY(view->rootObject()); QVERIFY(warnings.isEmpty()); - view.show(); - view.requestActivate(); - QVERIFY(QTest::qWaitForWindowActive(&view)); + view->show(); + view->requestActivate(); + QVERIFY(QTest::qWaitForWindowActive(view)); +} - bool generateScreenshot = true; - for (const QString &baseName : qAsConst(nonVisualSnippets)) { - if (input.contains(baseName)) { - generateScreenshot = false; - break; - } - } +void tst_Snippets::verify() +{ + QFETCH(QString, input); - if (generateScreenshot) { - QSharedPointer<QQuickItemGrabResult> result = view.contentItem()->grabToImage(); - QSignalSpy spy(result.data(), SIGNAL(ready())); - QVERIFY(spy.isValid()); - QVERIFY(spy.wait()); - QVERIFY(result->saveToFile(output)); - } + QQuickView view; + loadAndShow(&view, input); + QGuiApplication::processEvents(); +} + +void tst_Snippets::verify_data() +{ + QTest::addColumn<QString>("input"); + + QMap<QString, QStringPair>::const_iterator it; + for (it = snippetPaths.constBegin(); it != snippetPaths.constEnd(); ++it) + QTest::newRow(qPrintable(it.key())) << it.value().first; +} + +void tst_Snippets::screenshots() +{ + QFETCH(QString, input); + QFETCH(QString, output); + + QQuickView view; + loadAndShow(&view, input); + + QSharedPointer<QQuickItemGrabResult> result = view.contentItem()->grabToImage(); + QSignalSpy spy(result.data(), SIGNAL(ready())); + QVERIFY(spy.isValid()); + QVERIFY(spy.wait()); + QVERIFY(result->saveToFile(output)); QGuiApplication::processEvents(); } @@ -125,7 +150,7 @@ void tst_Snippets::screenshots_data() QTest::addColumn<QString>("output"); QMap<QString, QStringPair>::const_iterator it; - for (it = filePaths.constBegin(); it != filePaths.constEnd(); ++it) + for (it = screenshotSnippetPaths.constBegin(); it != screenshotSnippetPaths.constEnd(); ++it) QTest::newRow(qPrintable(it.key())) << it.value().first << it.value().second; } |