diff options
Diffstat (limited to 'tests/auto/quick/qmltests/data/tst_fullScreenRequest.qml')
-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..c7996a11e --- /dev/null +++ b/tests/auto/quick/qmltests/data/tst_fullScreenRequest.qml @@ -0,0 +1,82 @@ +import QtQuick +import QtTest +import QtWebEngine + +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) + } + } + } +} |