summaryrefslogtreecommitdiffstats
path: root/tests/auto/core/qwebenginecookiestore
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-09-01 13:10:34 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-01-19 07:42:58 +0000
commit757004ecf484289f576870b4f251c3e7551294c5 (patch)
tree3f45d9230b87239d16ca7584c07b54b068c11697 /tests/auto/core/qwebenginecookiestore
parent71d6dc0c326523103dff867d7184e7bc7e49c71d (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/qwebenginecookiestore')
-rw-r--r--tests/auto/core/qwebenginecookiestore/tst_qwebenginecookiestore.cpp33
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"