23#include <QWebEngineProfile>
25void QmlCookiesApiTest::initTestCase()
29void QmlCookiesApiTest::cleanupTestCase()
33void QmlCookiesApiTest::testCookieAdditionRemoval()
38 " url: '.example.com',"
39 " expirationDate: Date.now() + 60*1000"
41 QTRY_COMPARE(cookieAddSpy.count(), 1);
42 QNetworkCookie netCookie = qvariant_cast<QNetworkCookie>(cookieAddSpy.at(0).at(0));
43 QCOMPARE(netCookie.name(), QByteArrayLiteral(
"Example"));
46 QSignalSpy qmlCookieSpy(
object, SIGNAL(changed(QVariantMap)));
47 QNetworkCookie anotherNetCookie;
48 anotherNetCookie.setName(
QSL(
"Hello").toLocal8Bit());
49 anotherNetCookie.setDomain(
QSL(
".mydomain.com"));
50 anotherNetCookie.setExpirationDate(QDateTime::currentDateTime().addSecs(60));
51 mApp->webProfile()->cookieStore()->setCookie(anotherNetCookie);
52 QTRY_COMPARE(qmlCookieSpy.count(), 1);
53 QVariantMap addedQmlCookieMap = QVariant(qmlCookieSpy.at(0).at(0)).toMap();
54 auto *addedQmlCookie = qvariant_cast<QObject*>(addedQmlCookieMap.value(
QSL(
"cookie")));
55 bool removed = addedQmlCookieMap.value(
QSL(
"removed")).toBool();
56 QCOMPARE(addedQmlCookie->property(
"name").toString(),
QSL(
"Hello"));
57 QCOMPARE(removed,
false);
59 mApp->webProfile()->cookieStore()->deleteCookie(netCookie);
60 QTRY_COMPARE(qmlCookieSpy.count(), 2);
61 QVariantMap removedQmlCookieMap = QVariant(qmlCookieSpy.at(1).at(0)).toMap();
62 auto *removedQmlCookie = qvariant_cast<QObject*>(removedQmlCookieMap.value(
QSL(
"cookie")));
63 removed = removedQmlCookieMap.value(
QSL(
"removed")).toBool();
64 QCOMPARE(removedQmlCookie->property(
"name").toString(),
QSL(
"Example"));
65 QCOMPARE(removed,
true);
70 " url: '.mydomain.com',"
72 QTRY_COMPARE(cookieRemoveSpy.count(), 1);
73 netCookie = qvariant_cast<QNetworkCookie>(cookieRemoveSpy.at(0).at(0));
74 QCOMPARE(netCookie.name(), QByteArrayLiteral(
"Hello"));
77void QmlCookiesApiTest::testCookieGet()
79 QDateTime current = QDateTime::currentDateTime();
82 QNetworkCookie netCookie_1;
83 netCookie_1.setName(
QSL(
"Apple").toLocal8Bit());
84 netCookie_1.setDomain(
QSL(
".apple-domain.com"));
85 netCookie_1.setExpirationDate(current.addSecs(60));
86 mApp->webProfile()->cookieStore()->setCookie(netCookie_1);
88 QNetworkCookie netCookie_2;
89 netCookie_2.setName(
QSL(
"Mango").toLocal8Bit());
90 netCookie_2.setDomain(
QSL(
".mango-domain.com"));
91 netCookie_2.setExpirationDate(current.addSecs(120));
92 mApp->webProfile()->cookieStore()->setCookie(netCookie_2);
94 QNetworkCookie netCookie_3;
95 netCookie_3.setName(
QSL(
"Mango").toLocal8Bit());
96 netCookie_3.setDomain(
QSL(
".yet-another-mango-domain.com"));
97 netCookie_3.setExpirationDate(current.addSecs(180));
98 mApp->webProfile()->cookieStore()->setCookie(netCookie_3);
100 QTRY_COMPARE(cookieAddSpy.count(), 3);
102 QNetworkCookie actualMangoCookie;
103 for (
const QNetworkCookie &cookie :
mApp->cookieJar()->getAllCookies()) {
104 if (QString::fromUtf8(cookie.name()) ==
QSL(
"Mango") && cookie.domain() ==
QSL(
".mango-domain.com")) {
105 actualMangoCookie = cookie;
111 " url: '.mango-domain.com'"
113 QVERIFY(mangoCookie);
114 QCOMPARE(mangoCookie->property(
"name").toString(),
QSL(
"Mango"));
115 QCOMPARE(mangoCookie->property(
"expirationDate").toDateTime(), actualMangoCookie.expirationDate());
117 QList<QVariant> mangoCookies = m_testHelper.
evaluate(
QSL(
"Falkon.Cookies.getAll({name: 'Mango'})")).toVariant().toList();
118 QCOMPARE(mangoCookies.length(), 2);
#define FALKONTEST_MAIN(Test)
void cookieAdded(const QNetworkCookie &cookie)
void cookieRemoved(const QNetworkCookie &cookie)
QObject * evaluateQObject(const QString &source)
QJSValue evaluate(const QString &source)