diff options
author | Jüri Valdmann <juri.valdmann@qt.io> | 2020-02-18 13:04:09 +0100 |
---|---|---|
committer | Jüri Valdmann <juri.valdmann@qt.io> | 2020-02-18 21:41:20 +0100 |
commit | 8b048ef2ba4e8414f4852f791964878a6dc3f00f (patch) | |
tree | 6d376787ad83042f73678942fdd4d52c979fb11f /tests | |
parent | 2d7a173b1f00c108cdf2ab451ff7f9af0094c2fa (diff) |
Fix tst_QWebEngineUrlRequestInterceptor::initiator flakiness
The test assumes a 1-1 correspondence between request URLs and initiator
origins, but really we have a 1-N correspondence since the same URL can be
requested multiple times by different initiator origins. The current flakiness
results from just such a conflict, namely from one URL being requested both by
the main site (w3schools.com) and by AdSense (doubleclick.net).
Fixes: QTBUG-82288
Change-Id: Ida121d8f23b396b72a28faab91780d6fa4d99c92
Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.cpp | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.cpp b/tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.cpp index c0762aa14..a7b44602f 100644 --- a/tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.cpp +++ b/tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.cpp @@ -114,7 +114,7 @@ class TestRequestInterceptor : public QWebEngineUrlRequestInterceptor public: QList<RequestInfo> requestInfos; bool shouldIntercept; - QMap<QUrl, QUrl> requestInitiatorUrls; + QMap<QUrl, QSet<QUrl>> requestInitiatorUrls; void interceptRequest(QWebEngineUrlRequestInfo &info) override { @@ -129,7 +129,7 @@ public: // Set referrer header info.setHttpHeader(kHttpHeaderRefererName, kHttpHeaderReferrerValue); - requestInitiatorUrls.insert(info.requestUrl(), info.initiator()); + requestInitiatorUrls[info.requestUrl()].insert(info.initiator()); requestInfos.append(info); } @@ -577,49 +577,49 @@ void tst_QWebEngineUrlRequestInterceptor::initiator() QTRY_VERIFY(interceptor.hasUrlRequestForType(QWebEngineUrlRequestInfo::ResourceTypeSubFrame)); infos = interceptor.getUrlRequestForType(QWebEngineUrlRequestInfo::ResourceTypeSubFrame); foreach (auto info, infos) - QCOMPARE(info.initiator, interceptor.requestInitiatorUrls[info.requestUrl]); + QVERIFY(interceptor.requestInitiatorUrls[info.requestUrl].contains(info.initiator)); // Stylesheet QTRY_VERIFY(interceptor.hasUrlRequestForType(QWebEngineUrlRequestInfo::ResourceTypeStylesheet)); infos = interceptor.getUrlRequestForType(QWebEngineUrlRequestInfo::ResourceTypeStylesheet); foreach (auto info, infos) - QCOMPARE(info.initiator, interceptor.requestInitiatorUrls[info.requestUrl]); + QVERIFY(interceptor.requestInitiatorUrls[info.requestUrl].contains(info.initiator)); // Script QTRY_VERIFY(interceptor.hasUrlRequestForType(QWebEngineUrlRequestInfo::ResourceTypeScript)); infos = interceptor.getUrlRequestForType(QWebEngineUrlRequestInfo::ResourceTypeScript); foreach (auto info, infos) - QCOMPARE(info.initiator, interceptor.requestInitiatorUrls[info.requestUrl]); + QVERIFY(interceptor.requestInitiatorUrls[info.requestUrl].contains(info.initiator)); // Image QTRY_VERIFY(interceptor.hasUrlRequestForType(QWebEngineUrlRequestInfo::ResourceTypeImage)); infos = interceptor.getUrlRequestForType(QWebEngineUrlRequestInfo::ResourceTypeImage); foreach (auto info, infos) - QCOMPARE(info.initiator, interceptor.requestInitiatorUrls[info.requestUrl]); + QVERIFY(interceptor.requestInitiatorUrls[info.requestUrl].contains(info.initiator)); // FontResource QTRY_VERIFY(interceptor.hasUrlRequestForType(QWebEngineUrlRequestInfo::ResourceTypeFontResource)); infos = interceptor.getUrlRequestForType(QWebEngineUrlRequestInfo::ResourceTypeFontResource); foreach (auto info, infos) - QCOMPARE(info.initiator, interceptor.requestInitiatorUrls[info.requestUrl]); + QVERIFY(interceptor.requestInitiatorUrls[info.requestUrl].contains(info.initiator)); // Media QTRY_VERIFY(interceptor.hasUrlRequestForType(QWebEngineUrlRequestInfo::ResourceTypeMedia)); infos = interceptor.getUrlRequestForType(QWebEngineUrlRequestInfo::ResourceTypeMedia); foreach (auto info, infos) - QCOMPARE(info.initiator, interceptor.requestInitiatorUrls[info.requestUrl]); + QVERIFY(interceptor.requestInitiatorUrls[info.requestUrl].contains(info.initiator)); // Favicon QTRY_VERIFY(interceptor.hasUrlRequestForType(QWebEngineUrlRequestInfo::ResourceTypeFavicon)); infos = interceptor.getUrlRequestForType(QWebEngineUrlRequestInfo::ResourceTypeFavicon); foreach (auto info, infos) - QCOMPARE(info.initiator, interceptor.requestInitiatorUrls[info.requestUrl]); + QVERIFY(interceptor.requestInitiatorUrls[info.requestUrl].contains(info.initiator)); // XMLHttpRequest QTRY_VERIFY(interceptor.hasUrlRequestForType(QWebEngineUrlRequestInfo::ResourceTypeXhr)); infos = interceptor.getUrlRequestForType(QWebEngineUrlRequestInfo::ResourceTypeXhr); foreach (auto info, infos) - QCOMPARE(info.initiator, interceptor.requestInitiatorUrls[info.requestUrl]); + QVERIFY(interceptor.requestInitiatorUrls[info.requestUrl].contains(info.initiator)); } QTEST_MAIN(tst_QWebEngineUrlRequestInterceptor) |