From 0169592b56efe17709db93f8fa02274b3774277a Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Wed, 9 Sep 2015 10:03:41 +0200 Subject: update tst_publicapi Added QQuickWebEngineSingleton and updated the expected API list. Change-Id: If91aadd2353b94732da18734bdfe68fbf3245d53 Reviewed-by: Allan Sandfeld Jensen --- tests/auto/quick/publicapi/tst_publicapi.cpp | 211 +++++++++++++++++---------- 1 file changed, 132 insertions(+), 79 deletions(-) (limited to 'tests/auto') diff --git a/tests/auto/quick/publicapi/tst_publicapi.cpp b/tests/auto/quick/publicapi/tst_publicapi.cpp index 8f0c2f6ec..bf0192e42 100644 --- a/tests/auto/quick/publicapi/tst_publicapi.cpp +++ b/tests/auto/quick/publicapi/tst_publicapi.cpp @@ -56,6 +56,7 @@ #include #include #include +#include class tst_publicapi : public QObject { Q_OBJECT @@ -76,6 +77,7 @@ static QList typesToCheck = QList() << &QQuickWebEngineScript::staticMetaObject << &QQuickWebEngineSettings::staticMetaObject << &QQuickWebEngineFullScreenRequest::staticMetaObject + << &QQuickWebEngineSingleton::staticMetaObject ; static QList knownEnumNames = QList(); @@ -87,28 +89,22 @@ static QStringList hardcodedTypes = QStringList() // Ignore the testSupport types without making a fuss. << "QQuickWebEngineTestSupport*" << "QQuickWebEngineErrorPage*" + << "QWebEngineCookieStoreClient*" ; static QStringList expectedAPI = QStringList() << "QQuickWebEngineView.AcceptRequest --> NavigationRequestAction" << "QQuickWebEngineView.IgnoreRequest --> NavigationRequestAction" + << "QQuickWebEngineView.LinkClickedNavigation --> NavigationType" + << "QQuickWebEngineView.TypedNavigation --> NavigationType" + << "QQuickWebEngineView.FormSubmittedNavigation --> NavigationType" + << "QQuickWebEngineView.BackForwardNavigation --> NavigationType" + << "QQuickWebEngineView.ReloadNavigation --> NavigationType" + << "QQuickWebEngineView.OtherNavigation --> NavigationType" << "QQuickWebEngineView.LoadStartedStatus --> LoadStatus" << "QQuickWebEngineView.LoadStoppedStatus --> LoadStatus" << "QQuickWebEngineView.LoadSucceededStatus --> LoadStatus" << "QQuickWebEngineView.LoadFailedStatus --> LoadStatus" - << "QQuickWebEngineCertificateError.SslPinnedKeyNotInCertificateChain --> Error" - << "QQuickWebEngineCertificateError.CertificateCommonNameInvalid --> Error" - << "QQuickWebEngineCertificateError.CertificateDateInvalid --> Error" - << "QQuickWebEngineCertificateError.CertificateAuthorityInvalid --> Error" - << "QQuickWebEngineCertificateError.CertificateContainsErrors --> Error" - << "QQuickWebEngineCertificateError.CertificateNoRevocationMechanism --> Error" - << "QQuickWebEngineCertificateError.CertificateUnableToCheckRevocation --> Error" - << "QQuickWebEngineCertificateError.CertificateRevoked --> Error" - << "QQuickWebEngineCertificateError.CertificateInvalid --> Error" - << "QQuickWebEngineCertificateError.CertificateWeakSignatureAlgorithm --> Error" - << "QQuickWebEngineCertificateError.CertificateNonUniqueName --> Error" - << "QQuickWebEngineCertificateError.CertificateWeakKey --> Error" - << "QQuickWebEngineCertificateError.CertificateNameConstraintViolation --> Error" << "QQuickWebEngineView.NoErrorDomain --> ErrorDomain" << "QQuickWebEngineView.InternalErrorDomain --> ErrorDomain" << "QQuickWebEngineView.ConnectionErrorDomain --> ErrorDomain" @@ -116,14 +112,6 @@ static QStringList expectedAPI = QStringList() << "QQuickWebEngineView.HttpErrorDomain --> ErrorDomain" << "QQuickWebEngineView.FtpErrorDomain --> ErrorDomain" << "QQuickWebEngineView.DnsErrorDomain --> ErrorDomain" - << "QQuickWebEngineView.FindBackward --> FindFlags" - << "QQuickWebEngineView.FindCaseSensitively --> FindFlags" - << "QQuickWebEngineView.LinkClickedNavigation --> NavigationType" - << "QQuickWebEngineView.TypedNavigation --> NavigationType" - << "QQuickWebEngineView.FormSubmittedNavigation --> NavigationType" - << "QQuickWebEngineView.BackForwardNavigation --> NavigationType" - << "QQuickWebEngineView.ReloadNavigation --> NavigationType" - << "QQuickWebEngineView.OtherNavigation --> NavigationType" << "QQuickWebEngineView.NewViewInWindow --> NewViewDestination" << "QQuickWebEngineView.NewViewInTab --> NewViewDestination" << "QQuickWebEngineView.NewViewInDialog --> NewViewDestination" @@ -132,31 +120,81 @@ static QStringList expectedAPI = QStringList() << "QQuickWebEngineView.MediaVideoCapture --> Feature" << "QQuickWebEngineView.MediaAudioVideoCapture --> Feature" << "QQuickWebEngineView.Geolocation --> Feature" + << "QQuickWebEngineView.NoWebAction --> WebAction" + << "QQuickWebEngineView.Back --> WebAction" + << "QQuickWebEngineView.Forward --> WebAction" + << "QQuickWebEngineView.Stop --> WebAction" + << "QQuickWebEngineView.Reload --> WebAction" + << "QQuickWebEngineView.Cut --> WebAction" + << "QQuickWebEngineView.Copy --> WebAction" + << "QQuickWebEngineView.Paste --> WebAction" + << "QQuickWebEngineView.Undo --> WebAction" + << "QQuickWebEngineView.Redo --> WebAction" + << "QQuickWebEngineView.SelectAll --> WebAction" + << "QQuickWebEngineView.ReloadAndBypassCache --> WebAction" + << "QQuickWebEngineView.PasteAndMatchStyle --> WebAction" + << "QQuickWebEngineView.OpenLinkInThisWindow --> WebAction" + << "QQuickWebEngineView.OpenLinkInNewWindow --> WebAction" + << "QQuickWebEngineView.OpenLinkInNewTab --> WebAction" + << "QQuickWebEngineView.CopyLinkToClipboard --> WebAction" + << "QQuickWebEngineView.DownloadLinkToDisk --> WebAction" + << "QQuickWebEngineView.CopyImageToClipboard --> WebAction" + << "QQuickWebEngineView.CopyImageUrlToClipboard --> WebAction" + << "QQuickWebEngineView.DownloadImageToDisk --> WebAction" + << "QQuickWebEngineView.CopyMediaUrlToClipboard --> WebAction" + << "QQuickWebEngineView.ToggleMediaControls --> WebAction" + << "QQuickWebEngineView.ToggleMediaLoop --> WebAction" + << "QQuickWebEngineView.ToggleMediaPlayPause --> WebAction" + << "QQuickWebEngineView.ToggleMediaMute --> WebAction" + << "QQuickWebEngineView.DownloadMediaToDisk --> WebAction" + << "QQuickWebEngineView.InspectElement --> WebAction" + << "QQuickWebEngineView.ExitFullScreen --> WebAction" + << "QQuickWebEngineView.WebActionCount --> WebAction" << "QQuickWebEngineView.InfoMessageLevel --> JavaScriptConsoleMessageLevel" << "QQuickWebEngineView.WarningMessageLevel --> JavaScriptConsoleMessageLevel" << "QQuickWebEngineView.ErrorMessageLevel --> JavaScriptConsoleMessageLevel" - << "QQuickWebEngineView.title --> QString" + << "QQuickWebEngineView.NormalTerminationStatus --> RenderProcessTerminationStatus" + << "QQuickWebEngineView.AbnormalTerminationStatus --> RenderProcessTerminationStatus" + << "QQuickWebEngineView.CrashedTerminationStatus --> RenderProcessTerminationStatus" + << "QQuickWebEngineView.KilledTerminationStatus --> RenderProcessTerminationStatus" + << "QQuickWebEngineView.FindBackward --> FindFlags" + << "QQuickWebEngineView.FindCaseSensitively --> FindFlags" << "QQuickWebEngineView.url --> QUrl" << "QQuickWebEngineView.icon --> QUrl" + << "QQuickWebEngineView.loading --> bool" + << "QQuickWebEngineView.loadProgress --> int" + << "QQuickWebEngineView.title --> QString" << "QQuickWebEngineView.canGoBack --> bool" << "QQuickWebEngineView.canGoForward --> bool" << "QQuickWebEngineView.isFullScreen --> bool" - << "QQuickWebEngineView.loading --> bool" - << "QQuickWebEngineView.loadProgress --> int" + << "QQuickWebEngineView.zoomFactor --> double" + << "QQuickWebEngineView.profile --> QQuickWebEngineProfile*" + << "QQuickWebEngineView.settings --> QQuickWebEngineSettings*" + << "QQuickWebEngineView.navigationHistory --> QQuickWebEngineHistory*" + << "QQuickWebEngineView.webChannel --> QQmlWebChannel*" + << "QQuickWebEngineView.userScripts --> QQmlListProperty" + << "QQuickWebEngineView.activeFocusOnPress --> bool" + << "QQuickWebEngineView.backgroundColor --> QColor" + << "QQuickWebEngineView.testSupport --> QQuickWebEngineTestSupport*" << "QQuickWebEngineView.titleChanged() --> void" - << "QQuickWebEngineView.loadingChanged(QQuickWebEngineLoadRequest*) --> void" - << "QQuickWebEngineView.certificateError(QQuickWebEngineCertificateError*) --> void" - << "QQuickWebEngineView.loadProgressChanged() --> void" - << "QQuickWebEngineView.javaScriptConsoleMessage(JavaScriptConsoleMessageLevel,QString,int,QString) --> void" << "QQuickWebEngineView.urlChanged() --> void" << "QQuickWebEngineView.iconChanged() --> void" + << "QQuickWebEngineView.loadingChanged(QQuickWebEngineLoadRequest*) --> void" + << "QQuickWebEngineView.loadProgressChanged() --> void" << "QQuickWebEngineView.linkHovered(QUrl) --> void" << "QQuickWebEngineView.navigationRequested(QQuickWebEngineNavigationRequest*) --> void" + << "QQuickWebEngineView.javaScriptConsoleMessage(JavaScriptConsoleMessageLevel,QString,int,QString) --> void" + << "QQuickWebEngineView.certificateError(QQuickWebEngineCertificateError*) --> void" << "QQuickWebEngineView.fullScreenRequested(QQuickWebEngineFullScreenRequest) --> void" << "QQuickWebEngineView.isFullScreenChanged() --> void" - << "QQuickWebEngineView.fullScreenCancelled() --> void" << "QQuickWebEngineView.featurePermissionRequested(QUrl,Feature) --> void" - << "QQuickWebEngineView.grantFeaturePermission(QUrl,Feature,bool) --> void" + << "QQuickWebEngineView.newViewRequested(QQuickWebEngineNewViewRequest*) --> void" + << "QQuickWebEngineView.zoomFactorChanged(double) --> void" + << "QQuickWebEngineView.profileChanged() --> void" + << "QQuickWebEngineView.webChannelChanged() --> void" + << "QQuickWebEngineView.activeFocusOnPressChanged(bool) --> void" + << "QQuickWebEngineView.backgroundColorChanged() --> void" + << "QQuickWebEngineView.renderProcessTerminated(RenderProcessTerminationStatus,int) --> void" << "QQuickWebEngineView.runJavaScript(QString,QJSValue) --> void" << "QQuickWebEngineView.runJavaScript(QString) --> void" << "QQuickWebEngineView.loadHtml(QString,QUrl) --> void" @@ -164,37 +202,50 @@ static QStringList expectedAPI = QStringList() << "QQuickWebEngineView.goBack() --> void" << "QQuickWebEngineView.goForward() --> void" << "QQuickWebEngineView.goBackOrForward(int) --> void" - << "QQuickWebEngineView.stop() --> void" << "QQuickWebEngineView.reload() --> void" - << "QQuickWebEngineView.zoomFactor --> double" - << "QQuickWebEngineView.zoomFactorChanged(double) --> void" - << "QQuickWebEngineView.profile --> QQuickWebEngineProfile*" - << "QQuickWebEngineView.profileChanged() --> void" - << "QQuickWebEngineView.navigationHistory --> QQuickWebEngineHistory*" - << "QQuickWebEngineView.newViewRequested(QQuickWebEngineNewViewRequest*) --> void" - << "QQuickWebEngineView.userScripts --> QQmlListProperty" - << "QQuickWebEngineView.settings --> QQuickWebEngineSettings*" - << "QQuickWebEngineView.testSupport --> QQuickWebEngineTestSupport*" - << "QQuickWebEngineView.webChannel --> QQmlWebChannel*" - << "QQuickWebEngineView.webChannelChanged() --> void" << "QQuickWebEngineView.reloadAndBypassCache() --> void" + << "QQuickWebEngineView.stop() --> void" << "QQuickWebEngineView.findText(QString,FindFlags,QJSValue) --> void" << "QQuickWebEngineView.findText(QString,FindFlags) --> void" << "QQuickWebEngineView.findText(QString) --> void" - << "QQuickWebEngineDownloadItem.id --> uint" - << "QQuickWebEngineDownloadItem.state --> DownloadState" - << "QQuickWebEngineDownloadItem.path --> QString" - << "QQuickWebEngineDownloadItem.totalBytes --> qlonglong" - << "QQuickWebEngineDownloadItem.receivedBytes --> qlonglong" + << "QQuickWebEngineView.fullScreenCancelled() --> void" + << "QQuickWebEngineView.grantFeaturePermission(QUrl,Feature,bool) --> void" + << "QQuickWebEngineView.setActiveFocusOnPress(bool) --> void" + << "QQuickWebEngineView.triggerWebAction(WebAction) --> void" + << "QQuickWebEngineCertificateError.SslPinnedKeyNotInCertificateChain --> Error" + << "QQuickWebEngineCertificateError.CertificateCommonNameInvalid --> Error" + << "QQuickWebEngineCertificateError.CertificateDateInvalid --> Error" + << "QQuickWebEngineCertificateError.CertificateAuthorityInvalid --> Error" + << "QQuickWebEngineCertificateError.CertificateContainsErrors --> Error" + << "QQuickWebEngineCertificateError.CertificateNoRevocationMechanism --> Error" + << "QQuickWebEngineCertificateError.CertificateUnableToCheckRevocation --> Error" + << "QQuickWebEngineCertificateError.CertificateRevoked --> Error" + << "QQuickWebEngineCertificateError.CertificateInvalid --> Error" + << "QQuickWebEngineCertificateError.CertificateWeakSignatureAlgorithm --> Error" + << "QQuickWebEngineCertificateError.CertificateNonUniqueName --> Error" + << "QQuickWebEngineCertificateError.CertificateWeakKey --> Error" + << "QQuickWebEngineCertificateError.CertificateNameConstraintViolation --> Error" + << "QQuickWebEngineCertificateError.url --> QUrl" + << "QQuickWebEngineCertificateError.error --> Error" + << "QQuickWebEngineCertificateError.description --> QString" + << "QQuickWebEngineCertificateError.overridable --> bool" + << "QQuickWebEngineCertificateError.defer() --> void" + << "QQuickWebEngineCertificateError.ignoreCertificateError() --> void" + << "QQuickWebEngineCertificateError.rejectCertificate() --> void" << "QQuickWebEngineDownloadItem.DownloadRequested --> DownloadState" << "QQuickWebEngineDownloadItem.DownloadInProgress --> DownloadState" << "QQuickWebEngineDownloadItem.DownloadCompleted --> DownloadState" << "QQuickWebEngineDownloadItem.DownloadCancelled --> DownloadState" << "QQuickWebEngineDownloadItem.DownloadInterrupted --> DownloadState" + << "QQuickWebEngineDownloadItem.id --> uint" + << "QQuickWebEngineDownloadItem.state --> DownloadState" + << "QQuickWebEngineDownloadItem.totalBytes --> qlonglong" + << "QQuickWebEngineDownloadItem.receivedBytes --> qlonglong" + << "QQuickWebEngineDownloadItem.path --> QString" << "QQuickWebEngineDownloadItem.stateChanged() --> void" - << "QQuickWebEngineDownloadItem.pathChanged() --> void" << "QQuickWebEngineDownloadItem.receivedBytesChanged() --> void" << "QQuickWebEngineDownloadItem.totalBytesChanged() --> void" + << "QQuickWebEngineDownloadItem.pathChanged() --> void" << "QQuickWebEngineDownloadItem.accept() --> void" << "QQuickWebEngineDownloadItem.cancel() --> void" << "QQuickWebEngineHistory.items --> QQuickWebEngineHistoryListModel*" @@ -224,6 +275,7 @@ static QStringList expectedAPI = QStringList() << "QQuickWebEngineProfile.cachePath --> QString" << "QQuickWebEngineProfile.httpUserAgent --> QString" << "QQuickWebEngineProfile.httpCacheType --> HttpCacheType" + << "QQuickWebEngineProfile.httpAcceptLanguage --> QString" << "QQuickWebEngineProfile.persistentCookiesPolicy --> PersistentCookiesPolicy" << "QQuickWebEngineProfile.httpCacheMaximumSize --> int" << "QQuickWebEngineProfile.storageNameChanged() --> void" @@ -234,39 +286,10 @@ static QStringList expectedAPI = QStringList() << "QQuickWebEngineProfile.httpCacheTypeChanged() --> void" << "QQuickWebEngineProfile.persistentCookiesPolicyChanged() --> void" << "QQuickWebEngineProfile.httpCacheMaximumSizeChanged() --> void" + << "QQuickWebEngineProfile.httpAcceptLanguageChanged() --> void" << "QQuickWebEngineProfile.downloadRequested(QQuickWebEngineDownloadItem*) --> void" << "QQuickWebEngineProfile.downloadFinished(QQuickWebEngineDownloadItem*) --> void" - << "QQuickWebEngineSettings.autoLoadImages --> bool" - << "QQuickWebEngineSettings.javascriptEnabled --> bool" - << "QQuickWebEngineSettings.javascriptCanOpenWindows --> bool" - << "QQuickWebEngineSettings.javascriptCanAccessClipboard --> bool" - << "QQuickWebEngineSettings.linksIncludedInFocusChain --> bool" - << "QQuickWebEngineSettings.localStorageEnabled --> bool" - << "QQuickWebEngineSettings.localContentCanAccessRemoteUrls --> bool" - << "QQuickWebEngineSettings.spatialNavigationEnabled --> bool" - << "QQuickWebEngineSettings.localContentCanAccessFileUrls --> bool" - << "QQuickWebEngineSettings.hyperlinkAuditingEnabled --> bool" - << "QQuickWebEngineSettings.errorPageEnabled --> bool" - << "QQuickWebEngineSettings.defaultTextEncoding --> QString" - << "QQuickWebEngineSettings.autoLoadImagesChanged() --> void" - << "QQuickWebEngineSettings.javascriptEnabledChanged() --> void" - << "QQuickWebEngineSettings.javascriptCanOpenWindowsChanged() --> void" - << "QQuickWebEngineSettings.javascriptCanAccessClipboardChanged() --> void" - << "QQuickWebEngineSettings.linksIncludedInFocusChainChanged() --> void" - << "QQuickWebEngineSettings.localStorageEnabledChanged() --> void" - << "QQuickWebEngineSettings.localContentCanAccessRemoteUrlsChanged() --> void" - << "QQuickWebEngineSettings.spatialNavigationEnabledChanged() --> void" - << "QQuickWebEngineSettings.localContentCanAccessFileUrlsChanged() --> void" - << "QQuickWebEngineSettings.hyperlinkAuditingEnabledChanged() --> void" - << "QQuickWebEngineSettings.errorPageEnabledChanged() --> void" - << "QQuickWebEngineSettings.defaultTextEncodingChanged() --> void" - << "QQuickWebEngineCertificateError.ignoreCertificateError() --> void" - << "QQuickWebEngineCertificateError.rejectCertificate() --> void" - << "QQuickWebEngineCertificateError.defer() --> void" - << "QQuickWebEngineCertificateError.url --> QUrl" - << "QQuickWebEngineCertificateError.error --> Error" - << "QQuickWebEngineCertificateError.description --> QString" - << "QQuickWebEngineCertificateError.overridable --> bool" + << "QQuickWebEngineProfile.setCookieStoreClient(QWebEngineCookieStoreClient*) --> void" << "QQuickWebEngineScript.Deferred --> InjectionPoint" << "QQuickWebEngineScript.DocumentReady --> InjectionPoint" << "QQuickWebEngineScript.DocumentCreation --> InjectionPoint" @@ -292,8 +315,38 @@ static QStringList expectedAPI = QStringList() << "QQuickWebEngineScript.setWorldId(ScriptWorldId) --> void" << "QQuickWebEngineScript.setRunOnSubframes(bool) --> void" << "QQuickWebEngineScript.toString() --> QString" + << "QQuickWebEngineSettings.autoLoadImages --> bool" + << "QQuickWebEngineSettings.javascriptEnabled --> bool" + << "QQuickWebEngineSettings.javascriptCanOpenWindows --> bool" + << "QQuickWebEngineSettings.javascriptCanAccessClipboard --> bool" + << "QQuickWebEngineSettings.linksIncludedInFocusChain --> bool" + << "QQuickWebEngineSettings.localStorageEnabled --> bool" + << "QQuickWebEngineSettings.localContentCanAccessRemoteUrls --> bool" + << "QQuickWebEngineSettings.spatialNavigationEnabled --> bool" + << "QQuickWebEngineSettings.localContentCanAccessFileUrls --> bool" + << "QQuickWebEngineSettings.hyperlinkAuditingEnabled --> bool" + << "QQuickWebEngineSettings.errorPageEnabled --> bool" + << "QQuickWebEngineSettings.pluginsEnabled --> bool" + << "QQuickWebEngineSettings.fullScreenSupportEnabled --> bool" + << "QQuickWebEngineSettings.defaultTextEncoding --> QString" + << "QQuickWebEngineSettings.autoLoadImagesChanged() --> void" + << "QQuickWebEngineSettings.javascriptEnabledChanged() --> void" + << "QQuickWebEngineSettings.javascriptCanOpenWindowsChanged() --> void" + << "QQuickWebEngineSettings.javascriptCanAccessClipboardChanged() --> void" + << "QQuickWebEngineSettings.linksIncludedInFocusChainChanged() --> void" + << "QQuickWebEngineSettings.localStorageEnabledChanged() --> void" + << "QQuickWebEngineSettings.localContentCanAccessRemoteUrlsChanged() --> void" + << "QQuickWebEngineSettings.spatialNavigationEnabledChanged() --> void" + << "QQuickWebEngineSettings.localContentCanAccessFileUrlsChanged() --> void" + << "QQuickWebEngineSettings.hyperlinkAuditingEnabledChanged() --> void" + << "QQuickWebEngineSettings.errorPageEnabledChanged() --> void" + << "QQuickWebEngineSettings.pluginsEnabledChanged() --> void" + << "QQuickWebEngineSettings.fullScreenSupportEnabledChanged() --> void" + << "QQuickWebEngineSettings.defaultTextEncodingChanged() --> void" << "QQuickWebEngineFullScreenRequest.toggleOn --> bool" << "QQuickWebEngineFullScreenRequest.accept() --> void" + << "QQuickWebEngineSingleton.settings --> QQuickWebEngineSettings*" + << "QQuickWebEngineSingleton.defaultProfile --> QQuickWebEngineProfile*" ; static bool isCheckedEnum(const QByteArray &typeName) -- cgit v1.2.3 From 117d70f5c719cc6775eb5a653c887e68037b9a93 Mon Sep 17 00:00:00 2001 From: Szabolcs David Date: Mon, 28 Sep 2015 05:54:37 -0700 Subject: Remove whitespaces from custom HTTP user agents This prevents adding additional headers to the outgoing HTTP request through overridden user agent and unskips userAgentNewlineStripping API test. Change-Id: If9b3a88b0346058a7dc462471637d9777683fe82 Reviewed-by: Allan Sandfeld Jensen --- .../widgets/qwebenginepage/tst_qwebenginepage.cpp | 29 +++++++--------------- 1 file changed, 9 insertions(+), 20 deletions(-) (limited to 'tests/auto') diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index 6e3976766..9559f3cf5 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -2810,28 +2811,16 @@ void tst_QWebEnginePage::userAgentApplicationName() #endif } -class CustomUserAgentWebPage : public QWebEnginePage -{ -public: - static const QLatin1String filteredUserAgent; -protected: - virtual QString userAgentForUrl(const QUrl& url) const - { - Q_UNUSED(url); - return QString("My User Agent\nX-New-Http-Header: Oh Noes!"); - } -}; -const QLatin1String CustomUserAgentWebPage::filteredUserAgent("My User AgentX-New-Http-Header: Oh Noes!"); - void tst_QWebEnginePage::userAgentNewlineStripping() { -#if !defined(QWEBENGINEPAGE_USERAGENTFORURL) - QSKIP("QWEBENGINEPAGE_USERAGENTFORURL"); -#else - CustomUserAgentWebPage page; - page.setHtml(""); - QCOMPARE(evaluateJavaScriptSync(&page, "navigator.userAgent").toString(), CustomUserAgentWebPage::filteredUserAgent); -#endif + QWebEngineProfile profile; + QWebEnginePage page(&profile); + + profile.setHttpUserAgent(QStringLiteral("My User Agent\nX-New-Http-Header: Oh Noes!")); + // The user agent will be updated after a page load. + page.load(QUrl("about:blank")); + + QCOMPARE(evaluateJavaScriptSync(&page, "navigator.userAgent").toString(), QStringLiteral("My User Agent X-New-Http-Header: Oh Noes!")); } void tst_QWebEnginePage::crashTests_LazyInitializationOfMainFrame() -- cgit v1.2.3 From 2e9c6cd0bd6789a4f46fe0bcfbd522f0dd3eb4cb Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Fri, 9 Oct 2015 10:50:56 +0200 Subject: add RequestClose web action Web pages can set the onbeforeunload handler to let the user confirm whether to leave the page or not. Until now, only when leaving the page via a link, a confirmation was shown. Before actually closing a web page, applications can now trigger the RequestClose web action. This will give the use the chance to confirm or deny the close request. If the request is confirmed, the signal windowCloseRequested is emitted. Task-number: QTBUG-36155 Change-Id: Icc1fabc37a2ac537f674c2f00bc8966e4dc4e610 Reviewed-by: Allan Sandfeld Jensen --- .../auto/quick/qmltests/data/TestWebEngineView.qml | 7 +++++ tests/auto/quick/qmltests/data/confirmclose.html | 5 ++++ .../quick/qmltests/data/tst_javaScriptDialogs.qml | 33 ++++++++++++++++++++++ tests/auto/quick/qmltests/qmltests.pro | 1 + 4 files changed, 46 insertions(+) create mode 100644 tests/auto/quick/qmltests/data/confirmclose.html (limited to 'tests/auto') diff --git a/tests/auto/quick/qmltests/data/TestWebEngineView.qml b/tests/auto/quick/qmltests/data/TestWebEngineView.qml index 8a01dfa09..e2c5c9009 100644 --- a/tests/auto/quick/qmltests/data/TestWebEngineView.qml +++ b/tests/auto/quick/qmltests/data/TestWebEngineView.qml @@ -47,6 +47,7 @@ import QtWebEngine.experimental 1.0 WebEngineView { property var loadStatus: null property var viewportReady: false + property bool windowCloseRequestedSignalEmitted: false function waitForLoadSucceeded() { var success = _waitFor(function() { return loadStatus == WebEngineView.LoadSucceededStatus }) @@ -69,6 +70,9 @@ WebEngineView { loadStatus = null return stop } + function waitForWindowCloseRequested() { + return _waitFor(function() { return windowCloseRequestedSignalEmitted; }); + } function _waitFor(predicate) { var timeout = 5000 var i = 0 @@ -87,5 +91,8 @@ WebEngineView { viewportReady = false } + onWindowCloseRequested: { + windowCloseRequestedSignalEmitted = true; + } } diff --git a/tests/auto/quick/qmltests/data/confirmclose.html b/tests/auto/quick/qmltests/data/confirmclose.html new file mode 100644 index 000000000..ba11da7a4 --- /dev/null +++ b/tests/auto/quick/qmltests/data/confirmclose.html @@ -0,0 +1,5 @@ + + + Be greeted, precious viewer! + + diff --git a/tests/auto/quick/qmltests/data/tst_javaScriptDialogs.qml b/tests/auto/quick/qmltests/data/tst_javaScriptDialogs.qml index 75b45bfac..4294c5ba3 100644 --- a/tests/auto/quick/qmltests/data/tst_javaScriptDialogs.qml +++ b/tests/auto/quick/qmltests/data/tst_javaScriptDialogs.qml @@ -42,11 +42,26 @@ import QtQuick 2.0 import QtTest 1.0 import QtWebEngine 1.2 +import QtWebEngine.testsupport 1.0 import "../mock-delegates/TestParams" 1.0 TestWebEngineView { id: webEngineView + testSupport: WebEngineTestSupport { + property bool windowCloseRejectedSignalEmitted: false + + function waitForWindowCloseRejected() { + return _waitFor(function () { + return testSupport.windowCloseRejectedSignalEmitted; + }); + } + + onWindowCloseRejected: { + windowCloseRejectedSignalEmitted = true; + } + } + TestCase { id: test name: "WebEngineViewJavaScriptDialogs" @@ -80,6 +95,24 @@ TestWebEngineView { } + function test_confirmClose() { + webEngineView.url = Qt.resolvedUrl("confirmclose.html"); + verify(webEngineView.waitForLoadSucceeded()); + webEngineView.windowCloseRequestedSignalEmitted = false; + JSDialogParams.shouldAcceptDialog = true; + webEngineView.triggerWebAction(WebEngineView.RequestClose); + verify(webEngineView.waitForWindowCloseRequested()); + } + + function test_rejectClose() { + webEngineView.url = Qt.resolvedUrl("confirmclose.html"); + verify(webEngineView.waitForLoadSucceeded()); + webEngineView.testSupport.windowCloseRejectedSignalEmitted = false; + JSDialogParams.shouldAcceptDialog = false; + webEngineView.triggerWebAction(WebEngineView.RequestClose); + verify(webEngineView.testSupport.waitForWindowCloseRejected()); + } + function test_prompt() { JSDialogParams.inputForPrompt = "tQ olleH" webEngineView.url = Qt.resolvedUrl("prompt.html") diff --git a/tests/auto/quick/qmltests/qmltests.pro b/tests/auto/quick/qmltests/qmltests.pro index 01517af47..57649384d 100644 --- a/tests/auto/quick/qmltests/qmltests.pro +++ b/tests/auto/quick/qmltests/qmltests.pro @@ -12,6 +12,7 @@ OTHER_FILES += \ $$PWD/data/change-document-title.js \ $$PWD/data/download.zip \ $$PWD/data/confirm.html \ + $$PWD/data/confirmclose.html \ $$PWD/data/directoryupload.html \ $$PWD/data/favicon.html \ $$PWD/data/favicon.png \ -- cgit v1.2.3 From effa889ba7b7a10b3648a9ded55a5bcd4bae993a Mon Sep 17 00:00:00 2001 From: David Rosca Date: Thu, 8 Oct 2015 17:28:19 +0200 Subject: Add firstPartyUrl to QWebEngineUrlRequestInfo Add firstPartyUrl that can be used to identify third-party requests. Change-Id: I2b8e48ff0a1a4402af224c80f91d4e599a61a89c Reviewed-by: Leena Miettinen Reviewed-by: Allan Sandfeld Jensen --- .../resources/firstparty.html | 5 +++++ .../tst_qwebengineurlrequestinterceptor.cpp | 20 ++++++++++++++++++++ .../tst_qwebengineurlrequestinterceptor.qrc | 1 + 3 files changed, 26 insertions(+) create mode 100644 tests/auto/core/qwebengineurlrequestinterceptor/resources/firstparty.html (limited to 'tests/auto') diff --git a/tests/auto/core/qwebengineurlrequestinterceptor/resources/firstparty.html b/tests/auto/core/qwebengineurlrequestinterceptor/resources/firstparty.html new file mode 100644 index 000000000..8bc540c08 --- /dev/null +++ b/tests/auto/core/qwebengineurlrequestinterceptor/resources/firstparty.html @@ -0,0 +1,5 @@ + + + + + diff --git a/tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.cpp b/tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.cpp index a2f9e0c37..4891cafd0 100644 --- a/tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.cpp +++ b/tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.cpp @@ -66,6 +66,7 @@ private Q_SLOTS: void ipv6HostEncoding(); void requestedUrl(); void setUrlSameUrl(); + void firstPartyUrl(); }; tst_QWebEngineUrlRequestInterceptor::tst_QWebEngineUrlRequestInterceptor() @@ -96,6 +97,7 @@ class TestRequestInterceptor : public QWebEngineUrlRequestInterceptor { public: QList observedUrls; + QList firstPartyUrls; bool shouldIntercept; bool interceptRequest(QWebEngineUrlRequestInfo &info) override @@ -105,6 +107,7 @@ public: info.redirect(QUrl("qrc:///resources/content.html")); observedUrls.append(info.requestUrl()); + firstPartyUrls.append(info.firstPartyUrl()); return shouldIntercept; } TestRequestInterceptor(bool intercept) @@ -253,5 +256,22 @@ void tst_QWebEngineUrlRequestInterceptor::setUrlSameUrl() QCOMPARE(spy.count(), 4); } +void tst_QWebEngineUrlRequestInterceptor::firstPartyUrl() +{ + QWebEnginePage page; + TestRequestInterceptor interceptor(/* intercept */ false); + page.profile()->setRequestInterceptor(&interceptor); + + QSignalSpy spy(&page, SIGNAL(loadFinished(bool))); + + page.setUrl(QUrl("qrc:///resources/firstparty.html")); + waitForSignal(&page, SIGNAL(loadFinished(bool))); + QCOMPARE(interceptor.observedUrls.at(0), QUrl("qrc:///resources/firstparty.html")); + QCOMPARE(interceptor.observedUrls.at(1), QUrl("qrc:///resources/content.html")); + QCOMPARE(interceptor.firstPartyUrls.at(0), QUrl("qrc:///resources/firstparty.html")); + QCOMPARE(interceptor.firstPartyUrls.at(1), QUrl("qrc:///resources/firstparty.html")); + QCOMPARE(spy.count(), 1); +} + QTEST_MAIN(tst_QWebEngineUrlRequestInterceptor) #include "tst_qwebengineurlrequestinterceptor.moc" diff --git a/tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.qrc b/tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.qrc index afeae268b..ca045e7fc 100644 --- a/tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.qrc +++ b/tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.qrc @@ -2,5 +2,6 @@ resources/index.html resources/content.html + resources/firstparty.html -- cgit v1.2.3