diff options
author | Szabolcs David <davidsz@inf.u-szeged.hu> | 2015-08-18 11:31:52 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-08-26 09:43:51 +0000 |
commit | 3320515bb4578769dee8b0f0d6ab4ad77284f383 (patch) | |
tree | 54d1c09ba520e6b70a726c8d4f03000d51cf741e /tests/auto/widgets/qwebenginepage | |
parent | 0bd5956e6199c71ab19b0d7a0b91c453140e72fc (diff) |
Widgets: Add fullscreen support
Change-Id: Ibf1697d2bb3b3af5e7d71149305c5acffba43f0f
Reviewed-by: Szabolcs David <davidsz@inf.u-szeged.hu>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Diffstat (limited to 'tests/auto/widgets/qwebenginepage')
3 files changed, 64 insertions, 1 deletions
diff --git a/tests/auto/widgets/qwebenginepage/resources/fullscreen.html b/tests/auto/widgets/qwebenginepage/resources/fullscreen.html new file mode 100644 index 000000000..84771ca85 --- /dev/null +++ b/tests/auto/widgets/qwebenginepage/resources/fullscreen.html @@ -0,0 +1,10 @@ +<html> +<body onkeypress='onKeyPress()'> +<a>This is test content</a> +<script> +function onKeyPress() { + document.documentElement.webkitRequestFullScreen(); +} +</script> +</body> +</html> diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index 9562871b3..ae66d928f 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -192,6 +192,7 @@ private Q_SLOTS: #endif void runJavaScript(); + void fullScreenRequested(); private: QWebEngineView* m_view; @@ -3740,5 +3741,56 @@ void tst_QWebEnginePage::runJavaScript() QTest::qWait(100); } +class FullScreenPage : public QWebEnginePage { + Q_OBJECT +public: + FullScreenPage(QObject* parent = 0) + : QWebEnginePage(parent) + , m_isFullScreen(true) + { } + + void setIsFullScreen(bool b) { m_isFullScreen = b; } + +protected: + bool isFullScreen() override + { + return m_isFullScreen; + } + bool m_isFullScreen; +}; + +void tst_QWebEnginePage::fullScreenRequested() +{ + FullScreenPage* page = new FullScreenPage; + QWebEngineView* view = new QWebEngineView; + view->setPage(page); + view->show(); + + page->settings()->setAttribute(QWebEngineSettings::FullScreenSupportEnabled, true); + + QSignalSpy loadSpy(view, SIGNAL(loadFinished(bool))); + page->load(QUrl("qrc:///resources/fullscreen.html")); + QTRY_COMPARE(loadSpy.count(), 1); + + page->runJavaScript("document.webkitFullscreenEnabled", JavaScriptCallback(true)); + page->runJavaScript("document.webkitIsFullScreen", JavaScriptCallback(false)); + + // FullscreenRequest must be a user gesture + QTest::keyPress(qApp->focusWindow(), Qt::Key_Space); + QTest::qWait(100); + page->runJavaScript("document.webkitIsFullScreen", JavaScriptCallback(true)); + page->runJavaScript("document.webkitExitFullscreen()"); + QTest::qWait(100); + page->setIsFullScreen(false); + page->runJavaScript("document.webkitFullscreenEnabled", JavaScriptCallback(true)); + QTest::keyPress(qApp->focusWindow(), Qt::Key_Space); + QTest::qWait(100); + page->runJavaScript("document.webkitIsFullScreen", JavaScriptCallback(false)); + QTest::qWait(100); + + delete view; + delete page; +} + QTEST_MAIN(tst_QWebEnginePage) #include "tst_qwebenginepage.moc" diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.qrc b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.qrc index 994d71b43..0a8995090 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.qrc +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.qrc @@ -1,5 +1,6 @@ <!DOCTYPE RCC><RCC version="1.0"> <qresource> + <file>resources/content.html</file> <file>resources/index.html</file> <file>resources/frame_a.html</file> <file>resources/frame_c.html</file> @@ -7,7 +8,7 @@ <file>resources/iframe2.html</file> <file>resources/iframe3.html</file> <file>resources/framedindex.html</file> - <file>resources/content.html</file> + <file>resources/fullscreen.html</file> <file>resources/script.html</file> <file>resources/user.css</file> </qresource> |