From 9bd422add06df6d384eff4e4480ccda2fd27d60a Mon Sep 17 00:00:00 2001 From: Kirill Burtsev Date: Fri, 31 Jul 2020 16:11:17 +0200 Subject: Expand FullScreenRequest testing Add qml test and check for widgets context menu item Change-Id: I96ad15dd28f4b6bd9a7af1ed7f8ca1fda568ac81 Reviewed-by: Michal Klocek --- .../quick/qmltests/data/tst_fullScreenRequest.qml | 82 ++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 tests/auto/quick/qmltests/data/tst_fullScreenRequest.qml (limited to 'tests/auto/quick/qmltests/data') 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( + 'WRYYYY') + 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) + } + } + } +} -- cgit v1.2.3