summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/dialogs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/dialogs')
-rw-r--r--tests/auto/widgets/dialogs/qdialog/tst_qdialog.cpp2
-rw-r--r--tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp9
-rw-r--r--tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp61
-rw-r--r--tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp36
-rw-r--r--tests/auto/widgets/dialogs/qfontdialog/tst_qfontdialog.cpp3
-rw-r--r--tests/auto/widgets/dialogs/qsidebar/tst_qsidebar.cpp3
-rw-r--r--tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp2
7 files changed, 78 insertions, 38 deletions
diff --git a/tests/auto/widgets/dialogs/qdialog/tst_qdialog.cpp b/tests/auto/widgets/dialogs/qdialog/tst_qdialog.cpp
index a494d7119a..1af3bade0e 100644
--- a/tests/auto/widgets/dialogs/qdialog/tst_qdialog.cpp
+++ b/tests/auto/widgets/dialogs/qdialog/tst_qdialog.cpp
@@ -222,7 +222,7 @@ void tst_QDialog::defaultButtons()
testWidget.show();
QApplication::setActiveWindow(&testWidget);
- QVERIFY(QTest::qWaitForWindowActive(&testWidget));
+ QVERIFY(QTest::qWaitForWindowExposed(&testWidget));
push->setDefault(true);
QVERIFY(push->isDefault());
diff --git a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
index 26cf3c63f3..afb24bc528 100644
--- a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
+++ b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
@@ -57,6 +57,7 @@
#endif
#include <private/qguiapplication_p.h>
#include <qpa/qplatformtheme.h>
+#include <qpa/qplatformintegration.h>
#include <QFileDialog>
#include <QFileSystemModel>
@@ -1129,6 +1130,8 @@ void tst_QFiledialog::setNameFilter()
void tst_QFiledialog::focus()
{
+ if (!QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::WindowActivation))
+ QSKIP("Window activation is not supported");
QFileDialog fd;
fd.setDirectory(QDir::currentPath());
fd.show();
@@ -1551,6 +1554,9 @@ public slots:
void tst_QFiledialog::rejectModalDialogs()
{
+ if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive))
+ QSKIP("Wayland: This freezes. Figure out why.");
+
// QTBUG-38672 , static functions should return empty Urls
DialogRejecter dr;
@@ -1610,6 +1616,9 @@ public:
void tst_QFiledialog::focusObjectDuringDestruction()
{
+ if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive))
+ QSKIP("Wayland: This freezes. Figure out why.");
+
QTRY_VERIFY(QGuiApplication::topLevelWindows().isEmpty());
qtbug57193DialogRejecter dialogRejecter;
diff --git a/tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp b/tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp
index 40eff1e4c3..a947954a4e 100644
--- a/tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp
+++ b/tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp
@@ -53,7 +53,10 @@
#include "../../../../../src/widgets/dialogs/qfilesystemmodel_p.h"
#include "../../../../../src/widgets/dialogs/qfiledialog_p.h"
+#include <private/qguiapplication_p.h>
+
#include <qpa/qplatformdialoghelper.h>
+#include <qpa/qplatformintegration.h>
#if defined(Q_OS_WIN)
#include "../../../network-settings.h"
@@ -365,7 +368,7 @@ void tst_QFileDialog2::task143519_deleteAndRenameActionBehavior()
fd.selectFile(ctx.file.fileName());
fd.show();
- QVERIFY(QTest::qWaitForWindowActive(&fd));
+ QVERIFY(QTest::qWaitForWindowExposed(&fd));
// grab some internals:
QAction *rm = fd.findChild<QAction*>("qt_delete_action");
@@ -548,7 +551,7 @@ void tst_QFileDialog2::task227304_proxyOnFileDialog()
QFileDialog fd(0, "", QDir::currentPath(), 0);
fd.setProxyModel(new FilterDirModel(QDir::currentPath()));
fd.show();
- QVERIFY(QTest::qWaitForWindowActive(&fd));
+ QVERIFY(QTest::qWaitForWindowExposed(&fd));
QLineEdit *edit = fd.findChild<QLineEdit*>("fileNameEdit");
QVERIFY(edit);
QTest::keyClick(edit, Qt::Key_T);
@@ -558,7 +561,7 @@ void tst_QFileDialog2::task227304_proxyOnFileDialog()
CrashDialog *dialog = new CrashDialog(0, QString("crash dialog test"), QDir::homePath(), QString("*") );
dialog->setFileMode(QFileDialog::ExistingFile);
dialog->show();
- QVERIFY(QTest::qWaitForWindowActive(dialog));
+ QVERIFY(QTest::qWaitForWindowExposed(dialog));
QListView *list = dialog->findChild<QListView*>("listView");
QVERIFY(list);
@@ -568,14 +571,15 @@ void tst_QFileDialog2::task227304_proxyOnFileDialog()
dialog->close();
fd.close();
- QFileDialog fd2(0, "I should not crash with a proxy", tempDir.path(), 0);
+ QFileDialog fd2(0, "I should not crash with a proxy", tempDir.path(), {});
QSortFilterProxyModel *pm = new QSortFilterProxyModel;
fd2.setProxyModel(pm);
fd2.show();
QSidebar *sidebar = fd2.findChild<QSidebar*>("sidebar");
sidebar->setFocus();
sidebar->selectUrl(QUrl::fromLocalFile(QDir::homePath()));
- QTest::mouseClick(sidebar->viewport(), Qt::LeftButton, 0, sidebar->visualRect(sidebar->model()->index(1, 0)).center());
+ QTest::mouseClick(sidebar->viewport(), Qt::LeftButton, {},
+ sidebar->visualRect(sidebar->model()->index(1, 0)).center());
QTest::qWait(250);
//We shouldn't crash
}
@@ -600,7 +604,7 @@ void tst_QFileDialog2::task227930_correctNavigationKeyboardBehavior()
fd.setViewMode(QFileDialog::List);
fd.setDirectory(current.absolutePath());
fd.show();
- QVERIFY(QTest::qWaitForWindowActive(&fd));
+ QVERIFY(QTest::qWaitForWindowExposed(&fd));
// Ensure LayoutRequest event is processed so that the list view
// is sorted correctly to have the directory entires at the top.
@@ -610,7 +614,7 @@ void tst_QFileDialog2::task227930_correctNavigationKeyboardBehavior()
QVERIFY(list);
QTest::keyClick(list, Qt::Key_Down);
QTest::keyClick(list, Qt::Key_Return);
- QTest::mouseClick(list->viewport(), Qt::LeftButton,0);
+ QTest::mouseClick(list->viewport(), Qt::LeftButton, {});
QTest::keyClick(list, Qt::Key_Down);
QTest::keyClick(list, Qt::Key_Backspace);
QTest::keyClick(list, Qt::Key_Down);
@@ -765,7 +769,7 @@ void tst_QFileDialog2::task235069_hideOnEscape()
fd.setDirectory(current.absolutePath());
fd.setAcceptMode(QFileDialog::AcceptSave);
fd.show();
- QVERIFY(QTest::qWaitForWindowActive(&fd));
+ QVERIFY(QTest::qWaitForWindowExposed(&fd));
QWidget *child = fd.findChild<QWidget *>(childName);
QVERIFY(child);
child->setFocus();
@@ -787,7 +791,7 @@ void tst_QFileDialog2::task236402_dontWatchDeletedDir()
fd.setDirectory(current.absolutePath());
fd.setAcceptMode( QFileDialog::AcceptSave);
fd.show();
- QVERIFY(QTest::qWaitForWindowActive(&fd));
+ QVERIFY(QTest::qWaitForWindowExposed(&fd));
QListView *list = fd.findChild<QListView*>("listView");
QVERIFY(list);
list->setFocus();
@@ -808,7 +812,7 @@ void tst_QFileDialog2::task203703_returnProperSeparator()
fd.setViewMode(QFileDialog::List);
fd.setFileMode(QFileDialog::Directory);
fd.show();
- QVERIFY(QTest::qWaitForWindowActive(&fd));
+ QVERIFY(QTest::qWaitForWindowExposed(&fd));
QListView *list = fd.findChild<QListView*>("listView");
QVERIFY(list);
list->setFocus();
@@ -844,7 +848,7 @@ void tst_QFileDialog2::task228844_ensurePreviousSorting()
fd.setDirectory(current.absolutePath());
fd.setViewMode(QFileDialog::Detail);
fd.show();
- QVERIFY(QTest::qWaitForWindowActive(&fd));
+ QVERIFY(QTest::qWaitForWindowExposed(&fd));
QTreeView *tree = fd.findChild<QTreeView*>("treeView");
QVERIFY(tree);
tree->header()->setSortIndicator(3,Qt::DescendingOrder);
@@ -859,7 +863,7 @@ void tst_QFileDialog2::task228844_ensurePreviousSorting()
current.cd("aaaaaaaaaaaaaaaaaa");
fd2.setDirectory(current.absolutePath());
fd2.show();
- QVERIFY(QTest::qWaitForWindowActive(&fd2));
+ QVERIFY(QTest::qWaitForWindowExposed(&fd2));
QTreeView *tree2 = fd2.findChild<QTreeView*>("treeView");
QVERIFY(tree2);
tree2->setFocus();
@@ -878,7 +882,7 @@ void tst_QFileDialog2::task228844_ensurePreviousSorting()
fd3.restoreState(fd.saveState());
fd3.setFileMode(QFileDialog::Directory);
fd3.show();
- QVERIFY(QTest::qWaitForWindowActive(&fd3));
+ QVERIFY(QTest::qWaitForWindowExposed(&fd3));
QTreeView *tree3 = fd3.findChild<QTreeView*>("treeView");
QVERIFY(tree3);
tree3->setFocus();
@@ -912,7 +916,7 @@ void tst_QFileDialog2::task239706_editableFilterCombo()
QFileDialog d;
d.setNameFilter("*.cpp *.h");
d.show();
- QVERIFY(QTest::qWaitForWindowActive(&d));
+ QVERIFY(QTest::qWaitForWindowExposed(&d));
QList<QComboBox *> comboList = d.findChildren<QComboBox *>();
QComboBox *filterCombo = 0;
@@ -963,13 +967,14 @@ void tst_QFileDialog2::task251321_sideBarHiddenEntries()
urls << QUrl::fromLocalFile(hiddenSubDir.absolutePath());
fd.setSidebarUrls(urls);
fd.show();
- QVERIFY(QTest::qWaitForWindowActive(&fd));
+ QVERIFY(QTest::qWaitForWindowExposed(&fd));
QSidebar *sidebar = fd.findChild<QSidebar*>("sidebar");
QVERIFY(sidebar);
sidebar->setFocus();
sidebar->selectUrl(QUrl::fromLocalFile(hiddenSubDir.absolutePath()));
- QTest::mouseClick(sidebar->viewport(), Qt::LeftButton, 0, sidebar->visualRect(sidebar->model()->index(0, 0)).center());
+ QTest::mouseClick(sidebar->viewport(), Qt::LeftButton, {},
+ sidebar->visualRect(sidebar->model()->index(0, 0)).center());
// give the background processes more time on windows mobile
QTest::qWait(250);
@@ -1017,14 +1022,15 @@ void tst_QFileDialog2::task251341_sideBarRemoveEntries()
urls << QUrl::fromLocalFile("NotFound");
fd.setSidebarUrls(urls);
fd.show();
- QVERIFY(QTest::qWaitForWindowActive(&fd));
+ QVERIFY(QTest::qWaitForWindowExposed(&fd));
QSidebar *sidebar = fd.findChild<QSidebar*>("sidebar");
QVERIFY(sidebar);
sidebar->setFocus();
//We enter in the first bookmark
sidebar->selectUrl(QUrl::fromLocalFile(testSubDir.absolutePath()));
- QTest::mouseClick(sidebar->viewport(), Qt::LeftButton, 0, sidebar->visualRect(sidebar->model()->index(0, 0)).center());
+ QTest::mouseClick(sidebar->viewport(), Qt::LeftButton, {},
+ sidebar->visualRect(sidebar->model()->index(0, 0)).center());
QFileSystemModel *model = fd.findChild<QFileSystemModel*>("qt_filesystem_model");
QVERIFY(model);
@@ -1037,7 +1043,8 @@ void tst_QFileDialog2::task251341_sideBarRemoveEntries()
sidebar->setFocus();
//We enter in the second bookmark which is invalid
sidebar->selectUrl(QUrl::fromLocalFile("NotFound"));
- QTest::mouseClick(sidebar->viewport(), Qt::LeftButton, 0, sidebar->visualRect(sidebar->model()->index(1, 0)).center());
+ QTest::mouseClick(sidebar->viewport(), Qt::LeftButton, {},
+ sidebar->visualRect(sidebar->model()->index(1, 0)).center());
//We fallback to root because the entry in the bookmark is invalid
QCOMPARE(model->rowCount(model->index("NotFound")), model->rowCount(model->index(model->rootPath())));
@@ -1089,7 +1096,7 @@ void tst_QFileDialog2::task254490_selectFileMultipleTimes()
fd.selectFile("new_file.txt");
fd.show();
- QVERIFY(QTest::qWaitForWindowActive(&fd));
+ QVERIFY(QTest::qWaitForWindowExposed(&fd));
QLineEdit *lineEdit = fd.findChild<QLineEdit*>("fileNameEdit");
QVERIFY(lineEdit);
@@ -1133,7 +1140,7 @@ void tst_QFileDialog2::task259105_filtersCornerCases()
fd.setNameFilter(QLatin1String("All Files! (*);;Text Files (*.txt)"));
fd.setOption(QFileDialog::HideNameFilterDetails, true);
fd.show();
- QVERIFY(QTest::qWaitForWindowActive(&fd));
+ QVERIFY(QTest::qWaitForWindowExposed(&fd));
//Extensions are hidden
QComboBox *filters = fd.findChild<QComboBox*>("fileTypeCombo");
@@ -1170,6 +1177,9 @@ void tst_QFileDialog2::task259105_filtersCornerCases()
void tst_QFileDialog2::QTBUG4419_lineEditSelectAll()
{
+ if (!QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::WindowActivation))
+ QSKIP("Window activation is not supported");
+
QString tempPath = tempDir.path();
QTemporaryFile temporaryFile(tempPath + "/tst_qfiledialog2_lineEditSelectAll.XXXXXX");
QVERIFY2(temporaryFile.open(), qPrintable(temporaryFile.errorString()));
@@ -1195,6 +1205,9 @@ void tst_QFileDialog2::QTBUG4419_lineEditSelectAll()
void tst_QFileDialog2::QTBUG6558_showDirsOnly()
{
+ if (!QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::WindowActivation))
+ QSKIP("Window activation is not supported");
+
const QString tempPath = tempDir.path();
QDir dirTemp(tempPath);
const QString tempName = QLatin1String("showDirsOnly.") + QString::number(QRandomGenerator::global()->generate());
@@ -1261,6 +1274,9 @@ void tst_QFileDialog2::QTBUG6558_showDirsOnly()
void tst_QFileDialog2::QTBUG4842_selectFilterWithHideNameFilterDetails()
{
+ if (!QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::WindowActivation))
+ QSKIP("Window activation is not supported");
+
QStringList filtersStr;
filtersStr << "Images (*.png *.xpm *.jpg)" << "Text files (*.txt)" << "XML files (*.xml)";
QString chosenFilterString("Text files (*.txt)");
@@ -1301,6 +1317,9 @@ void tst_QFileDialog2::QTBUG4842_selectFilterWithHideNameFilterDetails()
void tst_QFileDialog2::dontShowCompleterOnRoot()
{
+ if (!QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::WindowActivation))
+ QSKIP("Window activation is not supported");
+
QFileDialog fd(0, "TestFileDialog");
fd.setAcceptMode(QFileDialog::AcceptSave);
fd.show();
diff --git a/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp b/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp
index 590b3502f1..2c0b3f2bcb 100644
--- a/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp
+++ b/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp
@@ -826,7 +826,7 @@ void tst_QFileSystemModel::sort()
tree.setModel(myModel.data());
tree.show();
tree.resize(800, 800);
- QVERIFY(QTest::qWaitForWindowActive(&tree));
+ QVERIFY(QTest::qWaitForWindowExposed(&tree));
tree.header()->setSortIndicator(1, Qt::DescendingOrder);
tree.header()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
QStringList dirsToOpen;
@@ -1014,30 +1014,38 @@ void tst_QFileSystemModel::drives()
void tst_QFileSystemModel::dirsBeforeFiles()
{
- QDir dir(flatDirTestPath);
+ auto diagnosticMsg = [](int row, const QFileInfo &left, const QFileInfo &right) -> QByteArray {
+ QString message;
+ QDebug(&message).noquote() << "Unexpected sort order at #" << row << ':' << left << right;
+ return message.toLocal8Bit();
+ };
+ QTemporaryDir testDir(flatDirTestPath);
+ QVERIFY2(testDir.isValid(), qPrintable(testDir.errorString()));
+ QDir dir(testDir.path());
const int itemCount = 3;
for (int i = 0; i < itemCount; ++i) {
QLatin1Char c('a' + char(i));
QVERIFY(dir.mkdir(c + QLatin1String("-dir")));
- QFile file(flatDirTestPath + QLatin1Char('/') + c + QLatin1String("-file"));
+ QFile file(dir.filePath(c + QLatin1String("-file")));
QVERIFY(file.open(QIODevice::ReadWrite));
file.close();
}
QScopedPointer<QFileSystemModel> model(new QFileSystemModel);
- QModelIndex root = model->setRootPath(flatDirTestPath);
+ QModelIndex root = model->setRootPath(dir.absolutePath());
// Wait for model to be notified by the file system watcher
QTRY_COMPARE(model->rowCount(root), 2 * itemCount);
-
- // Ensure that no file occurs before any directory:
- for (int i = 1; i < model->rowCount(root); ++i) {
+ // sort explicitly - dirs before files (except on macOS), and then by name
+ model->sort(0);
+ // Ensure that no file occurs before any directory (see QFileSystemModelSorter):
+ for (int i = 1, count = model->rowCount(root); i < count; ++i) {
+ const QFileInfo previous = model->fileInfo(model->index(i - 1, 0, root));
+ const QFileInfo current = model->fileInfo(model->index(i, 0, root));
#ifndef Q_OS_MAC
- QVERIFY(!(model->fileInfo(model->index(i - 1, 0, root)).isFile()
- && model->fileInfo(model->index(i, 0, root)).isDir()));
+ QVERIFY2(!(previous.isFile() && current.isDir()), diagnosticMsg(i, previous, current).constData());
#else
- QVERIFY(model->fileInfo(model->index(i - 1, 0, root)).fileName() <
- model->fileInfo(model->index(i, 0, root)).fileName());
+ QVERIFY2(previous.fileName() < current.fileName(), diagnosticMsg(i, previous, current).constData());
#endif
}
}
@@ -1046,7 +1054,7 @@ void tst_QFileSystemModel::roleNames_data()
{
QTest::addColumn<int>("role");
QTest::addColumn<QByteArray>("roleName");
- QTest::newRow("decoration") << int(Qt::DecorationRole) << QByteArray("decoration");
+ QTest::newRow("decoration") << int(Qt::DecorationRole) << QByteArray("fileIcon");
QTest::newRow("display") << int(Qt::DisplayRole) << QByteArray("display");
QTest::newRow("fileIcon") << int(QFileSystemModel::FileIconRole) << QByteArray("fileIcon");
QTest::newRow("filePath") << int(QFileSystemModel::FilePathRole) << QByteArray("filePath");
@@ -1063,8 +1071,8 @@ void tst_QFileSystemModel::roleNames()
QVERIFY(roles.contains(role));
QFETCH(QByteArray, roleName);
- QList<QByteArray> values = roles.values(role);
- QVERIFY(values.contains(roleName));
+ QCOMPARE(roles.values(role).count(), 1);
+ QCOMPARE(roles.value(role), roleName);
}
static inline QByteArray permissionRowName(bool readOnly, int permission)
diff --git a/tests/auto/widgets/dialogs/qfontdialog/tst_qfontdialog.cpp b/tests/auto/widgets/dialogs/qfontdialog/tst_qfontdialog.cpp
index c8e6e8fcd0..f5358ceb93 100644
--- a/tests/auto/widgets/dialogs/qfontdialog/tst_qfontdialog.cpp
+++ b/tests/auto/widgets/dialogs/qfontdialog/tst_qfontdialog.cpp
@@ -179,6 +179,9 @@ class FriendlyFontDialog : public QFontDialog
void tst_QFontDialog::task256466_wrongStyle()
{
+ if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive))
+ QSKIP("Wayland: This freezes. Figure out why.");
+
QFontDatabase fdb;
FriendlyFontDialog dialog;
dialog.setOption(QFontDialog::DontUseNativeDialog);
diff --git a/tests/auto/widgets/dialogs/qsidebar/tst_qsidebar.cpp b/tests/auto/widgets/dialogs/qsidebar/tst_qsidebar.cpp
index 9c5e226731..8276d3ea9d 100644
--- a/tests/auto/widgets/dialogs/qsidebar/tst_qsidebar.cpp
+++ b/tests/auto/widgets/dialogs/qsidebar/tst_qsidebar.cpp
@@ -190,7 +190,8 @@ void tst_QSidebar::goToUrl()
qsidebar.show();
QSignalSpy spy(&qsidebar, SIGNAL(goToUrl(QUrl)));
- QTest::mousePress(qsidebar.viewport(), Qt::LeftButton, 0, qsidebar.visualRect(qsidebar.model()->index(0, 0)).center());
+ QTest::mousePress(qsidebar.viewport(), Qt::LeftButton, {},
+ qsidebar.visualRect(qsidebar.model()->index(0, 0)).center());
#ifdef Q_OS_WINRT
QEXPECT_FAIL("", "Fails on WinRT - QTBUG-68297", Abort);
#endif
diff --git a/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp b/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp
index 6091975acb..9ae4508bc1 100644
--- a/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp
+++ b/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp
@@ -237,7 +237,7 @@ void tst_QWizard::setButtonLayout()
QWizard wizard;
wizard.setWizardStyle(QWizard::ClassicStyle);
- wizard.setOptions(0);
+ wizard.setOptions({});
wizard.setButtonLayout(layout);
wizard.show();
qApp->processEvents();