summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2021-05-28 12:31:28 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2021-06-04 01:54:46 +0200
commit227279bf2f22c740f3f2fdc34f1032d4177dc32a (patch)
tree76b69a5b72a12dffd95948dde232ac5f7f55cf96 /tests/auto
parenta806467ff37414dc52b5a15a351bde5505afac6e (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')
-rw-r--r--tests/auto/quick/publicapi/tst_publicapi.cpp42
-rw-r--r--tests/auto/quick/qmltests/data/tst_navigationRequested.qml6
-rw-r--r--tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp51
3 files changed, 50 insertions, 49 deletions
diff --git a/tests/auto/quick/publicapi/tst_publicapi.cpp b/tests/auto/quick/publicapi/tst_publicapi.cpp
index 8a40325e0..a125d84f3 100644
--- a/tests/auto/quick/publicapi/tst_publicapi.cpp
+++ b/tests/auto/quick/publicapi/tst_publicapi.cpp
@@ -37,6 +37,7 @@
#include <QtWebEngineCore/QWebEngineCertificateError>
#include <QtWebEngineCore/QWebEngineFindTextResult>
#include <QtWebEngineCore/QWebEngineFullScreenRequest>
+#include <QtWebEngineCore/QWebEngineNavigationRequest>
#include <QtWebEngineCore/QWebEngineNewWindowRequest>
#include <QtWebEngineCore/QWebEngineNotification>
#include <QtWebEngineCore/QWebEngineQuotaRequest>
@@ -50,7 +51,6 @@
#include <private/qquickwebengineclientcertificateselection_p.h>
#include <private/qquickwebenginedialogrequests_p.h>
#include <private/qquickwebenginehistory_p.h>
-#include <private/qquickwebenginenavigationrequest_p.h>
#include <private/qquickwebenginesettings_p.h>
#include <private/qquickwebenginesingleton_p.h>
@@ -68,8 +68,6 @@ static const QList<const QMetaObject *> typesToCheck = QList<const QMetaObject *
<< &QWebEngineDownloadRequest::staticMetaObject
<< &QQuickWebEngineHistory::staticMetaObject
<< &QQuickWebEngineHistoryListModel::staticMetaObject
- << &QWebEngineLoadRequest::staticMetaObject
- << &QQuickWebEngineNavigationRequest::staticMetaObject
<< &QQuickWebEngineProfile::staticMetaObject
<< &QQuickWebEngineSettings::staticMetaObject
<< &QWebEngineFullScreenRequest::staticMetaObject
@@ -83,11 +81,13 @@ static const QList<const QMetaObject *> typesToCheck = QList<const QMetaObject *
<< &QQuickWebEngineTooltipRequest::staticMetaObject
<< &QWebEngineContextMenuRequest::staticMetaObject
<< &QWebEngineCertificateError::staticMetaObject
- << &QWebEngineQuotaRequest::staticMetaObject
- << &QWebEngineRegisterProtocolHandlerRequest::staticMetaObject
+ << &QWebEngineFindTextResult::staticMetaObject
+ << &QWebEngineLoadRequest::staticMetaObject
+ << &QWebEngineNavigationRequest::staticMetaObject
<< &QWebEngineNewWindowRequest::staticMetaObject
<< &QWebEngineNotification::staticMetaObject
- << &QWebEngineFindTextResult::staticMetaObject
+ << &QWebEngineQuotaRequest::staticMetaObject
+ << &QWebEngineRegisterProtocolHandlerRequest::staticMetaObject
;
static QList<QMetaEnum> knownEnumNames = QList<QMetaEnum>();
@@ -327,11 +327,20 @@ static const QStringList expectedAPI = QStringList()
<< "QWebEngineLoadRequest.HttpErrorDomain --> ErrorDomain"
<< "QWebEngineLoadRequest.InternalErrorDomain --> ErrorDomain"
<< "QWebEngineLoadRequest.NoErrorDomain --> ErrorDomain"
- << "QQuickWebEngineNavigationRequest.action --> QQuickWebEngineView::NavigationRequestAction"
- << "QQuickWebEngineNavigationRequest.actionChanged() --> void"
- << "QQuickWebEngineNavigationRequest.isMainFrame --> bool"
- << "QQuickWebEngineNavigationRequest.navigationType --> QQuickWebEngineView::NavigationType"
- << "QQuickWebEngineNavigationRequest.url --> QUrl"
+ << "QWebEngineNavigationRequest.action --> QWebEngineNavigationRequest::NavigationRequestAction"
+ << "QWebEngineNavigationRequest.actionChanged() --> void"
+ << "QWebEngineNavigationRequest.isMainFrame --> bool"
+ << "QWebEngineNavigationRequest.navigationType --> QWebEngineNavigationRequest::NavigationType"
+ << "QWebEngineNavigationRequest.url --> QUrl"
+ << "QWebEngineNavigationRequest.AcceptRequest --> NavigationRequestAction"
+ << "QWebEngineNavigationRequest.IgnoreRequest --> NavigationRequestAction"
+ << "QWebEngineNavigationRequest.BackForwardNavigation --> NavigationType"
+ << "QWebEngineNavigationRequest.FormSubmittedNavigation --> NavigationType"
+ << "QWebEngineNavigationRequest.LinkClickedNavigation --> NavigationType"
+ << "QWebEngineNavigationRequest.OtherNavigation --> NavigationType"
+ << "QWebEngineNavigationRequest.RedirectNavigation --> NavigationType"
+ << "QWebEngineNavigationRequest.ReloadNavigation --> NavigationType"
+ << "QWebEngineNavigationRequest.TypedNavigation --> NavigationType"
<< "QWebEngineNewWindowRequest.destination --> QWebEngineNewWindowRequest::DestinationType"
<< "QWebEngineNewWindowRequest.requestedUrl --> QUrl"
<< "QWebEngineNewWindowRequest.requestedGeometry --> QRect"
@@ -475,7 +484,6 @@ static const QStringList expectedAPI = QStringList()
<< "QQuickWebEngineView.A8 --> PrintedPageSizeId"
<< "QQuickWebEngineView.A9 --> PrintedPageSizeId"
<< "QQuickWebEngineView.AbnormalTerminationStatus --> RenderProcessTerminationStatus"
- << "QQuickWebEngineView.AcceptRequest --> NavigationRequestAction"
<< "QQuickWebEngineView.AlignCenter --> WebAction"
<< "QQuickWebEngineView.AlignJustified --> WebAction"
<< "QQuickWebEngineView.AlignLeft --> WebAction"
@@ -503,7 +511,6 @@ static const QStringList expectedAPI = QStringList()
<< "QQuickWebEngineView.B8 --> PrintedPageSizeId"
<< "QQuickWebEngineView.B9 --> PrintedPageSizeId"
<< "QQuickWebEngineView.Back --> WebAction"
- << "QQuickWebEngineView.BackForwardNavigation --> NavigationType"
<< "QQuickWebEngineView.C5E --> PrintedPageSizeId"
<< "QQuickWebEngineView.CertificateErrorDomain --> ErrorDomain"
<< "QQuickWebEngineView.Comm10E --> PrintedPageSizeId"
@@ -571,12 +578,10 @@ static const QStringList expectedAPI = QStringList()
<< "QQuickWebEngineView.FindBackward --> FindFlags"
<< "QQuickWebEngineView.FindCaseSensitively --> FindFlags"
<< "QQuickWebEngineView.Folio --> PrintedPageSizeId"
- << "QQuickWebEngineView.FormSubmittedNavigation --> NavigationType"
<< "QQuickWebEngineView.Forward --> WebAction"
<< "QQuickWebEngineView.FtpErrorDomain --> ErrorDomain"
<< "QQuickWebEngineView.Geolocation --> Feature"
<< "QQuickWebEngineView.HttpErrorDomain --> ErrorDomain"
- << "QQuickWebEngineView.IgnoreRequest --> NavigationRequestAction"
<< "QQuickWebEngineView.Imperial10x11 --> PrintedPageSizeId"
<< "QQuickWebEngineView.Imperial10x13 --> PrintedPageSizeId"
<< "QQuickWebEngineView.Imperial10x14 --> PrintedPageSizeId"
@@ -616,7 +621,6 @@ static const QStringList expectedAPI = QStringList()
<< "QQuickWebEngineView.LifecycleState.Active --> LifecycleState"
<< "QQuickWebEngineView.LifecycleState.Discarded --> LifecycleState"
<< "QQuickWebEngineView.LifecycleState.Frozen --> LifecycleState"
- << "QQuickWebEngineView.LinkClickedNavigation --> NavigationType"
<< "QQuickWebEngineView.LoadFailedStatus --> LoadStatus"
<< "QQuickWebEngineView.LoadStartedStatus --> LoadStatus"
<< "QQuickWebEngineView.LoadStoppedStatus --> LoadStatus"
@@ -634,7 +638,6 @@ static const QStringList expectedAPI = QStringList()
<< "QQuickWebEngineView.OpenLinkInNewTab --> WebAction"
<< "QQuickWebEngineView.OpenLinkInNewWindow --> WebAction"
<< "QQuickWebEngineView.OpenLinkInThisWindow --> WebAction"
- << "QQuickWebEngineView.OtherNavigation --> NavigationType"
<< "QQuickWebEngineView.Outdent --> WebAction"
<< "QQuickWebEngineView.Paste --> WebAction"
<< "QQuickWebEngineView.PasteAndMatchStyle --> WebAction"
@@ -644,11 +647,9 @@ static const QStringList expectedAPI = QStringList()
<< "QQuickWebEngineView.Prc32K --> PrintedPageSizeId"
<< "QQuickWebEngineView.Prc32KBig --> PrintedPageSizeId"
<< "QQuickWebEngineView.Quarto --> PrintedPageSizeId"
- << "QQuickWebEngineView.RedirectNavigation --> NavigationType"
<< "QQuickWebEngineView.Redo --> WebAction"
<< "QQuickWebEngineView.Reload --> WebAction"
<< "QQuickWebEngineView.ReloadAndBypassCache --> WebAction"
- << "QQuickWebEngineView.ReloadNavigation --> NavigationType"
<< "QQuickWebEngineView.RequestClose --> WebAction"
<< "QQuickWebEngineView.SavePage --> WebAction"
<< "QQuickWebEngineView.SelectAll --> WebAction"
@@ -666,7 +667,6 @@ static const QStringList expectedAPI = QStringList()
<< "QQuickWebEngineView.ToggleMediaPlayPause --> WebAction"
<< "QQuickWebEngineView.ToggleStrikethrough --> WebAction"
<< "QQuickWebEngineView.ToggleUnderline --> WebAction"
- << "QQuickWebEngineView.TypedNavigation --> NavigationType"
<< "QQuickWebEngineView.Undo --> WebAction"
<< "QQuickWebEngineView.Unselect --> WebAction"
<< "QQuickWebEngineView.ViewSource --> WebAction"
@@ -722,7 +722,7 @@ static const QStringList expectedAPI = QStringList()
<< "QQuickWebEngineView.loading --> bool"
<< "QQuickWebEngineView.loadingChanged(QWebEngineLoadRequest) --> void"
<< "QQuickWebEngineView.navigationHistory --> QQuickWebEngineHistory*"
- << "QQuickWebEngineView.navigationRequested(QQuickWebEngineNavigationRequest*) --> void"
+ << "QQuickWebEngineView.navigationRequested(QWebEngineNavigationRequest*) --> void"
<< "QQuickWebEngineView.newViewRequested(QWebEngineNewWindowRequest*) --> void"
<< "QQuickWebEngineView.pdfPrintingFinished(QString,bool) --> void"
<< "QQuickWebEngineView.printRequested() --> void"
diff --git a/tests/auto/quick/qmltests/data/tst_navigationRequested.qml b/tests/auto/quick/qmltests/data/tst_navigationRequested.qml
index a24b8f0d4..bb2864a7d 100644
--- a/tests/auto/quick/qmltests/data/tst_navigationRequested.qml
+++ b/tests/auto/quick/qmltests/data/tst_navigationRequested.qml
@@ -65,14 +65,14 @@ TestWebEngineView {
} else {
attributes.iframeUrl = request.url
if (shouldIgnoreSubFrameRequests) {
- request.action = WebEngineView.IgnoreRequest
+ request.action = WebEngineNavigationRequest.IgnoreRequest
}
}
- if (request.navigationType === WebEngineView.LinkClickedNavigation) {
+ if (request.navigationType === WebEngineNavigationRequest.LinkClickedNavigation) {
attributes.linkClickedNavigationRequested = true
if (shouldIgnoreLinkClicks) {
- request.action = WebEngineView.IgnoreRequest
+ request.action = WebEngineNavigationRequest.IgnoreRequest
attributes.linkClickedNavigationIgnored = true
}
}
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")));
}