summaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qmltests
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2017-07-19 14:12:54 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-09-11 17:25:32 +0000
commit7282fb4fb4861320539f2b7288f63e1d4f48749d (patch)
tree3fb62ed4d45875be975410b08c776888803748ec /tests/auto/quick/qmltests
parent82499104972d24027044acaff1136ea7d758efe2 (diff)
Adaptations for Chromium 60
Change-Id: I536258e22c2ec143f2fd3f1cbda229e0611b6af4 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'tests/auto/quick/qmltests')
-rw-r--r--tests/auto/quick/qmltests/data/confirmclose.html3
-rw-r--r--tests/auto/quick/qmltests/data/tst_javaScriptDialogs.qml22
-rw-r--r--tests/auto/quick/qmltests/tst_qmltests.cpp13
3 files changed, 35 insertions, 3 deletions
diff --git a/tests/auto/quick/qmltests/data/confirmclose.html b/tests/auto/quick/qmltests/data/confirmclose.html
index ba11da7a4..c2acbb67f 100644
--- a/tests/auto/quick/qmltests/data/confirmclose.html
+++ b/tests/auto/quick/qmltests/data/confirmclose.html
@@ -1,5 +1,6 @@
<html>
-<body onbeforeunload="return 'You are about to miss out on some awesome content.';">
+<body onbeforeunload="return 'You are about to miss out on some awesome content.';"
+ onmousedown="window.mousePressReceived = true;">
Be greeted, precious viewer!
</body>
</html>
diff --git a/tests/auto/quick/qmltests/data/tst_javaScriptDialogs.qml b/tests/auto/quick/qmltests/data/tst_javaScriptDialogs.qml
index 73673f511..44836d67c 100644
--- a/tests/auto/quick/qmltests/data/tst_javaScriptDialogs.qml
+++ b/tests/auto/quick/qmltests/data/tst_javaScriptDialogs.qml
@@ -34,6 +34,7 @@ import "../mock-delegates/TestParams" 1.0
TestWebEngineView {
id: webEngineView
+ anchors.fill: parent
testSupport: WebEngineTestSupport {
property bool windowCloseRejectedSignalEmitted: false
@@ -52,6 +53,7 @@ TestWebEngineView {
TestCase {
id: test
name: "WebEngineViewJavaScriptDialogs"
+ when: windowShown
function init() {
JSDialogParams.dialogMessage = "";
@@ -82,11 +84,29 @@ TestWebEngineView {
}
+ function simulateUserGesture() {
+ // A user gesture after page load is required since Chromium 60 to allow showing
+ // an onbeforeunload dialog.
+ // See https://www.chromestatus.com/feature/5082396709879808
+ mouseClick(webEngineView, 10, 10, Qt.LeftButton)
+
+ var mousePressReceived;
+ runJavaScript("window.mousePressReceived", function(result) {
+ mousePressReceived = result;
+ });
+
+ tryVerify(function() {
+ return mousePressReceived != undefined
+ }, 5000);
+ }
+
function test_confirmClose() {
webEngineView.url = Qt.resolvedUrl("confirmclose.html");
verify(webEngineView.waitForLoadSucceeded());
webEngineView.windowCloseRequestedSignalEmitted = false;
JSDialogParams.shouldAcceptDialog = true;
+
+ simulateUserGesture()
webEngineView.triggerWebAction(WebEngineView.RequestClose);
verify(webEngineView.waitForWindowCloseRequested());
}
@@ -96,6 +116,8 @@ TestWebEngineView {
verify(webEngineView.waitForLoadSucceeded());
webEngineView.testSupport.windowCloseRejectedSignalEmitted = false;
JSDialogParams.shouldAcceptDialog = false;
+
+ simulateUserGesture()
webEngineView.triggerWebAction(WebEngineView.RequestClose);
verify(webEngineView.testSupport.waitForWindowCloseRejected());
}
diff --git a/tests/auto/quick/qmltests/tst_qmltests.cpp b/tests/auto/quick/qmltests/tst_qmltests.cpp
index 5dc909709..2aa24b76c 100644
--- a/tests/auto/quick/qmltests/tst_qmltests.cpp
+++ b/tests/auto/quick/qmltests/tst_qmltests.cpp
@@ -114,8 +114,17 @@ int main(int argc, char **argv)
// Force to use English language for testing due to error message checks
QLocale::setDefault(QLocale("en"));
- if (!QCoreApplication::instance())
- app.reset(new Application(argc, argv));
+ static QByteArrayList params = {QByteArrayLiteral("--use-fake-device-for-media-stream")};
+ QVector<const char *> w_argv(argc); \
+ for (int i = 0; i < argc; ++i) \
+ w_argv[i] = argv[i]; \
+ for (int i = 0; i < params.size(); ++i) \
+ w_argv.append(params[i].data()); \
+ int w_argc = w_argv.size(); \
+
+ if (!QCoreApplication::instance()) {
+ app.reset(new Application(w_argc, const_cast<char **>(w_argv.data())));
+ }
QtWebEngine::initialize();
QQuickWebEngineProfile::defaultProfile()->setOffTheRecord(true);