~dbarth/webbrowser-app/single-account-dialog

« back to all changes in this revision

Viewing changes to tests/unittests/cookie-store/tst_CookieStore.cpp

  • Committer: Robert Bruce Park
  • Date: 2014-08-28 20:53:02 UTC
  • mfrom: (667.6.6 webbrowser-app)
  • Revision ID: robert.park@canonical.com-20140828205302-xik6rtl2g2ekrd0j
Releasing 0.23+14.10.20140828-0ubuntu1

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
 
27
27
// local
28
28
#include "chrome-cookie-store.h"
29
 
#include "webkit-cookie-store.h"
 
29
#include "online-accounts-cookie-store.h"
30
30
 
31
31
uint qHash(const QNetworkCookie &cookie, uint seed)
32
32
{
39
39
 
40
40
private Q_SLOTS:
41
41
    void testChromeProperties();
42
 
    void testWebkitProperties();
43
 
 
44
 
    void testChromeReadWrite_data() { setupCookieData(); }
45
 
    void testWebkitReadWrite_data() { setupCookieData(); }
46
 
    void testChromeReadWrite();
47
 
    void testWebkitReadWrite();
48
 
 
49
 
    void testMoving_data() { setupCookieData(); }
50
 
    void testMoving();
51
 
 
52
 
private:
53
 
    void setupCookieData();
54
 
    QSet<QNetworkCookie> parseCookies(const Cookies &rawCookies);
55
42
};
56
43
 
57
 
QSet<QNetworkCookie>
58
 
CookieStoreTest::parseCookies(const Cookies &rawCookies)
59
 
{
60
 
    QList<QNetworkCookie> cookies;
61
 
    Q_FOREACH(const QByteArray &rawCookie, rawCookies) {
62
 
        cookies.append(QNetworkCookie::parseCookies(rawCookie));
63
 
    }
64
 
    return cookies.toSet();
65
 
}
66
 
 
67
44
void CookieStoreTest::testChromeProperties()
68
45
{
69
46
    QTemporaryDir tmpDir;
90
67
    QVERIFY(store.property("cookies").value<Cookies>().isEmpty());
91
68
}
92
69
 
93
 
void CookieStoreTest::testWebkitProperties()
94
 
{
95
 
    QTemporaryDir tmpDir;
96
 
    QVERIFY(tmpDir.isValid());
97
 
    QDir testDir(tmpDir.path());
98
 
 
99
 
    WebkitCookieStore store;
100
 
    QSignalSpy dbPathChanged(&store, SIGNAL(dbPathChanged()));
101
 
 
102
 
    QString path = testDir.filePath("cookies.db");
103
 
    store.setProperty("dbPath", path);
104
 
    QCOMPARE(dbPathChanged.count(), 1);
105
 
    QCOMPARE(store.property("dbPath").toString(), path);
106
 
 
107
 
    QVERIFY(store.property("cookies").value<Cookies>().isEmpty());
108
 
}
109
 
 
110
 
void CookieStoreTest::setupCookieData()
111
 
{
112
 
    QTest::addColumn<Cookies>("cookies");
113
 
 
114
 
    Cookies cookies;
115
 
 
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;
119
 
 
120
 
    cookies.clear();
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;
129
 
}
130
 
 
131
 
void CookieStoreTest::testChromeReadWrite()
132
 
{
133
 
    QFETCH(Cookies, cookies);
134
 
 
135
 
    QTemporaryDir tmpDir;
136
 
    QVERIFY(tmpDir.isValid());
137
 
    QDir testDir(tmpDir.path());
138
 
 
139
 
    ChromeCookieStore store;
140
 
    QSignalSpy cookiesChanged(&store, SIGNAL(cookiesChanged()));
141
 
    store.setDbPath(testDir.filePath("cookies.db"));
142
 
 
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));
148
 
}
149
 
 
150
 
void CookieStoreTest::testWebkitReadWrite()
151
 
{
152
 
    QFETCH(Cookies, cookies);
153
 
 
154
 
    QTemporaryDir tmpDir;
155
 
    QVERIFY(tmpDir.isValid());
156
 
    QDir testDir(tmpDir.path());
157
 
 
158
 
    WebkitCookieStore store;
159
 
    QSignalSpy cookiesChanged(&store, SIGNAL(cookiesChanged()));
160
 
    store.setDbPath(testDir.filePath("cookies.db"));
161
 
 
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));
167
 
}
168
 
 
169
 
void CookieStoreTest::testMoving()
170
 
{
171
 
    QFETCH(Cookies, cookies);
172
 
 
173
 
    QTemporaryDir tmpDir;
174
 
    QVERIFY(tmpDir.isValid());
175
 
    QDir testDir(tmpDir.path());
176
 
 
177
 
    WebkitCookieStore webkitStore;
178
 
    webkitStore.setDbPath(testDir.filePath("webkit.db"));
179
 
    webkitStore.setProperty("cookies", QVariant::fromValue(cookies));
180
 
 
181
 
    ChromeCookieStore chromeStore;
182
 
    chromeStore.setDbPath(testDir.filePath("chrome.db"));
183
 
 
184
 
    QSignalSpy moved(&chromeStore, SIGNAL(moved(bool)));
185
 
    chromeStore.moveFrom(&webkitStore);
186
 
 
187
 
    QCOMPARE(moved.count(), 1);
188
 
    QCOMPARE(moved.at(0).at(0).toBool(), true);
189
 
 
190
 
    Cookies movedCookies = chromeStore.property("cookies").value<Cookies>();
191
 
    QCOMPARE(parseCookies(movedCookies), parseCookies(cookies));
192
 
}
193
 
 
194
70
QTEST_MAIN(CookieStoreTest)
195
71
#include "tst_CookieStore.moc"