diff options
Diffstat (limited to 'tests/auto/quick')
-rw-r--r-- | tests/auto/quick/publicapi/tst_publicapi.cpp | 211 | ||||
-rw-r--r-- | tests/auto/quick/qmltests/data/TestWebEngineView.qml | 7 | ||||
-rw-r--r-- | tests/auto/quick/qmltests/data/confirmclose.html | 5 | ||||
-rw-r--r-- | tests/auto/quick/qmltests/data/tst_javaScriptDialogs.qml | 33 | ||||
-rw-r--r-- | tests/auto/quick/qmltests/qmltests.pro | 1 |
5 files changed, 178 insertions, 79 deletions
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 <private/qquickwebengineprofile_p.h> #include <private/qquickwebenginescript_p.h> #include <private/qquickwebenginesettings_p.h> +#include <private/qquickwebenginesingleton_p.h> class tst_publicapi : public QObject { Q_OBJECT @@ -76,6 +77,7 @@ static QList<const QMetaObject *> typesToCheck = QList<const QMetaObject *>() << &QQuickWebEngineScript::staticMetaObject << &QQuickWebEngineSettings::staticMetaObject << &QQuickWebEngineFullScreenRequest::staticMetaObject + << &QQuickWebEngineSingleton::staticMetaObject ; static QList<const char *> knownEnumNames = QList<const char *>(); @@ -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<QQuickWebEngineScript>" + << "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<QQuickWebEngineScript>" - << "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) 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 @@ +<html> +<body onbeforeunload="return 'You are about to miss out on some awesome content.';"> + Be greeted, precious viewer! +</body> +</html> 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 \ |