118 QList<QNetworkCookie> result; |
118 QList<QNetworkCookie> result; |
119 QNetworkCookie cookie; |
119 QNetworkCookie cookie; |
120 |
120 |
121 cookie.setName("a"); |
121 cookie.setName("a"); |
122 cookie.setPath("/"); |
122 cookie.setPath("/"); |
123 cookie.setDomain("www.foo.tld"); |
123 cookie.setDomain(".foo.tld"); |
124 result += cookie; |
124 result += cookie; |
125 QTest::newRow("just-add") << preset << cookie << "http://www.foo.tld" << result << true; |
125 QTest::newRow("just-add") << preset << cookie << "http://www.foo.tld" << result << true; |
126 |
126 |
127 preset = result; |
127 preset = result; |
128 QTest::newRow("replace-1") << preset << cookie << "http://www.foo.tld" << result << true; |
128 QTest::newRow("replace-1") << preset << cookie << "http://www.foo.tld" << result << true; |
146 preset.clear(); |
146 preset.clear(); |
147 preset += cookie; |
147 preset += cookie; |
148 cookie.setPath("/"); |
148 cookie.setPath("/"); |
149 QTest::newRow("diff-path-order") << preset << cookie << "http://www.foo.tld" << result << true; |
149 QTest::newRow("diff-path-order") << preset << cookie << "http://www.foo.tld" << result << true; |
150 |
150 |
|
151 preset.clear(); |
|
152 result.clear(); |
|
153 QNetworkCookie finalCookie = cookie; |
|
154 cookie.setDomain("foo.tld"); |
|
155 finalCookie.setDomain(".foo.tld"); |
|
156 result += finalCookie; |
|
157 QTest::newRow("should-add-dot-prefix") << preset << cookie << "http://www.foo.tld" << result << true; |
|
158 |
|
159 result.clear(); |
|
160 cookie.setDomain(""); |
|
161 finalCookie.setDomain("www.foo.tld"); |
|
162 result += finalCookie; |
|
163 QTest::newRow("should-set-default-domain") << preset << cookie << "http://www.foo.tld" << result << true; |
|
164 |
151 // security test: |
165 // security test: |
152 result.clear(); |
166 result.clear(); |
153 preset.clear(); |
167 preset.clear(); |
154 cookie.setDomain("something.completely.different"); |
168 cookie.setDomain("something.completely.different"); |
155 QTest::newRow("security-domain-1") << preset << cookie << "http://www.foo.tld" << result << false; |
169 QTest::newRow("security-domain-1") << preset << cookie << "http://www.foo.tld" << result << false; |
156 |
170 |
157 cookie.setDomain("www.foo.tld"); |
171 // we want the cookie to be accepted although the path does not match, see QTBUG-5815 |
|
172 cookie.setDomain(".foo.tld"); |
158 cookie.setPath("/something"); |
173 cookie.setPath("/something"); |
159 QTest::newRow("security-path-1") << preset << cookie << "http://www.foo.tld" << result << false; |
174 result += cookie; |
|
175 QTest::newRow("security-path-1") << preset << cookie << "http://www.foo.tld" << result << true; |
160 |
176 |
161 // setting the defaults: |
177 // setting the defaults: |
162 QNetworkCookie finalCookie = cookie; |
178 finalCookie = cookie; |
163 finalCookie.setPath("/something/"); |
179 finalCookie.setPath("/something/"); |
|
180 finalCookie.setDomain("www.foo.tld"); |
164 cookie.setPath(""); |
181 cookie.setPath(""); |
165 cookie.setDomain(""); |
182 cookie.setDomain(""); |
166 result.clear(); |
183 result.clear(); |
167 result += finalCookie; |
184 result += finalCookie; |
168 QTest::newRow("defaults-1") << preset << cookie << "http://www.foo.tld/something/" << result << true; |
185 QTest::newRow("defaults-1") << preset << cookie << "http://www.foo.tld/something/" << result << true; |
269 QTest::newRow("exp-match-2") << allCookies << "http://nokia.com/web/" << result; |
286 QTest::newRow("exp-match-2") << allCookies << "http://nokia.com/web/" << result; |
270 QTest::newRow("exp-match-3") << allCookies << "http://nokia.com/web/content" << result; |
287 QTest::newRow("exp-match-3") << allCookies << "http://nokia.com/web/content" << result; |
271 QTest::newRow("exp-match-4") << allCookies << "http://qt.nokia.com/web" << result; |
288 QTest::newRow("exp-match-4") << allCookies << "http://qt.nokia.com/web" << result; |
272 QTest::newRow("exp-match-4") << allCookies << "http://qt.nokia.com/web/" << result; |
289 QTest::newRow("exp-match-4") << allCookies << "http://qt.nokia.com/web/" << result; |
273 QTest::newRow("exp-match-6") << allCookies << "http://qt.nokia.com/web/content" << result; |
290 QTest::newRow("exp-match-6") << allCookies << "http://qt.nokia.com/web/content" << result; |
|
291 |
|
292 // path matching |
|
293 allCookies.clear(); |
|
294 QNetworkCookie anotherCookie; |
|
295 anotherCookie.setName("a"); |
|
296 anotherCookie.setPath("/web"); |
|
297 anotherCookie.setDomain(".nokia.com"); |
|
298 allCookies += anotherCookie; |
|
299 result.clear(); |
|
300 QTest::newRow("path-unmatch-1") << allCookies << "http://nokia.com/" << result; |
|
301 QTest::newRow("path-unmatch-2") << allCookies << "http://nokia.com/something/else" << result; |
|
302 result += anotherCookie; |
|
303 QTest::newRow("path-match-1") << allCookies << "http://nokia.com/web" << result; |
|
304 QTest::newRow("path-match-2") << allCookies << "http://nokia.com/web/" << result; |
|
305 QTest::newRow("path-match-3") << allCookies << "http://nokia.com/web/content" << result; |
|
306 |
274 } |
307 } |
275 |
308 |
276 void tst_QNetworkCookieJar::cookiesForUrl() |
309 void tst_QNetworkCookieJar::cookiesForUrl() |
277 { |
310 { |
278 QFETCH(QList<QNetworkCookie>, allCookies); |
311 QFETCH(QList<QNetworkCookie>, allCookies); |