diff options
author | Szabolcs David <davidsz@inf.u-szeged.hu> | 2019-01-24 17:42:39 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-01-30 15:58:34 +0000 |
commit | f2bdf9af580dd7f8676948c6437b33a01dfc8894 (patch) | |
tree | fc4caa04d760849b6bc9f8d902ac290732a10771 /tests | |
parent | b573b064c5f724c56a77d68b32ce8e3c16694a4f (diff) |
Answer permission checks for clipboard permissions
Wire page settings into clipboard permissions and add some auto test.
Task-number: QTBUG-72714
Change-Id: If921c65cdff7f55a48340d90fc593071febc6ebe
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp | 33 |
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 40a3bff5e..007acb8b0 100644 --- a/tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp +++ b/tests/auto/quick/qquickwebengineview/tst_qquickwebengineview.cpp @@ -1108,6 +1108,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) |