summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
diff options
context:
space:
mode:
authorSzabolcs David <davidsz@inf.u-szeged.hu>2015-08-18 11:31:52 +0200
committerAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2015-08-26 09:43:51 +0000
commit3320515bb4578769dee8b0f0d6ab4ad77284f383 (patch)
tree54d1c09ba520e6b70a726c8d4f03000d51cf741e /tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
parent0bd5956e6199c71ab19b0d7a0b91c453140e72fc (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/tst_qwebenginepage.cpp')
-rw-r--r--tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp52
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"