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.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
index 047df0d3f2..096658ae02 100644
--- a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
+++ b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
@@ -171,6 +171,7 @@ private slots:
void tildeExpansion();
#endif // QT_BUILD_INTERNAL
#endif
+ void getFileUrl();
private:
QByteArray userSettings;
@@ -1429,5 +1430,49 @@ void tst_QFiledialog::tildeExpansion()
#endif // QT_BUILD_INTERNAL
#endif
+class DialogRejecter : public QObject
+{
+ Q_OBJECT
+public:
+ DialogRejecter()
+ {
+ QTimer *timer = new QTimer(this);
+ timer->setInterval(1000);
+ connect(timer, &QTimer::timeout, this, &DialogRejecter::rejectFileDialog);
+ timer->start();
+ }
+
+public slots:
+ void rejectFileDialog()
+ {
+ if (QWidget *w = QApplication::activeModalWidget())
+ if (QDialog *d = qobject_cast<QDialog *>(w))
+ d->reject();
+ }
+};
+
+void tst_QFiledialog::getFileUrl()
+{
+ // QTBUG-38672 , static functions should return empty Urls
+ const QFileDialog::Options options = QFileDialog::DontUseNativeDialog;
+ DialogRejecter dr;
+
+ QUrl url = QFileDialog::getOpenFileUrl(0, QStringLiteral("getOpenFileUrl"),
+ QUrl(), QString(), Q_NULLPTR, options);
+ QVERIFY(url.isEmpty());
+ QVERIFY(!url.isValid());
+
+ url = QFileDialog::getExistingDirectoryUrl(0, QStringLiteral("getExistingDirectoryUrl"),
+ QUrl(), options | QFileDialog::ShowDirsOnly);
+ QVERIFY(url.isEmpty());
+ QVERIFY(!url.isValid());
+
+ url = QFileDialog::getSaveFileUrl(0, QStringLiteral("getSaveFileUrl"),
+ QUrl(), QString(), Q_NULLPTR, options);
+ QVERIFY(url.isEmpty());
+ QVERIFY(!url.isValid());
+
+}
+
QTEST_MAIN(tst_QFiledialog)
#include "tst_qfiledialog.moc"