tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
equal deleted inserted replaced
2:56cd8111b7f7 3:41300fa6a67c
   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);