summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp')
-rw-r--r--tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
index 797aef335..2cb0843db 100644
--- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
+++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
@@ -240,6 +240,7 @@ private Q_SLOTS:
void testChooseFilesParameters_data();
void testChooseFilesParameters();
+ void fileSystemAccessDialog();
private:
static QPoint elementCenter(QWebEnginePage *page, const QString &id);
@@ -4728,6 +4729,34 @@ void tst_QWebEnginePage::testChooseFilesParameters()
QTRY_COMPARE(page.chosenAcceptedMimeTypes, expectedMimeType);
}
+void tst_QWebEnginePage::fileSystemAccessDialog()
+{
+ FileSelectionTestPage page;
+ QSignalSpy spyFinished(&page, &QWebEnginePage::loadFinished);
+
+ QWebEngineView view;
+ view.resize(500, 500);
+ view.setPage(&page);
+ view.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&view));
+
+ page.setHtml(QString("<html><body>"
+ "<button id='triggerDialog' value='trigger' "
+ "onclick='window.showDirectoryPicker()'>"
+ "</body></html>"),
+ QString("qrc:/"));
+ QVERIFY(spyFinished.wait());
+ QTRY_COMPARE(spyFinished.count(), 1);
+
+ evaluateJavaScriptSync(view.page(), "document.getElementById('triggerDialog').focus()");
+ QTRY_COMPARE(evaluateJavaScriptSync(view.page(), "document.activeElement.id").toString(),
+ QStringLiteral("triggerDialog"));
+ QTest::keyClick(view.focusProxy(), Qt::Key_Enter);
+
+ QTRY_COMPARE(page.chosenFileSelectionMode, QWebEnginePage::FileSelectUploadFolder);
+ QTRY_COMPARE(page.chosenAcceptedMimeTypes, QStringList());
+}
+
void tst_QWebEnginePage::backgroundColor()
{
QWebEngineProfile profile;