diff options
author | Kirill Burtsev <kirill.burtsev@qt.io> | 2020-07-31 16:02:36 +0200 |
---|---|---|
committer | Kirill Burtsev <kirill.burtsev@qt.io> | 2020-08-31 10:05:07 +0200 |
commit | d25075fb681fa92fad1f9bdcb262a3e361e7659e (patch) | |
tree | f68a40335197e0966bd850a4a8d2722922baa914 /tests/auto/quick/qmltests | |
parent | 5f1f7e8913b74f9a88864b4155db8753007db52c (diff) |
Don't send duplicate load progress values
Suppress duplicated progress values coming from chromium.
Verify this behavior reliably (and not only 0 and 100 value) by loading html
with subresources with minor delay through test http server.
Change-Id: Id034dda9012212d54d12fc95d5939ba301577c1c
Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
Diffstat (limited to 'tests/auto/quick/qmltests')
-rw-r--r-- | tests/auto/quick/qmltests/data/tst_loadProgress.qml | 22 | ||||
-rw-r--r-- | tests/auto/quick/qmltests/qmltests.pro | 1 | ||||
-rw-r--r-- | tests/auto/quick/qmltests/tst_qmltests.cpp | 8 |
3 files changed, 23 insertions, 8 deletions
diff --git a/tests/auto/quick/qmltests/data/tst_loadProgress.qml b/tests/auto/quick/qmltests/data/tst_loadProgress.qml index 15058cb8f..7bfe1d9e9 100644 --- a/tests/auto/quick/qmltests/data/tst_loadProgress.qml +++ b/tests/auto/quick/qmltests/data/tst_loadProgress.qml @@ -30,6 +30,8 @@ import QtQuick 2.0 import QtTest 1.0 import QtWebEngine 1.2 +import Test.Shared 1.0 as Shared + TestWebEngineView { id: webEngineView width: 400 @@ -55,10 +57,14 @@ TestWebEngineView { compare(spyProgress.count, 0) loadProgressArray = [] - webEngineView.url = Qt.resolvedUrl("test1.html") + verify(Shared.HttpServer.start()) + Shared.HttpServer.newRequest.connect(request => { + wait(250) // just add delay to trigger some progress for every sub resource + }) + webEngineView.url = Shared.HttpServer.url('/loadprogress/main.html') // Wait for the first loadProgressChanged signal, which have to be non-negative spyProgress.wait() - verify(loadProgressArray[0] >= 0) + compare(loadProgressArray[0], 0) verify(webEngineView.loadProgress >= 0) // Wait for the last loadProgressChanged signal, which have to be 100% @@ -67,13 +73,13 @@ TestWebEngineView { compare(loadProgressArray[loadProgressArray.length - 1], 100) compare(webEngineView.loadProgress, 100) - // Test whether the chromium emits progress numbers in ascending order - var loadProgressMin = 0 - for (var i in loadProgressArray) { - var loadProgress = loadProgressArray[i] - if (loadProgressMin > loadProgress) + // Test whether the chromium emits progress numbers in strict monotonic ascending order + let progress = 0 + for (let i = 1; i < loadProgressArray.length; ++i) { + let nextProgress = loadProgressArray[i] + if (nextProgress <= progress) fail("Invalid sequence of progress-values: " + loadProgressArray) - loadProgressMin = loadProgress + progress = nextProgress } } } diff --git a/tests/auto/quick/qmltests/qmltests.pro b/tests/auto/quick/qmltests/qmltests.pro index 5c57f7ad9..a50bfd7e6 100644 --- a/tests/auto/quick/qmltests/qmltests.pro +++ b/tests/auto/quick/qmltests/qmltests.pro @@ -1,4 +1,5 @@ include(../tests.pri) +include(../../shared/http.pri) QT += qmltest diff --git a/tests/auto/quick/qmltests/tst_qmltests.cpp b/tests/auto/quick/qmltests/tst_qmltests.cpp index 819f0b07c..5677f9047 100644 --- a/tests/auto/quick/qmltests/tst_qmltests.cpp +++ b/tests/auto/quick/qmltests/tst_qmltests.cpp @@ -26,6 +26,8 @@ ** ****************************************************************************/ +#include <httpserver.h> + #include <QtCore/QScopedPointer> #include <QTemporaryDir> #include <QtQuickTest/quicktest.h> @@ -143,6 +145,12 @@ int main(int argc, char **argv) qmlRegisterType<TempDir>("Test.util", 1, 0, "TempDir"); QTEST_SET_MAIN_SOURCE_PATH + qmlRegisterSingletonType<HttpServer>("Test.Shared", 1, 0, "HttpServer", [&] (QQmlEngine *, QJSEngine *) { + auto server = new HttpServer; + server->setResourceDirs({ TESTS_SHARED_DATA_DIR, QUICK_TEST_SOURCE_DIR }); + return server; + }); + int i = quick_test_main(argc, argv, "qmltests", QUICK_TEST_SOURCE_DIR); return i; } |