summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp')
-rw-r--r--tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp40
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)