diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-02-19 13:27:34 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-02-19 13:27:34 +0100 |
commit | 1e204ff6e91227de3bd2f105a1efbaf47ee2b5aa (patch) | |
tree | 1609ebd46902d5c568d3df08e593ff2b5919cbbc /tests/auto/core | |
parent | 18b0081aeda8fcd5c2d756c47bdd63cb7f89e891 (diff) | |
parent | 8b048ef2ba4e8414f4852f791964878a6dc3f00f (diff) |
Merge remote-tracking branch 'origin/5.14' into 5.15
Blacklisted one test requiring an update of qt5.git.
Conflicts:
.qmake.conf
Change-Id: I75e55a1c5f8840cde55ddb60d632287b2affadeb
Diffstat (limited to 'tests/auto/core')
-rw-r--r-- | tests/auto/core/qwebenginecookiestore/tst_qwebenginecookiestore.cpp | 63 | ||||
-rw-r--r-- | tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.cpp | 20 |
2 files changed, 51 insertions, 32 deletions
diff --git a/tests/auto/core/qwebenginecookiestore/tst_qwebenginecookiestore.cpp b/tests/auto/core/qwebenginecookiestore/tst_qwebenginecookiestore.cpp index 4ff33dbac..2c41aa9b1 100644 --- a/tests/auto/core/qwebenginecookiestore/tst_qwebenginecookiestore.cpp +++ b/tests/auto/core/qwebenginecookiestore/tst_qwebenginecookiestore.cpp @@ -45,17 +45,21 @@ public Q_SLOTS: void init(); void cleanup(); -private Q_SLOTS: void initTestCase(); void cleanupTestCase(); - void cookieSignals(); + +private Q_SLOTS: + // MEMO should be the first test of a testcase + // as it checks storage manipulation without navigation void setAndDeleteCookie(); + + void cookieSignals(); void batchCookieTasks(); void basicFilter(); void html5featureFilter(); private: - QWebEngineProfile m_profile; + QWebEngineProfile *m_profile; }; tst_QWebEngineCookieStore::tst_QWebEngineCookieStore() @@ -72,22 +76,24 @@ void tst_QWebEngineCookieStore::init() void tst_QWebEngineCookieStore::cleanup() { - m_profile.cookieStore()->deleteAllCookies(); + m_profile->cookieStore()->deleteAllCookies(); } void tst_QWebEngineCookieStore::initTestCase() { + m_profile = new QWebEngineProfile; } void tst_QWebEngineCookieStore::cleanupTestCase() { + delete m_profile; } void tst_QWebEngineCookieStore::cookieSignals() { - QWebEnginePage page(&m_profile); + QWebEnginePage page(m_profile); - QWebEngineCookieStore *client = m_profile.cookieStore(); + QWebEngineCookieStore *client = m_profile->cookieStore(); QSignalSpy loadSpy(&page, SIGNAL(loadFinished(bool))); QSignalSpy cookieAddedSpy(client, SIGNAL(cookieAdded(const QNetworkCookie &))); @@ -95,7 +101,7 @@ void tst_QWebEngineCookieStore::cookieSignals() page.load(QUrl("qrc:///resources/index.html")); - QTRY_COMPARE(loadSpy.count(), 1); + QTRY_COMPARE_WITH_TIMEOUT(loadSpy.count(), 1, 30000); QVariant success = loadSpy.takeFirst().takeFirst(); QVERIFY(success.toBool()); QTRY_COMPARE(cookieAddedSpy.count(), 2); @@ -115,8 +121,8 @@ void tst_QWebEngineCookieStore::cookieSignals() void tst_QWebEngineCookieStore::setAndDeleteCookie() { - QWebEnginePage page(&m_profile); - QWebEngineCookieStore *client = m_profile.cookieStore(); + QWebEnginePage page(m_profile); + QWebEngineCookieStore *client = m_profile->cookieStore(); QSignalSpy loadSpy(&page, SIGNAL(loadFinished(bool))); QSignalSpy cookieAddedSpy(client, SIGNAL(cookieAdded(const QNetworkCookie &))); @@ -127,16 +133,23 @@ void tst_QWebEngineCookieStore::setAndDeleteCookie() QNetworkCookie cookie3(QNetworkCookie::parseCookies(QByteArrayLiteral("SessionCookie=QtWebEngineCookieTest; Path=///resources")).first()); QNetworkCookie expiredCookie3(QNetworkCookie::parseCookies(QByteArrayLiteral("SessionCookie=delete; expires=Thu, 01-Jan-1970 00:00:00 GMT; path=///resources")).first()); + // force to init storage as it's done lazily upon first navigation + client->loadAllCookies(); + // /* FIXME remove 'blank' navigation once loadAllCookies api is fixed + page.load(QUrl("about:blank")); + QTRY_COMPARE_WITH_TIMEOUT(loadSpy.count(), 1, 30000); + // */ + // check if pending cookies are set and removed client->setCookie(cookie1); - QTRY_COMPARE(cookieAddedSpy.count(),1); client->setCookie(cookie2); - QTRY_COMPARE(cookieAddedSpy.count(),2); + QTRY_COMPARE(cookieAddedSpy.count(), 2); client->deleteCookie(cookie1); + QTRY_COMPARE(cookieRemovedSpy.count(), 1); page.load(QUrl("qrc:///resources/content.html")); - QTRY_COMPARE(loadSpy.count(), 1); + QTRY_COMPARE_WITH_TIMEOUT(loadSpy.count(), 2, 30000); QVariant success = loadSpy.takeFirst().takeFirst(); QVERIFY(success.toBool()); QTRY_COMPARE(cookieAddedSpy.count(), 2); @@ -155,8 +168,8 @@ void tst_QWebEngineCookieStore::setAndDeleteCookie() void tst_QWebEngineCookieStore::batchCookieTasks() { - QWebEnginePage page(&m_profile); - QWebEngineCookieStore *client = m_profile.cookieStore(); + QWebEnginePage page(m_profile); + QWebEngineCookieStore *client = m_profile->cookieStore(); QSignalSpy loadSpy(&page, SIGNAL(loadFinished(bool))); QSignalSpy cookieAddedSpy(client, SIGNAL(cookieAdded(const QNetworkCookie &))); @@ -165,14 +178,20 @@ void tst_QWebEngineCookieStore::batchCookieTasks() QNetworkCookie cookie1(QNetworkCookie::parseCookies(QByteArrayLiteral("khaos=I9GX8CWI; Domain=.example.com; Path=/docs")).first()); QNetworkCookie cookie2(QNetworkCookie::parseCookies(QByteArrayLiteral("Test%20Cookie=foobar; domain=example.com; Path=/")).first()); + // force to init storage as it's done lazily upon first navigation + client->loadAllCookies(); + // /* FIXME remove 'blank' navigation once loadAllCookies api is fixed + page.load(QUrl("about:blank")); + QTRY_COMPARE_WITH_TIMEOUT(loadSpy.count(), 1, 30000); + // */ + client->setCookie(cookie1); - QTRY_COMPARE(cookieAddedSpy.count(), 1); client->setCookie(cookie2); QTRY_COMPARE(cookieAddedSpy.count(), 2); page.load(QUrl("qrc:///resources/index.html")); - QTRY_COMPARE(loadSpy.count(), 1); + QTRY_COMPARE_WITH_TIMEOUT(loadSpy.count(), 2, 30000); QVariant success = loadSpy.takeFirst().takeFirst(); QVERIFY(success.toBool()); QTRY_COMPARE(cookieAddedSpy.count(), 4); @@ -190,8 +209,8 @@ void tst_QWebEngineCookieStore::batchCookieTasks() void tst_QWebEngineCookieStore::basicFilter() { - QWebEnginePage page(&m_profile); - QWebEngineCookieStore *client = m_profile.cookieStore(); + QWebEnginePage page(m_profile); + QWebEngineCookieStore *client = m_profile->cookieStore(); QAtomicInt accessTested = 0; client->setCookieFilter([&](const QWebEngineCookieStore::FilterRequest &){ ++accessTested; return true;}); @@ -202,7 +221,7 @@ void tst_QWebEngineCookieStore::basicFilter() page.load(QUrl("qrc:///resources/index.html")); - QTRY_COMPARE(loadSpy.count(), 1); + QTRY_COMPARE_WITH_TIMEOUT(loadSpy.count(), 1, 30000); QVERIFY(loadSpy.takeFirst().takeFirst().toBool()); QTRY_COMPARE(cookieAddedSpy.count(), 2); QTRY_COMPARE(accessTested.loadAcquire(), 2); // FIXME? @@ -222,8 +241,8 @@ void tst_QWebEngineCookieStore::basicFilter() void tst_QWebEngineCookieStore::html5featureFilter() { - QWebEnginePage page(&m_profile); - QWebEngineCookieStore *client = m_profile.cookieStore(); + QWebEnginePage page(m_profile); + QWebEngineCookieStore *client = m_profile->cookieStore(); QAtomicInt accessTested = 0; client->setCookieFilter([&](const QWebEngineCookieStore::FilterRequest &){ ++accessTested; return false;}); @@ -232,7 +251,7 @@ void tst_QWebEngineCookieStore::html5featureFilter() page.load(QUrl("qrc:///resources/content.html")); - QTRY_COMPARE(loadSpy.count(), 1); + QTRY_COMPARE_WITH_TIMEOUT(loadSpy.count(), 1, 30000); QVERIFY(loadSpy.takeFirst().takeFirst().toBool()); QCOMPARE(accessTested.loadAcquire(), 0); // FIXME? QTest::ignoreMessage(QtCriticalMsg, QRegularExpression(".*Uncaught SecurityError.*sessionStorage.*")); diff --git a/tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.cpp b/tests/auto/core/qwebengineurlrequestinterceptor/tst_qwebengineurlrequestinterceptor.cpp index 76a061a8f..5effb2abf 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); } @@ -585,49 +585,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) |