summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJüri Valdmann <juri.valdmann@qt.io>2020-02-18 13:04:09 +0100
committerJüri Valdmann <juri.valdmann@qt.io>2020-02-18 21:41:20 +0100
commit8b048ef2ba4e8414f4852f791964878a6dc3f00f (patch)
tree6d376787ad83042f73678942fdd4d52c979fb11f
parent2d7a173b1f00c108cdf2ab451ff7f9af0094c2fa (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>
-rw-r--r--tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.cpp20
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)