summaryrefslogtreecommitdiffstats
path: root/tests/auto/quick
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/quick')
-rw-r--r--tests/auto/quick/publicapi/tst_publicapi.cpp72
-rw-r--r--tests/auto/quick/qmltests/data/tst_datalist.qml14
-rw-r--r--tests/auto/quick/qmltests/data/tst_geopermission.qml24
-rw-r--r--tests/auto/quick/qmltests/data/tst_getUserMedia.qml31
-rw-r--r--tests/auto/quick/qmltests/data/tst_notification.qml19
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')
}