aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/snippets
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-10-03 11:20:14 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2016-10-03 13:31:32 +0000
commitb13bafec9ca34aa12b4ba9fbc6bf0165957f9b37 (patch)
tree8a16936c25ee40baea19146da2ec9e04b6cdeda2 /tests/auto/snippets
parent8aaa72c1035940eb290de9ba16513b2dafe5248c (diff)
parentb6cfb4a1e30598a6176f9bbfdbd1495b37c7f59a (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.cpp115
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;
}