diff options
Diffstat (limited to 'tests/auto/quick')
-rw-r--r-- | tests/auto/quick/publicapi/tst_publicapi.cpp | 72 | ||||
-rw-r--r-- | tests/auto/quick/qmltests/data/tst_datalist.qml | 14 | ||||
-rw-r--r-- | tests/auto/quick/qmltests/data/tst_geopermission.qml | 24 | ||||
-rw-r--r-- | tests/auto/quick/qmltests/data/tst_getUserMedia.qml | 31 | ||||
-rw-r--r-- | tests/auto/quick/qmltests/data/tst_notification.qml | 19 |
5 files changed, 110 insertions, 50 deletions
diff --git a/tests/auto/quick/publicapi/tst_publicapi.cpp b/tests/auto/quick/publicapi/tst_publicapi.cpp index 4d9d02bca..e6605dc41 100644 --- a/tests/auto/quick/publicapi/tst_publicapi.cpp +++ b/tests/auto/quick/publicapi/tst_publicapi.cpp @@ -26,6 +26,7 @@ #include <QtWebEngineCore/QWebEngineLoadingInfo> #include <QtWebEngineCore/QWebEngineWebAuthUxRequest> #include <QtWebEngineCore/QWebEngineFrame> +#include <QtWebEngineCore/QWebEnginePermission> #include <private/qquickwebengineview_p.h> #include <private/qquickwebengineaction_p.h> #include <private/qquickwebengineclientcertificateselection_p.h> @@ -72,6 +73,7 @@ static const QList<const QMetaObject *> typesToCheck = QList<const QMetaObject * << &QWebEngineNavigationRequest::staticMetaObject << &QWebEngineNewWindowRequest::staticMetaObject << &QWebEngineNotification::staticMetaObject + << &QWebEnginePermission::staticMetaObject << &QWebEngineQuotaRequest::staticMetaObject << &QWebEngineRegisterProtocolHandlerRequest::staticMetaObject << &QQuickWebEngineTouchSelectionMenuRequest::staticMetaObject @@ -82,6 +84,7 @@ static const QList<const QMetaObject *> typesToCheck = QList<const QMetaObject * static QList<QMetaEnum> knownEnumNames = QList<QMetaEnum>() << QWebEngineDownloadRequest::staticMetaObject.enumerator(QWebEngineDownloadRequest::staticMetaObject.indexOfEnumerator("SavePageFormat")) + << QWebEnginePermission::staticMetaObject.enumerator(QWebEnginePermission::staticMetaObject.indexOfEnumerator("Feature")) ; static const QStringList hardcodedTypes = QStringList() @@ -95,7 +98,9 @@ static const QStringList hardcodedTypes = QStringList() << "Qt::LayoutDirection" << "QQuickWebEngineScriptCollection*" << "QQmlComponent*" - << "QMultiMap<QByteArray,QByteArray>"; + << "QMultiMap<QByteArray,QByteArray>" + << "QList<QWebEnginePermission>" + ; static const QStringList expectedAPI = QStringList() << "QQuickWebEngineAction.text --> QString" @@ -134,6 +139,7 @@ static const QStringList expectedAPI = QStringList() << "QWebEngineCertificateError.defer() --> void" << "QWebEngineCertificateError.description --> QString" << "QWebEngineCertificateError.type --> QWebEngineCertificateError::Type" + << "QWebEngineCertificateError.isMainFrame --> bool" << "QWebEngineCertificateError.acceptCertificate() --> void" << "QWebEngineCertificateError.overridable --> bool" << "QWebEngineCertificateError.rejectCertificate() --> void" @@ -352,6 +358,29 @@ static const QStringList expectedAPI = QStringList() << "QWebEngineNewWindowRequest.InNewDialog --> DestinationType" << "QWebEngineNewWindowRequest.InNewTab --> DestinationType" << "QWebEngineNewWindowRequest.InNewWindow --> DestinationType" + << "QWebEnginePermission.Unsupported --> Feature" + << "QWebEnginePermission.MediaAudioCapture --> Feature" + << "QWebEnginePermission.MediaVideoCapture --> Feature" + << "QWebEnginePermission.MediaAudioVideoCapture --> Feature" + << "QWebEnginePermission.DesktopVideoCapture --> Feature" + << "QWebEnginePermission.DesktopAudioVideoCapture --> Feature" + << "QWebEnginePermission.MouseLock --> Feature" + << "QWebEnginePermission.Notifications --> Feature" + << "QWebEnginePermission.Geolocation --> Feature" + << "QWebEnginePermission.ClipboardReadWrite --> Feature" + << "QWebEnginePermission.LocalFontsAccess --> Feature" + << "QWebEnginePermission.Invalid --> State" + << "QWebEnginePermission.Ask --> State" + << "QWebEnginePermission.Granted --> State" + << "QWebEnginePermission.Denied --> State" + << "QWebEnginePermission.origin --> QUrl" + << "QWebEnginePermission.feature --> QWebEnginePermission::Feature" + << "QWebEnginePermission.state --> QWebEnginePermission::State" + << "QWebEnginePermission.isValid --> bool" + << "QWebEnginePermission.grant() --> void" + << "QWebEnginePermission.deny() --> void" + << "QWebEnginePermission.reset() --> void" + << "QWebEnginePermission.isTransient(QWebEnginePermission::Feature) --> bool" << "QQuickWebEngineNewWindowRequest.openIn(QQuickWebEngineView*) --> void" << "QQuickWebEngineProfile.AllowPersistentCookies --> PersistentCookiesPolicy" << "QQuickWebEngineProfile.DiskHttpCache --> HttpCacheType" @@ -359,6 +388,9 @@ static const QStringList expectedAPI = QStringList() << "QQuickWebEngineProfile.MemoryHttpCache --> HttpCacheType" << "QQuickWebEngineProfile.NoCache --> HttpCacheType" << "QQuickWebEngineProfile.NoPersistentCookies --> PersistentCookiesPolicy" + << "QQuickWebEngineProfile.NoPersistentPermissions --> PersistentPermissionsPolicy" + << "QQuickWebEngineProfile.PersistentPermissionsInMemory --> PersistentPermissionsPolicy" + << "QQuickWebEngineProfile.PersistentPermissionsOnDisk --> PersistentPermissionsPolicy" << "QQuickWebEngineProfile.cachePath --> QString" << "QQuickWebEngineProfile.cachePathChanged() --> void" << "QQuickWebEngineProfile.clearHttpCache() --> void" @@ -367,6 +399,12 @@ static const QStringList expectedAPI = QStringList() << "QQuickWebEngineProfile.downloadRequested(QQuickWebEngineDownloadRequest*) --> void" << "QQuickWebEngineProfile.downloadPath --> QString" << "QQuickWebEngineProfile.downloadPathChanged() --> void" + << "QQuickWebEngineProfile.getPermission(QUrl,QWebEnginePermission::Feature) --> QWebEnginePermission" + << "QQuickWebEngineProfile.listPermissions() --> QList<QWebEnginePermission>" + << "QQuickWebEngineProfile.listPermissions(QUrl) --> QList<QWebEnginePermission>" + << "QQuickWebEngineProfile.listPermissions(QWebEnginePermission::Feature) --> QList<QWebEnginePermission>" + << "QQuickWebEngineProfile.persistentPermissionsPolicy --> QQuickWebEngineProfile::PersistentPermissionsPolicy" + << "QQuickWebEngineProfile.persistentPermissionsPolicyChanged() --> void" << "QQuickWebEngineProfile.presentNotification(QWebEngineNotification*) --> void" << "QQuickWebEngineProfile.httpAcceptLanguage --> QString" << "QQuickWebEngineProfile.httpAcceptLanguageChanged() --> void" @@ -531,10 +569,20 @@ static const QStringList expectedAPI = QStringList() << "QQuickWebEngineView.B10 --> PrintedPageSizeId" << "QQuickWebEngineView.Back --> WebAction" << "QQuickWebEngineView.C5E --> PrintedPageSizeId" +#if QT_DEPRECATED_SINCE(6, 8) + << "QQuickWebEngineView.ClipboardReadWrite --> Feature" + << "QQuickWebEngineView.DesktopAudioVideoCapture --> Feature" + << "QQuickWebEngineView.DesktopVideoCapture --> Feature" + << "QQuickWebEngineView.Geolocation --> Feature" + << "QQuickWebEngineView.LocalFontsAccess --> Feature" + << "QQuickWebEngineView.MediaAudioCapture --> Feature" + << "QQuickWebEngineView.MediaAudioVideoCapture --> Feature" + << "QQuickWebEngineView.MediaVideoCapture --> Feature" + << "QQuickWebEngineView.Notifications --> Feature" +#endif << "QQuickWebEngineView.CertificateErrorDomain --> ErrorDomain" << "QQuickWebEngineView.ChangeTextDirectionLTR --> WebAction" << "QQuickWebEngineView.ChangeTextDirectionRTL --> WebAction" - << "QQuickWebEngineView.ClipboardReadWrite --> Feature" << "QQuickWebEngineView.Comm10E --> PrintedPageSizeId" << "QQuickWebEngineView.ConnectionErrorDomain --> ErrorDomain" << "QQuickWebEngineView.Copy --> WebAction" @@ -546,8 +594,6 @@ static const QStringList expectedAPI = QStringList() << "QQuickWebEngineView.Custom --> PrintedPageSizeId" << "QQuickWebEngineView.Cut --> WebAction" << "QQuickWebEngineView.DLE --> PrintedPageSizeId" - << "QQuickWebEngineView.DesktopAudioVideoCapture --> Feature" - << "QQuickWebEngineView.DesktopVideoCapture --> Feature" << "QQuickWebEngineView.DnsErrorDomain --> ErrorDomain" << "QQuickWebEngineView.DoublePostcard --> PrintedPageSizeId" << "QQuickWebEngineView.DownloadImageToDisk --> WebAction" @@ -602,7 +648,6 @@ static const QStringList expectedAPI = QStringList() << "QQuickWebEngineView.Folio --> PrintedPageSizeId" << "QQuickWebEngineView.Forward --> WebAction" << "QQuickWebEngineView.FtpErrorDomain --> ErrorDomain" - << "QQuickWebEngineView.Geolocation --> Feature" << "QQuickWebEngineView.HttpErrorDomain --> ErrorDomain" << "QQuickWebEngineView.Imperial10x11 --> PrintedPageSizeId" << "QQuickWebEngineView.Imperial10x13 --> PrintedPageSizeId" @@ -647,12 +692,7 @@ static const QStringList expectedAPI = QStringList() << "QQuickWebEngineView.LoadStartedStatus --> LoadStatus" << "QQuickWebEngineView.LoadStoppedStatus --> LoadStatus" << "QQuickWebEngineView.LoadSucceededStatus --> LoadStatus" - << "QQuickWebEngineView.LocalFontsAccess --> Feature" - << "QQuickWebEngineView.MediaAudioCapture --> Feature" - << "QQuickWebEngineView.MediaAudioVideoCapture --> Feature" - << "QQuickWebEngineView.MediaVideoCapture --> Feature" << "QQuickWebEngineView.NoErrorDomain --> ErrorDomain" - << "QQuickWebEngineView.Notifications --> Feature" << "QQuickWebEngineView.NoWebAction --> WebAction" << "QQuickWebEngineView.NormalTerminationStatus --> RenderProcessTerminationStatus" << "QQuickWebEngineView.Note --> PrintedPageSizeId" @@ -728,7 +768,9 @@ static const QStringList expectedAPI = QStringList() << "QQuickWebEngineView.goBack() --> void" << "QQuickWebEngineView.goBackOrForward(int) --> void" << "QQuickWebEngineView.goForward() --> void" +#if QT_DEPRECATED_SINCE(6, 8) << "QQuickWebEngineView.grantFeaturePermission(QUrl,QQuickWebEngineView::Feature,bool) --> void" +#endif << "QQuickWebEngineView.history --> QWebEngineHistory*" << "QQuickWebEngineView.icon --> QUrl" << "QQuickWebEngineView.iconChanged() --> void" @@ -763,8 +805,10 @@ static const QStringList expectedAPI = QStringList() << "QQuickWebEngineView.NewViewInDialog --> NewViewDestination" << "QQuickWebEngineView.NewViewInTab --> NewViewDestination" << "QQuickWebEngineView.NewViewInWindow --> NewViewDestination" + << "QQuickWebEngineView.permissionRequested(QWebEnginePermission) --> void" << "QQuickWebEngineView.pdfPrintingFinished(QString,bool) --> void" << "QQuickWebEngineView.printRequested() --> void" + << "QQuickWebEngineView.printRequestedByFrame(QWebEngineFrame) --> void" << "QQuickWebEngineView.printToPdf(QJSValue) --> void" << "QQuickWebEngineView.printToPdf(QJSValue,PrintedPageSizeId) --> void" << "QQuickWebEngineView.printToPdf(QJSValue,PrintedPageSizeId,PrintedPageOrientation) --> void" @@ -885,8 +929,15 @@ static const QStringList expectedAPI = QStringList() << "QQuickWebEngineSettings.imageAnimationPolicy --> QQuickWebEngineSettings::ImageAnimationPolicy" << "QQuickWebEngineSettings.imageAnimationPolicyChanged() --> void" << "QWebEngineFrame.htmlName --> QString" + << "QWebEngineFrame.isMainFrame --> bool" << "QWebEngineFrame.isValid --> bool" << "QWebEngineFrame.name --> QString" + << "QWebEngineFrame.printToPdf(QJSValue) --> void" + << "QWebEngineFrame.printToPdf(QString) --> void" + << "QWebEngineFrame.runJavaScript(QString) --> void" + << "QWebEngineFrame.runJavaScript(QString,uint) --> void" + << "QWebEngineFrame.runJavaScript(QString,QJSValue) --> void" + << "QWebEngineFrame.runJavaScript(QString,uint,QJSValue) --> void" << "QWebEngineFrame.size --> QSizeF" << "QWebEngineFrame.url --> QUrl" ; @@ -1007,4 +1058,3 @@ void tst_publicapi::publicAPI() QTEST_MAIN(tst_publicapi) #include "tst_publicapi.moc" - diff --git a/tests/auto/quick/qmltests/data/tst_datalist.qml b/tests/auto/quick/qmltests/data/tst_datalist.qml index f739639b2..1e5a7ad6b 100644 --- a/tests/auto/quick/qmltests/data/tst_datalist.qml +++ b/tests/auto/quick/qmltests/data/tst_datalist.qml @@ -105,10 +105,13 @@ TestWebEngineView { keyClick(Qt.Key_Escape); tryVerify(function() { return listView() == null; }); - // Key Down should open the popup and select the first suggestion. + // The first Key Down opens the popup. keyClick(Qt.Key_Down); tryVerify(function() { return listView() != null; }); - compare(listView().currentIndex, 0); + + // The second Key Down selects the first suggestion. + keyClick(Qt.Key_Down); + tryCompare(listView(), "currentIndex", 0); verify(listView().currentItem); } @@ -120,10 +123,13 @@ TestWebEngineView { // Make sure there is no open popup yet. verify(!listView()); - // Key Down should open the popup and select the first suggestion. + // The first Key Down opens the popup. keyClick(Qt.Key_Down); tryVerify(function() { return listView() != null; }); - compare(listView().currentIndex, 0); + + // The second Key Down selects the first suggestion. + keyClick(Qt.Key_Down); + tryCompare(listView(), "currentIndex", 0); // Test keyboard navigation in list. keyClick(Qt.Key_Up); diff --git a/tests/auto/quick/qmltests/data/tst_geopermission.qml b/tests/auto/quick/qmltests/data/tst_geopermission.qml index b99e50acc..e425a82c7 100644 --- a/tests/auto/quick/qmltests/data/tst_geopermission.qml +++ b/tests/auto/quick/qmltests/data/tst_geopermission.qml @@ -13,20 +13,22 @@ TestWebEngineView { property bool deniedGeolocation: false property bool geoPermissionRequested: false + profile.persistentPermissionsPolicy: WebEngineProfile.NoPersistentPermissions + SignalSpy { - id: featurePermissionSpy + id: permissionSpy target: webEngineView - signalName: "featurePermissionRequested" + signalName: "permissionRequested" } - onFeaturePermissionRequested: function(securityOrigin, feature) { - if (feature === WebEngineView.Geolocation) { + onPermissionRequested: function(perm) { + if (perm.feature === WebEnginePermission.Geolocation) { geoPermissionRequested = true if (deniedGeolocation) { - webEngineView.grantFeaturePermission(securityOrigin, feature, false) + perm.deny() } else { - webEngineView.grantFeaturePermission(securityOrigin, feature, true) + perm.grant() } } } @@ -55,15 +57,15 @@ TestWebEngineView { function init() { deniedGeolocation = false - featurePermissionSpy.clear() + permissionSpy.clear() } function test_geoPermissionRequest() { - compare(featurePermissionSpy.count, 0) + compare(permissionSpy.count, 0) webEngineView.url = Qt.resolvedUrl("geolocation.html") - featurePermissionSpy.wait() + permissionSpy.wait() verify(geoPermissionRequested) - compare(featurePermissionSpy.count, 1) + compare(permissionSpy.count, 1) tryVerify(isHandled, 5000) verify(getErrorMessage() === "") } @@ -71,7 +73,7 @@ TestWebEngineView { function test_deniedGeolocationByUser() { deniedGeolocation = true webEngineView.url = Qt.resolvedUrl("geolocation.html") - featurePermissionSpy.wait() + permissionSpy.wait() tryVerify(isHandled, 5000) compare(getErrorMessage(), "User denied Geolocation") } diff --git a/tests/auto/quick/qmltests/data/tst_getUserMedia.qml b/tests/auto/quick/qmltests/data/tst_getUserMedia.qml index 3b33b7abe..9a876778b 100644 --- a/tests/auto/quick/qmltests/data/tst_getUserMedia.qml +++ b/tests/auto/quick/qmltests/data/tst_getUserMedia.qml @@ -11,6 +11,7 @@ TestWebEngineView { height: 400 settings.screenCaptureEnabled: true + profile.persistentPermissionsPolicy: WebEngineProfile.NoPersistentPermissions TestCase { name: "GetUserMedia" @@ -21,17 +22,17 @@ TestWebEngineView { { tag: "device audio", constraints: { audio: true }, - feature: WebEngineView.MediaAudioCapture, + feature: WebEnginePermission.MediaAudioCapture, }, { tag: "device video", constraints: { video: true }, - feature: WebEngineView.MediaVideoCapture, + feature: WebEnginePermission.MediaVideoCapture, }, { tag: "device audio+video", constraints: { audio: true, video: true }, - feature: WebEngineView.MediaAudioVideoCapture, + feature: WebEnginePermission.MediaAudioVideoCapture, }, { tag: "desktop video", @@ -42,7 +43,7 @@ TestWebEngineView { } } }, - feature: WebEngineView.DesktopVideoCapture, + feature: WebEnginePermission.DesktopVideoCapture, }, { tag: "desktop audio+video", @@ -58,7 +59,7 @@ TestWebEngineView { } } }, - feature: WebEngineView.DesktopAudioVideoCapture, + feature: WebEnginePermission.DesktopAudioVideoCapture, } ] } @@ -115,28 +116,24 @@ TestWebEngineView { //// // synchronous permission requests - property variant requestedFeature - property variant requestedSecurityOrigin + property variant permissionObject - onFeaturePermissionRequested: function(securityOrigin, feature) { - requestedFeature = feature - requestedSecurityOrigin = securityOrigin + onPermissionRequested: function(perm) { + permissionObject = perm } function gotFeatureRequest(expectedFeature) { - return requestedFeature == expectedFeature + return permissionObject && permissionObject.feature == expectedFeature } function acceptPendingRequest() { - webEngineView.grantFeaturePermission(requestedSecurityOrigin, requestedFeature, true) - requestedFeature = undefined - requestedSecurityOrigin = undefined + permissionObject.grant() + permissionObject = undefined } function rejectPendingRequest() { - webEngineView.grantFeaturePermission(requestedSecurityOrigin, requestedFeature, false) - requestedFeature = undefined - requestedSecurityOrigin = undefined + permissionObject.deny() + permissionObject = undefined } //// diff --git a/tests/auto/quick/qmltests/data/tst_notification.qml b/tests/auto/quick/qmltests/data/tst_notification.qml index 5d55e1201..5defbff4b 100644 --- a/tests/auto/quick/qmltests/data/tst_notification.qml +++ b/tests/auto/quick/qmltests/data/tst_notification.qml @@ -13,21 +13,26 @@ TestWebEngineView { property bool permissionRequested: false property bool grantPermission: false - property url securityOrigin: '' + property var permissionObject + + profile.persistentPermissionsPolicy: WebEngineProfile.NoPersistentPermissions signal consoleMessage(string message) SignalSpy { id: spyRequest target: view - signalName: 'featurePermissionRequested' + signalName: 'permissionRequested' } - onFeaturePermissionRequested: function(securityOrigin, feature) { - if (feature === WebEngineView.Notifications) { + onPermissionRequested: function(perm) { + if (perm.feature === WebEnginePermission.Notifications) { view.permissionRequested = true - view.securityOrigin = securityOrigin - view.grantFeaturePermission(securityOrigin, feature, grantPermission) + view.permissionObject = perm + if (grantPermission) + perm.grant() + else + perm.deny() } } @@ -91,7 +96,7 @@ TestWebEngineView { compare(notification.title, title) compare(notification.message, message) compare(notification.direction, Qt.RightToLeft) - compare(notification.origin, securityOrigin) + compare(notification.origin, permissionObject.origin) compare(notification.tag, 'tst') compare(notification.language, 'de') } |