diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-05-28 12:31:28 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-06-04 01:54:46 +0200 |
commit | 227279bf2f22c740f3f2fdc34f1032d4177dc32a (patch) | |
tree | 76b69a5b72a12dffd95948dde232ac5f7f55cf96 /tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | |
parent | a806467ff37414dc52b5a15a351bde5505afac6e (diff) |
Move QQuickWebEngineNavigationRequest to Core
Adds navigationRequested() to QWebEnginePage and exposes more
information about navigation requests than the old
acceptNavigationRequest() method.
Change-Id: Ibb8d750bacd1060c3086ffe2c85336abd216bab0
Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
Diffstat (limited to 'tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp')
-rw-r--r-- | tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | 51 |
1 files changed, 26 insertions, 25 deletions
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index 460e4369b..cd91bf5fc 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -51,6 +51,7 @@ #include <qwebenginefindtextresult.h> #include <qwebenginefullscreenrequest.h> #include <qwebenginehistory.h> +#include <qwebenginenavigationrequest.h> #include <qwebenginenewwindowrequest.h> #include <qwebenginenotification.h> #include <qwebenginepage.h> @@ -529,26 +530,17 @@ public: TestPage(QObject *parent = nullptr) : QWebEnginePage(parent) { connect(this, &QWebEnginePage::geometryChangeRequested, this, &TestPage::slotGeometryChangeRequested); + connect(this, &QWebEnginePage::navigationRequested, this, &TestPage::slotNavigationRequested); connect(this, &QWebEnginePage::newWindowRequested, this, &TestPage::slotNewWindowRequested); } struct Navigation { - NavigationType type; + QWebEngineNavigationRequest::NavigationType type; QUrl url; bool isMainFrame; }; QList<Navigation> navigations; - bool acceptNavigationRequest(const QUrl &url, NavigationType type, bool isMainFrame) override - { - Navigation n; - n.url = url; - n.type = type; - n.isMainFrame = isMainFrame; - navigations.append(n); - return true; - } - QList<TestPage*> createdWindows; QRect requestedGeometry; @@ -557,6 +549,15 @@ signals: void windowCreated(); private Q_SLOTS: + void slotNavigationRequested(QWebEngineNavigationRequest &request) + { + Navigation n; + n.url = request.url(); + n.type = request.navigationType(); + n.isMainFrame = request.isMainFrame(); + navigations.append(n); + request.setAction(QWebEngineNavigationRequest::AcceptRequest); + } void slotNewWindowRequested(QWebEngineNewWindowRequest &request) { TestPage *page = new TestPage(this); @@ -600,19 +601,19 @@ void tst_QWebEnginePage::acceptNavigationRequestNavigationType() QTRY_COMPARE_WITH_TIMEOUT(loadSpy.count(), 6, 20000); QTRY_COMPARE(page.navigations.count(), 6); - QList<QWebEnginePage::NavigationType> expectedList; - expectedList << QWebEnginePage::NavigationTypeTyped - << QWebEnginePage::NavigationTypeTyped - << QWebEnginePage::NavigationTypeBackForward - << QWebEnginePage::NavigationTypeReload - << QWebEnginePage::NavigationTypeTyped - << QWebEnginePage::NavigationTypeRedirect; + QList<QWebEngineNavigationRequest::NavigationType> expectedList; + expectedList << QWebEngineNavigationRequest::TypedNavigation + << QWebEngineNavigationRequest::TypedNavigation + << QWebEngineNavigationRequest::BackForwardNavigation + << QWebEngineNavigationRequest::ReloadNavigation + << QWebEngineNavigationRequest::TypedNavigation + << QWebEngineNavigationRequest::RedirectNavigation; // client side redirect page.load(QUrl("qrc:///resources/redirect.html")); QTRY_COMPARE_WITH_TIMEOUT(loadSpy.count(), 7, 20000); QTRY_COMPARE(page.navigations.count(), 8); - expectedList += { QWebEnginePage::NavigationTypeTyped, QWebEnginePage::NavigationTypeRedirect }; + expectedList += { QWebEngineNavigationRequest::TypedNavigation, QWebEngineNavigationRequest::RedirectNavigation }; // server side redirect HttpServer server; @@ -635,9 +636,9 @@ void tst_QWebEnginePage::acceptNavigationRequestNavigationType() QTRY_COMPARE_WITH_TIMEOUT(loadSpy.count(), 8, 20000); QTRY_COMPARE(page.navigations.count(), 11); expectedList += { - QWebEnginePage::NavigationTypeTyped, - QWebEnginePage::NavigationTypeRedirect, - QWebEnginePage::NavigationTypeRedirect + QWebEngineNavigationRequest::TypedNavigation, + QWebEngineNavigationRequest::RedirectNavigation, + QWebEngineNavigationRequest::RedirectNavigation }; QVERIFY(expectedList.count() == page.navigations.count()); @@ -668,9 +669,9 @@ void tst_QWebEnginePage::acceptNavigationRequestRelativeToNothing() // The two setHtml and the second click are counted, while the // first click is ignored due to the empty base url. QCOMPARE(page.navigations.count(), 3); - QCOMPARE(page.navigations[0].type, QWebEnginePage::NavigationTypeTyped); - QCOMPARE(page.navigations[1].type, QWebEnginePage::NavigationTypeTyped); - QCOMPARE(page.navigations[2].type, QWebEnginePage::NavigationTypeLinkClicked); + QCOMPARE(page.navigations[0].type, QWebEngineNavigationRequest::TypedNavigation); + QCOMPARE(page.navigations[1].type, QWebEngineNavigationRequest::TypedNavigation); + QCOMPARE(page.navigations[2].type, QWebEngineNavigationRequest::LinkClickedNavigation); QCOMPARE(page.navigations[2].url, QUrl(QString("qrc:/S0"))); } |