diff options
Diffstat (limited to 'tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp')
-rw-r--r-- | tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp index 096658ae02..b9ca831e0c 100644 --- a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp +++ b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp @@ -114,8 +114,8 @@ public: virtual ~tst_QFiledialog(); public slots: + void initTestCase(); void init(); - void cleanup(); private slots: void currentChangedSignal(); @@ -171,7 +171,7 @@ private slots: void tildeExpansion(); #endif // QT_BUILD_INTERNAL #endif - void getFileUrl(); + void rejectModalDialogs(); private: QByteArray userSettings; @@ -185,28 +185,25 @@ tst_QFiledialog::~tst_QFiledialog() { } +void tst_QFiledialog::initTestCase() +{ + QStandardPaths::setTestModeEnabled(true); +} + void tst_QFiledialog::init() { - // Save the developers settings so they don't get mad when their sidebar folders are gone. + // clean up the sidebar between each test QSettings settings(QSettings::UserScope, QLatin1String("QtProject")); settings.beginGroup(QLatin1String("Qt")); - userSettings = settings.value(QLatin1String("filedialog")).toByteArray(); settings.remove(QLatin1String("filedialog")); - // populate it with some default settings + // populate the sidebar with some default settings QNonNativeFileDialog fd; #if defined(Q_OS_WINCE) QTest::qWait(1000); #endif } -void tst_QFiledialog::cleanup() -{ - QSettings settings(QSettings::UserScope, QLatin1String("QtProject")); - settings.beginGroup(QLatin1String("Qt")); - settings.setValue(QLatin1String("filedialog"), userSettings); -} - class MyAbstractItemDelegate : public QAbstractItemDelegate { public: @@ -252,7 +249,10 @@ void tst_QFiledialog::directoryEnteredSignal() // sidebar QSidebar *sidebar = fd.findChild<QSidebar*>("sidebar"); - sidebar->setCurrentIndex(sidebar->model()->index(1, 0)); + QVERIFY(sidebar->model()->rowCount() >= 2); + QModelIndex secondItem = sidebar->model()->index(1, 0); + QVERIFY(secondItem.isValid()); + sidebar->setCurrentIndex(secondItem); QTest::keyPress(sidebar->viewport(), Qt::Key_Return); QCOMPARE(spyDirectoryEntered.count(), 1); spyDirectoryEntered.clear(); @@ -1451,7 +1451,7 @@ public slots: } }; -void tst_QFiledialog::getFileUrl() +void tst_QFiledialog::rejectModalDialogs() { // QTBUG-38672 , static functions should return empty Urls const QFileDialog::Options options = QFileDialog::DontUseNativeDialog; @@ -1472,6 +1472,18 @@ void tst_QFiledialog::getFileUrl() QVERIFY(url.isEmpty()); QVERIFY(!url.isValid()); + // Same test with local files + QString file = QFileDialog::getOpenFileName(0, QStringLiteral("getOpenFileName"), + QString(), QString(), Q_NULLPTR, options); + QVERIFY(file.isEmpty()); + + file = QFileDialog::getExistingDirectory(0, QStringLiteral("getExistingDirectory"), + QString(), options | QFileDialog::ShowDirsOnly); + QVERIFY(file.isEmpty()); + + file = QFileDialog::getSaveFileName(0, QStringLiteral("getSaveFileName"), + QString(), QString(), Q_NULLPTR, options); + QVERIFY(file.isEmpty()); } QTEST_MAIN(tst_QFiledialog) |