diff options
author | Kirill Burtsev <kirill.burtsev@qt.io> | 2020-07-31 16:11:17 +0200 |
---|---|---|
committer | Kirill Burtsev <kirill.burtsev@qt.io> | 2020-08-31 10:05:20 +0200 |
commit | 9bd422add06df6d384eff4e4480ccda2fd27d60a (patch) | |
tree | 03e91f697fd945000d85e73e6432c89ebc5bc742 /tests/auto/quick/qmltests/data | |
parent | d25075fb681fa92fad1f9bdcb262a3e361e7659e (diff) |
Expand FullScreenRequest testing
Add qml test and check for widgets context menu item
Change-Id: I96ad15dd28f4b6bd9a7af1ed7f8ca1fda568ac81
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Diffstat (limited to 'tests/auto/quick/qmltests/data')
-rw-r--r-- | tests/auto/quick/qmltests/data/tst_fullScreenRequest.qml | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/tests/auto/quick/qmltests/data/tst_fullScreenRequest.qml b/tests/auto/quick/qmltests/data/tst_fullScreenRequest.qml new file mode 100644 index 000000000..2d9247b26 --- /dev/null +++ b/tests/auto/quick/qmltests/data/tst_fullScreenRequest.qml @@ -0,0 +1,82 @@ +import QtQuick 2.2 +import QtTest 1.0 +import QtWebEngine 1.9 + +TestWebEngineView { + id: view + width: 320 + height: 320 + + property bool acceptRequest: false + + onFullScreenRequested: function(request) { + view.acceptRequest ? request.accept() : request.reject() + } + + SignalSpy { + id: spyRequest + target: view + signalName: 'fullScreenRequested' + } + + TestCase { + name: 'FullScreenRequest' + when: windowShown + + function init() { + spyRequest.clear() + } + + function test_request_data() { + return [ + { tag: 'accept', accept: true }, + { tag: 'reject', accept: false }, + ] + } + + function test_request(data) { + view.acceptRequest = data.accept + view.settings.fullscreenSupportEnabled = true + + // full screen request is only allowed by user gesture, so emulate key press + view.loadHtml( + '<html><body onkeypress="onKeyPress()"><a id="a">WRYYYY</a><script>' + + 'function onKeyPress() {' + + ' document.webkitIsFullScreen'+ + ' ? document.webkitExitFullscreen()' + + ' : document.documentElement.webkitRequestFullScreen()' + + '} </script></body></html>') + view.waitForLoadSucceeded() + verify(!view.isFullScreen) + + let result = null + view.runJavaScript('document.webkitFullscreenEnabled', function(r) { result = r }) + tryVerify(function() { return result === true }) + + result = null + view.runJavaScript('document.webkitIsFullScreen', function(r) { result = r }) + tryVerify(function() { return result === false }) + + // will trigger full screen request through key press + keyClick(Qt.Key_Space) + spyRequest.wait() + compare(spyRequest.count, 1) + verify(spyRequest.signalArguments[0][0].toggleOn) + compare(data.accept, view.isFullScreen) + + view.runJavaScript('document.webkitIsFullScreen', function(r) { result = r }) + tryVerify(function() { return result === data.accept }) + + if (data.accept) { + // expected to toggle from current state + keyClick(Qt.Key_Space) + spyRequest.wait() + compare(spyRequest.count, 2) + verify(!spyRequest.signalArguments[1][0].toggleOn) + view.runJavaScript('document.webkitIsFullScreen', function(r) { result = r }) + tryVerify(function() { return result === false }) + verify(!view.isFullScreen) + } + } + } +} |