aboutsummaryrefslogtreecommitdiffstats
path: root/src/quickcontrolstestutils
diff options
context:
space:
mode:
Diffstat (limited to 'src/quickcontrolstestutils')
-rw-r--r--src/quickcontrolstestutils/controlstestutils.cpp4
-rw-r--r--src/quickcontrolstestutils/controlstestutils_p.h6
-rw-r--r--src/quickcontrolstestutils/dialogstestutils.cpp12
-rw-r--r--src/quickcontrolstestutils/dialogstestutils_p.h21
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()) {