From ba57bbb0f8443a964e771fc65a3de807923bb71e Mon Sep 17 00:00:00 2001 From: Kirill Burtsev Date: Fri, 30 Apr 2021 21:30:16 +0200 Subject: Unblacklist and fix load signals test for file download Since it's a expected and valid behavior, and it's how chromium sees it. First, after link click, load to different document is started, then navigation is initiated, and only later it's resolved to download and aborted (hence load result is false) with page's state staying the same. Fixes: QTBUG-75185 Change-Id: I8b81ba00609649d9d0318f085ff1749a02a6e3cf Reviewed-by: Allan Sandfeld Jensen Reviewed-by: Peter Varga --- tests/auto/widgets/loadsignals/BLACKLIST | 4 ---- tests/auto/widgets/loadsignals/tst_loadsignals.cpp | 21 +++++++-------------- 2 files changed, 7 insertions(+), 18 deletions(-) (limited to 'tests') diff --git a/tests/auto/widgets/loadsignals/BLACKLIST b/tests/auto/widgets/loadsignals/BLACKLIST index 71bb71b9e..d72d35d98 100644 --- a/tests/auto/widgets/loadsignals/BLACKLIST +++ b/tests/auto/widgets/loadsignals/BLACKLIST @@ -20,9 +20,5 @@ [loadAfterInPageNavigation_qtbug66869] * -# QTBUG-66661 -[fileDownloadDoesNotTriggerLoadSignals_qtbug66661] -* - [numberOfStartedAndFinishedSignalsIsSame] b2qt diff --git a/tests/auto/widgets/loadsignals/tst_loadsignals.cpp b/tests/auto/widgets/loadsignals/tst_loadsignals.cpp index 3f5d975c0..e7dc77e95 100644 --- a/tests/auto/widgets/loadsignals/tst_loadsignals.cpp +++ b/tests/auto/widgets/loadsignals/tst_loadsignals.cpp @@ -90,7 +90,7 @@ private Q_SLOTS: void rejectNavigationRequest_data(); void rejectNavigationRequest(); void loadAfterInPageNavigation_qtbug66869(); - void fileDownloadDoesNotTriggerLoadSignals_qtbug66661(); + void fileDownload(); void numberOfStartedAndFinishedSignalsIsSame(); void loadFinishedAfterNotFoundError_data(); void loadFinishedAfterNotFoundError(); @@ -326,11 +326,7 @@ void tst_LoadSignals::loadAfterInPageNavigation_qtbug66869() QFAIL("https://codereview.qt-project.org/#/c/222112/ only hides the symptom, the core issue still needs to be solved"); } -/** - * Test that file-downloads don't trigger loadStarted or loadFinished signals. - * See QTBUG-66661 - */ -void tst_LoadSignals::fileDownloadDoesNotTriggerLoadSignals_qtbug66661() +void tst_LoadSignals::fileDownload() { view.load(QUrl("qrc:///resources/page4.html")); QTRY_COMPARE(loadFinishedSpy.size(), 1); @@ -352,20 +348,17 @@ void tst_LoadSignals::fileDownloadDoesNotTriggerLoadSignals_qtbug66661() }); // trigger the download link that becomes focused on page4 - QTest::qWait(1000); QTest::sendKeyEvent(QTest::Press, view.focusProxy(), Qt::Key_Return, QString("\r"), Qt::NoModifier); QTest::sendKeyEvent(QTest::Release, view.focusProxy(), Qt::Key_Return, QString("\r"), Qt::NoModifier); - // Wait for 5 seconds (abort waiting if another loadStarted or loadFinished occurs) - QTRY_LOOP_IMPL((loadStartedSpy.size() != 1) - || (loadFinishedSpy.size() != 1), 5000, 100); - // Download must have occurred QTRY_COMPARE(downloadState, QWebEngineDownloadItem::DownloadCompleted); + QTRY_COMPARE(loadFinishedSpy.size() + loadStartedSpy.size(), 4); - // No further loadStarted should have occurred within this time - QCOMPARE(loadStartedSpy.size(), 1); - QCOMPARE(loadFinishedSpy.size(), 1); + // verify no more signals is emitted by waiting for another loadStarted or loadFinished + QTRY_LOOP_IMPL(loadStartedSpy.size() != 2 || loadFinishedSpy.size() != 2, 1000, 100); + + QCOMPARE(page.signalsOrder, SignalsOrderTwiceWithFailure); } void tst_LoadSignals::numberOfStartedAndFinishedSignalsIsSame() { -- cgit v1.2.3