diff options
Diffstat (limited to 'tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp')
-rw-r--r-- | tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
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" |