summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/qwebenginepage
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
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')
-rw-r--r--tests/auto/widgets/qwebenginepage/resources/fullscreen.html10
-rw-r--r--tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp52
-rw-r--r--tests/auto/widgets/qwebenginepage/tst_qwebenginepage.qrc3
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>