parent
056d5ec3aa
commit
e45876c2a3
5 changed files with 153 additions and 0 deletions
@ -0,0 +1,5 @@ |
||||
<RCC> |
||||
<qresource prefix="/autotests"> |
||||
<file>data/basic_page.html</file> |
||||
</qresource> |
||||
</RCC> |
||||
@ -0,0 +1,8 @@ |
||||
<html> |
||||
<head> |
||||
<title> Basic Page </title> |
||||
</head> |
||||
<body> |
||||
<h1>Hello World</h1> |
||||
</body> |
||||
</html> |
||||
@ -0,0 +1,106 @@ |
||||
/* ============================================================
|
||||
* Falkon - Qt web browser |
||||
* Copyright (C) 2018 David Rosca <nowrep@gmail.com> |
||||
* |
||||
* This program is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU General Public License as published by |
||||
* the Free Software Foundation, either version 3 of the License, or |
||||
* (at your option) any later version. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
* ============================================================ */ |
||||
#include "autotests.h" |
||||
#include "webviewtest.h" |
||||
#include "webview.h" |
||||
#include "webpage.h" |
||||
|
||||
class TestWebView : public WebView |
||||
{ |
||||
public: |
||||
explicit TestWebView() |
||||
: WebView() |
||||
{ |
||||
} |
||||
|
||||
QWidget *overlayWidget() override |
||||
{ |
||||
return this; |
||||
} |
||||
|
||||
void closeView() override |
||||
{ |
||||
} |
||||
|
||||
void loadInNewTab(const LoadRequest &req, Qz::NewTabPositionFlags position) override |
||||
{ |
||||
Q_UNUSED(req) |
||||
Q_UNUSED(position) |
||||
} |
||||
|
||||
bool isFullScreen() override |
||||
{ |
||||
return m_fullScreen; |
||||
} |
||||
|
||||
void requestFullScreen(bool enable) override |
||||
{ |
||||
m_fullScreen = enable; |
||||
} |
||||
|
||||
bool m_fullScreen = false; |
||||
}; |
||||
|
||||
void WebViewTest::initTestCase() |
||||
{ |
||||
} |
||||
|
||||
void WebViewTest::cleanupTestCase() |
||||
{ |
||||
} |
||||
|
||||
void WebViewTest::loadSignalsChangePageTest() |
||||
{ |
||||
TestWebView view; |
||||
WebPage *page1 = new WebPage; |
||||
view.setPage(page1); |
||||
|
||||
QSignalSpy loadStartedSpy(&view, &WebView::loadStarted); |
||||
QSignalSpy loadFinishedSpy(&view, &WebView::loadFinished); |
||||
|
||||
view.load(QUrl(":autotests/data/basic_page.html")); |
||||
|
||||
QTRY_COMPARE(loadStartedSpy.count(), 1); |
||||
loadStartedSpy.clear(); |
||||
|
||||
WebPage *page2 = new WebPage; |
||||
view.setPage(page2); |
||||
|
||||
// WebPage: Workaround for broken load started/finished signals in QtWebEngine 5.10
|
||||
const int loadFinishedEmitCount = qstrcmp(qVersion(), "5.10.0") == 0 ? 2 : 1; |
||||
|
||||
QTRY_COMPARE(loadFinishedSpy.count(), loadFinishedEmitCount); |
||||
QCOMPARE(loadStartedSpy.count(), 0); |
||||
loadFinishedSpy.clear(); |
||||
|
||||
QWebEngineView view2; |
||||
WebPage *page3 = new WebPage; |
||||
view2.setPage(page3); |
||||
|
||||
QSignalSpy page3LoadStart(page3, &WebPage::loadStarted); |
||||
page3->load(QUrl(":autotests/data/basic_page.html")); |
||||
QVERIFY(page3LoadStart.wait()); |
||||
|
||||
view2.setPage(new QWebEnginePage(&view2)); |
||||
view.setPage(page3); |
||||
|
||||
QTRY_COMPARE(loadStartedSpy.count(), 1); |
||||
QCOMPARE(loadFinishedSpy.count(), 0); |
||||
} |
||||
|
||||
FALKONTEST_MAIN(WebViewTest) |
||||
@ -0,0 +1,31 @@ |
||||
/* ============================================================
|
||||
* Falkon - Qt web browser |
||||
* Copyright (C) 2018 David Rosca <nowrep@gmail.com> |
||||
* |
||||
* This program is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU General Public License as published by |
||||
* the Free Software Foundation, either version 3 of the License, or |
||||
* (at your option) any later version. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU General Public License |
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
* ============================================================ */ |
||||
#pragma once |
||||
|
||||
#include <QObject> |
||||
|
||||
class WebViewTest : public QObject |
||||
{ |
||||
Q_OBJECT |
||||
|
||||
private slots: |
||||
void initTestCase(); |
||||
void cleanupTestCase(); |
||||
|
||||
void loadSignalsChangePageTest(); |
||||
}; |
||||
Loading…
Reference in new issue