diff options
Diffstat (limited to 'src/quickcontrolstestutils')
-rw-r--r-- | src/quickcontrolstestutils/controlstestutils.cpp | 4 | ||||
-rw-r--r-- | src/quickcontrolstestutils/controlstestutils_p.h | 6 | ||||
-rw-r--r-- | src/quickcontrolstestutils/dialogstestutils.cpp | 12 | ||||
-rw-r--r-- | src/quickcontrolstestutils/dialogstestutils_p.h | 21 |
4 files changed, 34 insertions, 9 deletions
diff --git a/src/quickcontrolstestutils/controlstestutils.cpp b/src/quickcontrolstestutils/controlstestutils.cpp index a1e64784c4..ec3748fed4 100644 --- a/src/quickcontrolstestutils/controlstestutils.cpp +++ b/src/quickcontrolstestutils/controlstestutils.cpp @@ -34,8 +34,8 @@ #include <QtQuickTemplates2/private/qquickapplicationwindow_p.h> QQuickControlsTestUtils::QQuickControlsApplicationHelper::QQuickControlsApplicationHelper(QQmlDataTest *testCase, - const QString &testFilePath, const QStringList &qmlImportPaths, const QVariantMap &initialProperties) - : QQuickApplicationHelper(testCase, testFilePath, qmlImportPaths, initialProperties) + const QString &testFilePath, const QVariantMap &initialProperties, const QStringList &qmlImportPaths) + : QQuickApplicationHelper(testCase, testFilePath, initialProperties, qmlImportPaths) { if (ready) appWindow = qobject_cast<QQuickApplicationWindow*>(cleanup.data()); diff --git a/src/quickcontrolstestutils/controlstestutils_p.h b/src/quickcontrolstestutils/controlstestutils_p.h index 35e61aabda..4d4f0432b0 100644 --- a/src/quickcontrolstestutils/controlstestutils_p.h +++ b/src/quickcontrolstestutils/controlstestutils_p.h @@ -54,15 +54,15 @@ namespace QQuickControlsTestUtils { public: QQuickControlsApplicationHelper(QQmlDataTest *testCase, const QString &testFilePath, - const QStringList &qmlImportPaths = {}, - const QVariantMap &initialProperties = {}); + const QVariantMap &initialProperties = {}, + const QStringList &qmlImportPaths = {}); QQuickApplicationWindow *appWindow = nullptr; }; struct QQuickStyleHelper { - bool updateStyle(const QString &style); + [[nodiscard]] bool updateStyle(const QString &style); QString currentStyle; QScopedPointer<QQmlEngine> engine; diff --git a/src/quickcontrolstestutils/dialogstestutils.cpp b/src/quickcontrolstestutils/dialogstestutils.cpp index f989989a63..4c0ad15826 100644 --- a/src/quickcontrolstestutils/dialogstestutils.cpp +++ b/src/quickcontrolstestutils/dialogstestutils.cpp @@ -65,9 +65,17 @@ bool QQuickDialogTestUtils::verifyFileDialogDelegates(QQuickListView *fileDialog } if (actualFiles != expectedFiles) { + QString expectedFilesStr = QDebug::toString(expectedFiles); + QString actualFilesStr = QDebug::toString(actualFiles); failureMessage = QString::fromLatin1("Mismatch in actual vs expected " - "delegates in fileDialogListView:\n expected: %1\n actual: %2") - .arg(QDebug::toString(expectedFiles), QDebug::toString(actualFiles)); + "delegates in fileDialogListView:\n expected: %1\n actual: %2"); + if (failureMessage.size() + expectedFilesStr.size() + actualFilesStr.size() > 1024) { + // If we've exceeded QTest's character limit for failure messages, + // just show the number of files. + expectedFilesStr = QString::number(expectedFiles.size()); + actualFilesStr = QString::number(actualFiles.size()); + } + failureMessage = failureMessage.arg(expectedFilesStr, actualFilesStr); return false; } diff --git a/src/quickcontrolstestutils/dialogstestutils_p.h b/src/quickcontrolstestutils/dialogstestutils_p.h index f358c1316f..8d41c1a1ad 100644 --- a/src/quickcontrolstestutils/dialogstestutils_p.h +++ b/src/quickcontrolstestutils/dialogstestutils_p.h @@ -77,6 +77,19 @@ QCOMPARE(actualPaths, expectedPaths); \ } +#define OPEN_QUICK_DIALOG() \ +QVERIFY2(dialogHelper.isWindowInitialized(), dialogHelper.failureMessage()); \ +QVERIFY(dialogHelper.waitForWindowActive()); \ +QVERIFY(dialogHelper.openDialog()); \ +QTRY_VERIFY(dialogHelper.isQuickDialogOpen()); + +#define CLOSE_QUICK_DIALOG() \ + do { \ + dialogHelper.dialog->close(); \ + QVERIFY(!dialogHelper.dialog->isVisible()); \ + QTRY_VERIFY(!dialogHelper.quickDialog->isVisible()); \ + } while (false) + QT_BEGIN_NAMESPACE class QWindow; @@ -97,7 +110,7 @@ class DialogTestHelper public: DialogTestHelper(QQmlDataTest *testCase, const QString &testFilePath, const QStringList &qmlImportPaths = {}, const QVariantMap &initialProperties = {}) : - appHelper(testCase, testFilePath, qmlImportPaths, initialProperties) + appHelper(testCase, testFilePath, initialProperties, qmlImportPaths) { if (!appHelper.ready) return; @@ -122,7 +135,11 @@ public: return QTest::qWaitForWindowActive(appHelper.window); } - bool openDialog() + /* + Opens the dialog. For non-native dialogs, it is necessary to ensure that + isQuickDialogOpen() returns true before trying to access its internals. + */ + virtual bool openDialog() { dialog->open(); if (!dialog->isVisible()) { |