41
41
void testChromeProperties();
42
void testWebkitProperties();
44
void testChromeReadWrite_data() { setupCookieData(); }
45
void testWebkitReadWrite_data() { setupCookieData(); }
46
void testChromeReadWrite();
47
void testWebkitReadWrite();
49
void testMoving_data() { setupCookieData(); }
53
void setupCookieData();
54
QSet<QNetworkCookie> parseCookies(const Cookies &rawCookies);
58
CookieStoreTest::parseCookies(const Cookies &rawCookies)
60
QList<QNetworkCookie> cookies;
61
Q_FOREACH(const QByteArray &rawCookie, rawCookies) {
62
cookies.append(QNetworkCookie::parseCookies(rawCookie));
64
return cookies.toSet();
67
44
void CookieStoreTest::testChromeProperties()
69
46
QTemporaryDir tmpDir;
90
67
QVERIFY(store.property("cookies").value<Cookies>().isEmpty());
93
void CookieStoreTest::testWebkitProperties()
96
QVERIFY(tmpDir.isValid());
97
QDir testDir(tmpDir.path());
99
WebkitCookieStore store;
100
QSignalSpy dbPathChanged(&store, SIGNAL(dbPathChanged()));
102
QString path = testDir.filePath("cookies.db");
103
store.setProperty("dbPath", path);
104
QCOMPARE(dbPathChanged.count(), 1);
105
QCOMPARE(store.property("dbPath").toString(), path);
107
QVERIFY(store.property("cookies").value<Cookies>().isEmpty());
110
void CookieStoreTest::setupCookieData()
112
QTest::addColumn<Cookies>("cookies");
116
cookies << "LSID=DQAAAKEaem_vYg; Domain=docs.foo.com; Path=/accounts; "
117
"Expires=Wed, 13 Jan 2021 22:23:01 GMT; Secure; HttpOnly";
118
QTest::newRow("Single cookie") << cookies;
121
cookies << "LSID=DQAAAKEaem_vYg; Domain=docs.foo.com; Path=/accounts; "
122
"Expires=Wed, 13 Jan 2021 22:23:01 GMT; Secure; HttpOnly";
123
cookies << "HSID=AYQEVnDKrdst; Domain=.foo.com; Path=/; "
124
"Expires=Wed, 13 Jan 2021 22:23:01 GMT; HttpOnly";
125
cookies << "SSID=Ap4PGTEq; Domain=foo.com; Path=/; "
126
"Expires=Wed, 13 Jan 2021 22:23:01 GMT; Secure";
127
cookies << "made_write_conn=1295214458; Path=/; Domain=.example.com";
128
QTest::newRow("Few cookies") << cookies;
131
void CookieStoreTest::testChromeReadWrite()
133
QFETCH(Cookies, cookies);
135
QTemporaryDir tmpDir;
136
QVERIFY(tmpDir.isValid());
137
QDir testDir(tmpDir.path());
139
ChromeCookieStore store;
140
QSignalSpy cookiesChanged(&store, SIGNAL(cookiesChanged()));
141
store.setDbPath(testDir.filePath("cookies.db"));
143
QCOMPARE(cookiesChanged.count(), 0);
144
store.setProperty("cookies", QVariant::fromValue(cookies));
145
QCOMPARE(cookiesChanged.count(), 1);
146
Cookies readCookies = store.property("cookies").value<Cookies>();
147
QCOMPARE(parseCookies(readCookies), parseCookies(cookies));
150
void CookieStoreTest::testWebkitReadWrite()
152
QFETCH(Cookies, cookies);
154
QTemporaryDir tmpDir;
155
QVERIFY(tmpDir.isValid());
156
QDir testDir(tmpDir.path());
158
WebkitCookieStore store;
159
QSignalSpy cookiesChanged(&store, SIGNAL(cookiesChanged()));
160
store.setDbPath(testDir.filePath("cookies.db"));
162
QCOMPARE(cookiesChanged.count(), 0);
163
store.setProperty("cookies", QVariant::fromValue(cookies));
164
QCOMPARE(cookiesChanged.count(), 1);
165
Cookies readCookies = store.property("cookies").value<Cookies>();
166
QCOMPARE(parseCookies(readCookies), parseCookies(cookies));
169
void CookieStoreTest::testMoving()
171
QFETCH(Cookies, cookies);
173
QTemporaryDir tmpDir;
174
QVERIFY(tmpDir.isValid());
175
QDir testDir(tmpDir.path());
177
WebkitCookieStore webkitStore;
178
webkitStore.setDbPath(testDir.filePath("webkit.db"));
179
webkitStore.setProperty("cookies", QVariant::fromValue(cookies));
181
ChromeCookieStore chromeStore;
182
chromeStore.setDbPath(testDir.filePath("chrome.db"));
184
QSignalSpy moved(&chromeStore, SIGNAL(moved(bool)));
185
chromeStore.moveFrom(&webkitStore);
187
QCOMPARE(moved.count(), 1);
188
QCOMPARE(moved.at(0).at(0).toBool(), true);
190
Cookies movedCookies = chromeStore.property("cookies").value<Cookies>();
191
QCOMPARE(parseCookies(movedCookies), parseCookies(cookies));
194
70
QTEST_MAIN(CookieStoreTest)
195
71
#include "tst_CookieStore.moc"