summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/quick/qmltests/data/tst_loadFail.qml92
-rw-r--r--tests/auto/quick/qmltests/qmltests.pro19
2 files changed, 99 insertions, 12 deletions
diff --git a/tests/auto/quick/qmltests/data/tst_loadFail.qml b/tests/auto/quick/qmltests/data/tst_loadFail.qml
index e88d82903..7b5bbe2e2 100644
--- a/tests/auto/quick/qmltests/data/tst_loadFail.qml
+++ b/tests/auto/quick/qmltests/data/tst_loadFail.qml
@@ -43,36 +43,69 @@ import QtQuick 2.0
import QtTest 1.0
import QtWebEngine 1.1
import QtWebEngine.experimental 1.0
+import QtWebEngine.testsupport 1.0
TestWebEngineView {
id: webEngineView
width: 400
height: 300
- property variant unavailableUrl
+ property var unavailableUrl: Qt.resolvedUrl("file_that_does_not_exist.html")
+ property var loadRequestArray: []
+
+ testSupport: WebEngineTestSupport {
+ property var errorPageLoadStatus: null
+
+ function waitForErrorPageLoadSucceeded() {
+ var success = _waitFor(function() { return testSupport.errorPageLoadStatus == WebEngineView.LoadSucceededStatus })
+ testSupport.errorPageLoadStatus = null
+ return success
+ }
+
+ errorPage.onLoadingChanged: {
+ errorPageLoadStatus = loadRequest.status
+
+ loadRequestArray.push({
+ "status": loadRequest.status,
+ "url": loadRequest.url.toString(),
+ "errorDomain": loadRequest.errorDomain,
+ "isErrorPage": true
+ })
+ }
+ }
+
+ onLoadingChanged: {
+ if (loadRequest.status == WebEngineView.LoadFailedStatus) {
+ test.compare(loadRequest.url, unavailableUrl)
+ test.compare(loadRequest.errorDomain, WebEngineView.InternalErrorDomain)
+ }
+
+ loadRequestArray.push({
+ "status": loadRequest.status,
+ "url": loadRequest.url.toString(),
+ "errorDomain": loadRequest.errorDomain,
+ "isErrorPage": false
+ })
+ }
TestCase {
id: test
name: "WebEngineViewLoadFail"
- function initTestCase() {
- WebEngine.settings.errorPageEnabled = false
- }
-
function test_fail() {
- unavailableUrl = Qt.resolvedUrl("file_that_does_not_exist.html")
+ WebEngine.settings.errorPageEnabled = false
webEngineView.url = unavailableUrl
verify(webEngineView.waitForLoadFailed())
}
function test_fail_url() {
+ WebEngine.settings.errorPageEnabled = false
var url = Qt.resolvedUrl("test1.html")
webEngineView.url = url
compare(webEngineView.url, url)
verify(webEngineView.waitForLoadSucceeded())
compare(webEngineView.url, url)
- unavailableUrl = Qt.resolvedUrl("file_that_does_not_exist.html")
webEngineView.url = unavailableUrl
compare(webEngineView.url, unavailableUrl)
verify(webEngineView.waitForLoadFailed())
@@ -80,12 +113,47 @@ TestWebEngineView {
// We expect the url of the previously loaded page here.
compare(webEngineView.url, url)
}
- }
- onLoadingChanged: {
- if (loadRequest.status == WebEngineView.LoadFailedStatus) {
- test.compare(loadRequest.url, unavailableUrl)
- test.compare(loadRequest.errorDomain, WebEngineView.InternalErrorDomain)
+ function test_error_page() {
+ WebEngine.settings.errorPageEnabled = true
+ webEngineView.url = unavailableUrl
+
+ // Loading of the error page must be successful
+ verify(webEngineView.testSupport.waitForErrorPageLoadSucceeded())
+
+ var loadRequest = null
+ compare(loadRequestArray.length, 4)
+
+ // Start to load unavailableUrl
+ loadRequest = loadRequestArray[0]
+ compare(loadRequest.status, WebEngineView.LoadStartedStatus)
+ compare(loadRequest.errorDomain, WebEngineView.NoErrorDomain)
+ compare(loadRequest.url, unavailableUrl)
+ verify(!loadRequest.isErrorPage)
+
+ // Loading of the unavailableUrl must fail
+ loadRequest = loadRequestArray[1]
+ compare(loadRequest.status, WebEngineView.LoadFailedStatus)
+ compare(loadRequest.errorDomain, WebEngineView.InternalErrorDomain)
+ compare(loadRequest.url, unavailableUrl)
+ verify(!loadRequest.isErrorPage)
+
+ // Start to load error page
+ loadRequest = loadRequestArray[2]
+ compare(loadRequest.status, WebEngineView.LoadStartedStatus)
+ compare(loadRequest.errorDomain, WebEngineView.NoErrorDomain)
+ compare(loadRequest.url, "data:text/html,chromewebdata")
+ verify(loadRequest.isErrorPage)
+
+ // Loading of the error page must be successful
+ loadRequest = loadRequestArray[3]
+ compare(loadRequest.status, WebEngineView.LoadSucceededStatus)
+ compare(loadRequest.errorDomain, WebEngineView.NoErrorDomain)
+ compare(loadRequest.url, "data:text/html,chromewebdata")
+ verify(loadRequest.isErrorPage)
+
+ compare(webEngineView.url, unavailableUrl)
+ compare(webEngineView.title, unavailableUrl + " is not found")
}
}
}
diff --git a/tests/auto/quick/qmltests/qmltests.pro b/tests/auto/quick/qmltests/qmltests.pro
index 6789b714b..b71f1beb6 100644
--- a/tests/auto/quick/qmltests/qmltests.pro
+++ b/tests/auto/quick/qmltests/qmltests.pro
@@ -37,3 +37,22 @@ OTHER_FILES += \
load(qt_build_paths)
DEFINES += QUICK_TEST_SOURCE_DIR=\"\\\"$$PWD$${QMAKE_DIR_SEP}data\\\"\"
+
+!isQMLTestSupportApiEnabled() {
+ PLUGIN_EXTENSION = .so
+ PLUGIN_PREFIX = lib
+ osx: PLUGIN_PREFIX = .dylib
+ win32 {
+ PLUGIN_EXTENSION = .dll
+ PLUGIN_PREFIX =
+ }
+
+ TESTSUPPORT_MODULE = $$shell_path($$[QT_INSTALL_QML]/QtWebEngine/testsupport/$${PLUGIN_PREFIX}qtwebenginetestsupportplugin$${PLUGIN_EXTENSION})
+ BUILD_DIR = $$shell_path($$clean_path($$OUT_PWD/../../../..))
+ SRC_DIR = $$shell_path($$clean_path($$PWD/../../../..))
+
+ warning("QML Test Support API is disabled. This means some QML tests that use Test Support API will fail.")
+ warning("Use the following command to build Test Support module and rebuild WebEngineView API:")
+ warning("cd $$BUILD_DIR && qmake WEBENGINE_CONFIG+=testsupport -r $$shell_path($$SRC_DIR/qtwebengine.pro) && make -C $$shell_path($$BUILD_DIR/src/webengine) clean && make")
+ warning("After performing the command above make sure QML module \"QtWebEngine.testsupport\" is deployed at $$TESTSUPPORT_MODULE")
+}