summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
diff options
context:
space:
mode:
authorPeter Varga <pvarga@inf.u-szeged.hu>2021-01-25 14:59:55 +0100
committerPeter Varga <pvarga@inf.u-szeged.hu>2021-02-05 08:19:49 +0100
commitc43c3c3ae46735e3d23e0ed70c31143d2556a579 (patch)
treef24808bc3dd12c862510a994b3da8e004749b837 /tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
parentf9885840ef2840179f589dd1f71a776df5fd34f3 (diff)
Fix loadFinished signal if page has content but server sends HTTP error
For triggering an error page 3 conditions should be fulfilled: - main frame navigation - the page's document is empty - the HTTP status code indicates an error This fix adds check for the empty document and sends loadFinished signal without expecting an error page if the document is not empty. Fixes: QTBUG-90517 Change-Id: I6463d75fb5e682932feca64b0f059f9aa475795c Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
Diffstat (limited to 'tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp')
-rw-r--r--tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp47
1 files changed, 0 insertions, 47 deletions
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
index 797d4e4e7..7e92ad8cc 100644
--- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
+++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
@@ -174,8 +174,6 @@ private Q_SLOTS:
void setUrlUsingStateObject();
void setUrlThenLoads_data();
void setUrlThenLoads();
- void loadFinishedAfterNotFoundError_data();
- void loadFinishedAfterNotFoundError();
void loadInSignalHandlers_data();
void loadInSignalHandlers();
void loadFromQrc();
@@ -2824,51 +2822,6 @@ void tst_QWebEnginePage::setUrlThenLoads()
QCOMPARE(baseUrlSync(m_page), extractBaseUrl(urlToLoad2));
}
-void tst_QWebEnginePage::loadFinishedAfterNotFoundError_data()
-{
- QTest::addColumn<bool>("rfcInvalid");
- QTest::addColumn<bool>("withServer");
- QTest::addRow("rfc_invalid") << true << false;
- QTest::addRow("non_existent") << false << false;
- QTest::addRow("server_404") << false << true;
-}
-
-void tst_QWebEnginePage::loadFinishedAfterNotFoundError()
-{
- QFETCH(bool, withServer);
- QFETCH(bool, rfcInvalid);
-
- QScopedPointer<HttpServer> server;
- if (withServer) {
- server.reset(new HttpServer);
- QVERIFY(server->start());
- }
-
- QWebEnginePage page;
- QSignalSpy spy(&page, SIGNAL(loadFinished(bool)));
-
- page.settings()->setAttribute(QWebEngineSettings::ErrorPageEnabled, false);
- auto url = server
- ? server->url("/not-found-page.html")
- : QUrl(rfcInvalid ? "http://some.invalid" : "http://non.existent/url");
- page.setUrl(url);
- QTRY_COMPARE_WITH_TIMEOUT(spy.count(), 1, 20000);
- QVERIFY(!spy.at(0).at(0).toBool());
- QCOMPARE(toPlainTextSync(&page), QString());
- QCOMPARE(spy.count(), 1);
-
- page.settings()->setAttribute(QWebEngineSettings::ErrorPageEnabled, true);
- url = server
- ? server->url("/another-missing-one.html")
- : QUrl(rfcInvalid ? "http://some.other.invalid" : "http://another.non.existent/url");
- page.setUrl(url);
- QTRY_COMPARE_WITH_TIMEOUT(spy.count(), 2, 20000);
- QVERIFY(!spy.at(1).at(0).toBool());
-
- QEXPECT_FAIL("", "No more loads (like separate load for error pages) are expected", Continue);
- QTRY_COMPARE_WITH_TIMEOUT(spy.count(), 3, 1000);
-}
-
class URLSetter : public QObject {
Q_OBJECT