diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2021-01-18 15:40:56 +0100 |
---|---|---|
committer | Michal Klocek <michal.klocek@qt.io> | 2021-01-19 23:13:47 +0100 |
commit | a7510e85e6f53f4e889307edb58f26c8900d2d06 (patch) | |
tree | d4b6208bb8bf7d8288c57d7024c2813b3af1b5aa /tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | |
parent | 91696b2cb090e5b6147a30465f74d8d37db48615 (diff) | |
parent | f1f763cf3c7254406b7b6f01551b6624210bb834 (diff) |
Merge branch '5.15' into dev
Last commits before 87 update.
Change-Id: Id156b0199a8fd354c946cfe604ae8541ba554658
Diffstat (limited to 'tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp')
-rw-r--r-- | tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp index 41ec977ab..31ee30647 100644 --- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp +++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp @@ -177,6 +177,7 @@ private Q_SLOTS: void setUrlUsingStateObject(); void setUrlThenLoads_data(); void setUrlThenLoads(); + void loadFinishedAfterNotFoundError_data(); void loadFinishedAfterNotFoundError(); void loadInSignalHandlers_data(); void loadInSignalHandlers(); @@ -2830,18 +2831,49 @@ 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); - page.setUrl(QUrl("http://non.existent/url")); + 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); - page.setUrl(QUrl("http://another.non.existent/url")); + 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 { |