summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirill Burtsev <kirill.burtsev@qt.io>2022-01-20 19:14:02 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2022-02-18 05:03:44 +0000
commit6db08da7356ee81c97004f0752af5b02a0bd7685 (patch)
tree512c682943448952e5ffd3056cd63e863268c2a6
parent7086f32dc41f72c925fbd7d3b1c5c42c9ca0e424 (diff)
downloadqtwebengine-6db08da7356ee81c97004f0752af5b02a0bd7685.tar.gz
Add QML test for basic profiles and fix the docs accordingly
Amends d0ff107c00. Ensure default values for profile settings match the docs. Also fix doc's issues after off-the-record toggle to off by default. Change-Id: I558a77dbec82d7f2b335b1a2ceca74ab66a1a6e9 Reviewed-by: Michal Klocek <michal.klocek@qt.io> (cherry picked from commit f34292d147bfde094d8ec4a58f7b0e5f77a1fd0b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/webenginequick/api/qquickwebengineprofile.cpp21
-rw-r--r--tests/auto/quick/qmltests/CMakeLists.txt1
-rw-r--r--tests/auto/quick/qmltests/data/tst_basicProfiles.qml115
3 files changed, 127 insertions, 10 deletions
diff --git a/src/webenginequick/api/qquickwebengineprofile.cpp b/src/webenginequick/api/qquickwebengineprofile.cpp
index f052d201c..c7421774b 100644
--- a/src/webenginequick/api/qquickwebengineprofile.cpp
+++ b/src/webenginequick/api/qquickwebengineprofile.cpp
@@ -447,7 +447,7 @@ void QQuickWebEngineProfile::setStorageName(const QString &name)
Whether the web engine profile is \e off-the-record.
An off-the-record profile forces cookies, the HTTP cache, and other normally persistent data
- to be stored only in memory.
+ to be stored only in memory. Profile is off-the-record by default.
*/
@@ -456,7 +456,7 @@ void QQuickWebEngineProfile::setStorageName(const QString &name)
Whether the web engine profile is \e off-the-record.
An off-the-record profile forces cookies, the HTTP cache, and other normally persistent data
- to be stored only in memory.
+ to be stored only in memory. Profile is off-the-record by default.
*/
bool QQuickWebEngineProfile::isOffTheRecord() const
@@ -487,7 +487,7 @@ void QQuickWebEngineProfile::setOffTheRecord(bool offTheRecord)
stored. Persistent data includes persistent cookies, HTML5 local storage, and visited links.
By default, the storage is located below
- QStandardPaths::writableLocation(QStandardPaths::DataLocation) in a directory named using
+ QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) in a directory named using
storageName.
*/
@@ -498,7 +498,7 @@ void QQuickWebEngineProfile::setOffTheRecord(bool offTheRecord)
stored. Persistent data includes persistent cookies, HTML5 local storage, and visited links.
By default, the storage is located below
- QStandardPaths::writableLocation(QStandardPaths::DataLocation) in a directory named using
+ QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) in a directory named using
storageName.
*/
@@ -591,9 +591,9 @@ void QQuickWebEngineProfile::setHttpUserAgent(const QString &userAgent)
\value WebEngineProfile.MemoryHttpCache
Uses an in-memory cache. This is the only setting possible if offTheRecord is set or
- no persistentStoragePath is available.
+ no storageName is available, which is the default.
\value WebEngineProfile.DiskHttpCache
- Uses a disk cache. This is the default value.
+ Uses a disk cache. This is the default value for non off-the-record profile with storageName.
\value WebEngineProfile.NoCache
Disables caching. (Added in 5.7)
*/
@@ -603,7 +603,7 @@ void QQuickWebEngineProfile::setHttpUserAgent(const QString &userAgent)
This enumeration describes the type of the HTTP cache.
- If the profile is off-the-record, MemoryHttpCache is returned.
+ If the profile is off-the-record or has no storageName set, MemoryHttpCache is returned.
*/
QQuickWebEngineProfile::HttpCacheType QQuickWebEngineProfile::httpCacheType() const
@@ -628,10 +628,11 @@ void QQuickWebEngineProfile::setHttpCacheType(QQuickWebEngineProfile::HttpCacheT
\value WebEngineProfile.NoPersistentCookies
Both session and persistent cookies are stored in memory. This is the only setting
- possible if offTheRecord is set or no persistentStoragePath is available.
+ possible if offTheRecord is set or no storageName is available, which is the default.
\value WebEngineProfile.AllowPersistentCookies
Cookies marked persistent are saved to and restored from disk, whereas session cookies
- are only stored to disk for crash recovery. This is the default setting.
+ are only stored to disk for crash recovery.
+ This is the default value for non off-the-record profile with storageName.
\value WebEngineProfile.ForcePersistentCookies
Both session and persistent cookies are saved to and restored from disk.
*/
@@ -723,7 +724,7 @@ void QQuickWebEngineProfile::setHttpAcceptLanguage(const QString &httpAcceptLang
/*!
Returns the default profile.
- The default profile uses the storage name "Default".
+ The default profile is off-the-record.
\sa storageName()
*/
diff --git a/tests/auto/quick/qmltests/CMakeLists.txt b/tests/auto/quick/qmltests/CMakeLists.txt
index 455c4c746..2500ed6df 100644
--- a/tests/auto/quick/qmltests/CMakeLists.txt
+++ b/tests/auto/quick/qmltests/CMakeLists.txt
@@ -18,6 +18,7 @@ set(testList
tst_activeFocusOnPress.qml
tst_audioMuted.qml
tst_contextMenu.qml
+ tst_basicProfiles.qml
tst_desktopBehaviorLoadHtml.qml
tst_download.qml
tst_favicon.qml
diff --git a/tests/auto/quick/qmltests/data/tst_basicProfiles.qml b/tests/auto/quick/qmltests/data/tst_basicProfiles.qml
new file mode 100644
index 000000000..a84e4e997
--- /dev/null
+++ b/tests/auto/quick/qmltests/data/tst_basicProfiles.qml
@@ -0,0 +1,115 @@
+/****************************************************************************
+**
+** Copyright (C) 2022 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QtWebEngine module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+import QtQuick
+import QtTest
+import QtWebEngine
+import Qt.labs.platform
+
+Item {
+ WebEngineProfile { id: otrProfile; /* MEMO implicit offTheRecord: true */ }
+ WebEngineProfile { id: nonOtrProfile; offTheRecord: false }
+
+ function getPath(path, offset = 1) { return path.substr(path.indexOf(':') + offset, path.length) }
+ property string appDataLocation: getPath(getPath(StandardPaths.writableLocation(StandardPaths.AppDataLocation).toString(), 3))
+ property string cacheLocation: getPath(getPath(StandardPaths.writableLocation(StandardPaths.CacheLocation).toString(), 3))
+ property string downloadLocation: getPath(getPath(StandardPaths.writableLocation(StandardPaths.DownloadLocation).toString(), 3))
+
+ TestCase {
+ name: "BasicProfiles"
+
+ function test_defaultProfile() {
+ let p = WebEngine.defaultProfile
+ verify(p.offTheRecord)
+
+ compare(p.storageName, '')
+ compare(p.cachePath, '')
+ compare(getPath(p.persistentStoragePath), appDataLocation + '/QtWebEngine/OffTheRecord')
+ compare(p.httpCacheType, WebEngineProfile.MemoryHttpCache)
+ compare(p.httpCacheMaximumSize, 0)
+ compare(p.persistentCookiesPolicy, WebEngineProfile.NoPersistentCookies)
+
+ compare(getPath(p.downloadPath), downloadLocation)
+ compare(p.httpAcceptLanguage, '')
+ verify(p.httpUserAgent !== '')
+ compare(p.spellCheckEnabled, false)
+ compare(p.spellCheckLanguages, [])
+
+ compare(p.userScripts.collection, [])
+ }
+
+ function test_otrProfile() {
+ let p = otrProfile
+ verify(p.offTheRecord)
+
+ compare(p.storageName, '')
+ compare(p.cachePath, '')
+ compare(getPath(p.persistentStoragePath), appDataLocation + '/QtWebEngine/OffTheRecord')
+ compare(p.httpCacheType, WebEngineProfile.MemoryHttpCache)
+ compare(p.httpCacheMaximumSize, 0)
+ compare(p.persistentCookiesPolicy, WebEngineProfile.NoPersistentCookies)
+
+ compare(getPath(p.downloadPath), downloadLocation)
+ compare(p.httpAcceptLanguage, '')
+ verify(p.httpUserAgent !== '')
+ compare(p.spellCheckEnabled, false)
+ compare(p.spellCheckLanguages, [])
+
+ compare(p.userScripts.collection, [])
+ }
+
+ function test_nonOtrProfile() {
+ let p = nonOtrProfile
+ verify(!p.offTheRecord)
+
+ compare(p.storageName, '')
+ compare(p.cachePath, '')
+ compare(getPath(p.persistentStoragePath), appDataLocation + '/QtWebEngine/UnknownProfile')
+ compare(p.httpCacheType, WebEngineProfile.MemoryHttpCache)
+ compare(p.httpCacheMaximumSize, 0)
+ compare(p.persistentCookiesPolicy, WebEngineProfile.NoPersistentCookies)
+
+ compare(getPath(p.downloadPath), downloadLocation)
+ compare(p.httpAcceptLanguage, '')
+ verify(p.httpUserAgent !== '')
+ compare(p.spellCheckEnabled, false)
+ compare(p.spellCheckLanguages, [])
+
+ compare(p.userScripts.collection, [])
+
+ p.storageName = 'Test'
+ compare(p.storageName, 'Test')
+ compare(getPath(p.cachePath), cacheLocation + '/QtWebEngine/' + p.storageName)
+ compare(getPath(p.persistentStoragePath), appDataLocation + '/QtWebEngine/' + p.storageName)
+
+ compare(p.httpCacheType, WebEngineProfile.DiskHttpCache)
+ compare(p.httpCacheMaximumSize, 0)
+ compare(p.persistentCookiesPolicy, WebEngineProfile.AllowPersistentCookies)
+ }
+ }
+}