summaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp')
-rw-r--r--tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp b/tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp
index d467cd8ae..8947bba9d 100644
--- a/tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp
+++ b/tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp
@@ -1110,6 +1110,39 @@ void tst_QQuickWebEngineView::javascriptClipboard()
QCOMPARE(evaluateJavaScriptSync(view, "document.execCommand('paste')").toBool(), pasteResult);
QCOMPARE(evaluateJavaScriptSync(view, "document.getElementById('myInput').value").toString(),
(pasteResult ? QString("AnotherText") : QString("OriginalText")));
+
+ // Test settings on clipboard permissions
+ evaluateJavaScriptSync(view,
+ QStringLiteral(
+ "var accessGranted = false;"
+ "var accessDenied = false;"
+ "var accessPrompt = false;"
+ "navigator.permissions.query({name:'clipboard-write'})"
+ ".then(result => {"
+ "if (result.state == 'granted') accessGranted = true;"
+ "if (result.state == 'denied') accessDenied = true;"
+ "if (result.state == 'prompt') accessPrompt = true;"
+ "})"));
+
+ QTRY_COMPARE(evaluateJavaScriptSync(view, "accessGranted").toBool(), copyResult);
+ QTRY_COMPARE(evaluateJavaScriptSync(view, "accessDenied").toBool(), !javascriptCanAccessClipboard);
+ QTRY_COMPARE(evaluateJavaScriptSync(view, "accessPrompt").toBool(), false);
+
+ evaluateJavaScriptSync(view,
+ QStringLiteral(
+ "accessGranted = false;"
+ "accessDenied = false;"
+ "accessPrompt = false;"
+ "navigator.permissions.query({name:'clipboard-read'})"
+ ".then(result => {"
+ "if (result.state == 'granted') accessGranted = true;"
+ "if (result.state == 'denied') accessDenied = true;"
+ "if (result.state == 'prompt') accessPrompt = true;"
+ "})"));
+
+ QTRY_COMPARE(evaluateJavaScriptSync(view, "accessGranted").toBool(), pasteResult);
+ QTRY_COMPARE(evaluateJavaScriptSync(view, "accessDenied").toBool(), !javascriptCanAccessClipboard || !javascriptCanPaste);
+ QTRY_COMPARE(evaluateJavaScriptSync(view, "accessPrompt").toBool(), false);
}
QTEST_MAIN(tst_QQuickWebEngineView)