diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-09-01 13:10:34 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-01-19 07:42:58 +0000 |
commit | 757004ecf484289f576870b4f251c3e7551294c5 (patch) | |
tree | 3f45d9230b87239d16ca7584c07b54b068c11697 /tests/auto/core | |
parent | 71d6dc0c326523103dff867d7184e7bc7e49c71d (diff) |
Reinstate cookie filter API
Expose API to block cookies for specific domains, or third party cookies
in general.
Task-number: QTBUG-62897
Change-Id: I7f0e3f346368a2ef2fbd77f3197ee2dea50d57ce
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Diffstat (limited to 'tests/auto/core')
-rw-r--r-- | tests/auto/core/qwebenginecookiestore/tst_qwebenginecookiestore.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/auto/core/qwebenginecookiestore/tst_qwebenginecookiestore.cpp b/tests/auto/core/qwebenginecookiestore/tst_qwebenginecookiestore.cpp index 930c208ee..913614df2 100644 --- a/tests/auto/core/qwebenginecookiestore/tst_qwebenginecookiestore.cpp +++ b/tests/auto/core/qwebenginecookiestore/tst_qwebenginecookiestore.cpp @@ -51,6 +51,7 @@ private Q_SLOTS: void cookieSignals(); void setAndDeleteCookie(); void batchCookieTasks(); + void basicFilter(); private: QWebEngineProfile m_profile; @@ -186,5 +187,37 @@ void tst_QWebEngineCookieStore::batchCookieTasks() QTRY_COMPARE(cookieRemovedSpy.count(), 4); } +void tst_QWebEngineCookieStore::basicFilter() +{ + QWebEnginePage page(&m_profile); + QWebEngineCookieStore *client = m_profile.cookieStore(); + + QAtomicInt accessTested = 0; + client->setCookieFilter([&](QWebEngineCookieStore::FilterRequest &){ ++accessTested; }); + + QSignalSpy loadSpy(&page, SIGNAL(loadFinished(bool))); + QSignalSpy cookieAddedSpy(client, SIGNAL(cookieAdded(const QNetworkCookie &))); + QSignalSpy cookieRemovedSpy(client, SIGNAL(cookieRemoved(const QNetworkCookie &))); + + page.load(QUrl("qrc:///resources/index.html")); + + QTRY_COMPARE(loadSpy.count(), 1); + QVERIFY(loadSpy.takeFirst().takeFirst().toBool()); + QTRY_COMPARE(cookieAddedSpy.count(), 2); + QTRY_COMPARE(accessTested.loadAcquire(), 2); + + client->deleteAllCookies(); + QTRY_COMPARE(cookieRemovedSpy.count(), 2); + + client->setCookieFilter([&](QWebEngineCookieStore::FilterRequest &request){ ++accessTested; request.accepted = false; }); + page.triggerAction(QWebEnginePage::ReloadAndBypassCache); + QTRY_COMPARE(loadSpy.count(), 1); + QVERIFY(loadSpy.takeFirst().takeFirst().toBool()); + QTRY_COMPARE(accessTested.loadAcquire(), 4); + // Test cookies are NOT added: + QTest::qWait(100); + QCOMPARE(cookieAddedSpy.count(), 2); +} + QTEST_MAIN(tst_QWebEngineCookieStore) #include "tst_qwebenginecookiestore.moc" |