| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <time.h> | 5 #include <time.h> |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 class CookieMonsterTest : public testing::Test { }; | 30 class CookieMonsterTest : public testing::Test { }; |
| 31 | 31 |
| 32 // Helper for DeleteAllForHost test; repopulates CM with same layout | 32 // Helper for DeleteAllForHost test; repopulates CM with same layout |
| 33 // each time. | 33 // each time. |
| 34 const char* kTopLevelDomainPlus1 = "http://www.harvard.edu"; | 34 const char* kTopLevelDomainPlus1 = "http://www.harvard.edu"; |
| 35 const char* kTopLevelDomainPlus2 = "http://www.math.harvard.edu"; | 35 const char* kTopLevelDomainPlus2 = "http://www.math.harvard.edu"; |
| 36 const char* kTopLevelDomainPlus2Secure = "https://www.math.harvard.edu"; | 36 const char* kTopLevelDomainPlus2Secure = "https://www.math.harvard.edu"; |
| 37 const char* kTopLevelDomainPlus3 = | 37 const char* kTopLevelDomainPlus3 = |
| 38 "http://www.bourbaki.math.harvard.edu"; | 38 "http://www.bourbaki.math.harvard.edu"; |
| 39 const char* kOtherDomain = "http://www.mit.edu"; | 39 const char* kOtherDomain = "http://www.mit.edu"; |
| 40 const char* kHTTPSVDomain = "httpsv://stanford.edu"; |
| 40 | 41 |
| 41 void PopulateCmForDeleteAllForHost(scoped_refptr<net::CookieMonster> cm) { | 42 void PopulateCmForDeleteAllForHost(scoped_refptr<net::CookieMonster> cm) { |
| 42 GURL url_top_level_domain_plus_1(kTopLevelDomainPlus1); | 43 GURL url_top_level_domain_plus_1(kTopLevelDomainPlus1); |
| 43 GURL url_top_level_domain_plus_2(kTopLevelDomainPlus2); | 44 GURL url_top_level_domain_plus_2(kTopLevelDomainPlus2); |
| 44 GURL url_top_level_domain_plus_2_secure(kTopLevelDomainPlus2Secure); | 45 GURL url_top_level_domain_plus_2_secure(kTopLevelDomainPlus2Secure); |
| 45 GURL url_top_level_domain_plus_3(kTopLevelDomainPlus3); | 46 GURL url_top_level_domain_plus_3(kTopLevelDomainPlus3); |
| 46 GURL url_other(kOtherDomain); | 47 GURL url_other(kOtherDomain); |
| 48 GURL url_httpsv(kHTTPSVDomain); |
| 47 | 49 |
| 48 cm->DeleteAll(true); | 50 cm->DeleteAll(true); |
| 49 | 51 |
| 50 // Static population for probe: | 52 // Static population for probe: |
| 51 // * Three levels of domain cookie (.b.a, .c.b.a, .d.c.b.a) | 53 // * Three levels of domain cookie (.b.a, .c.b.a, .d.c.b.a) |
| 52 // * Three levels of host cookie (w.b.a, w.c.b.a, w.d.c.b.a) | 54 // * Three levels of host cookie (w.b.a, w.c.b.a, w.d.c.b.a) |
| 53 // * http_only cookie (w.c.b.a) | 55 // * http_only cookie (w.c.b.a) |
| 54 // * Two secure cookies (.c.b.a, w.c.b.a) | 56 // * Two secure cookies (.c.b.a, w.c.b.a) |
| 55 // * Two domain path cookies (.c.b.a/dir1, .c.b.a/dir1/dir2) | 57 // * Two domain path cookies (.c.b.a/dir1, .c.b.a/dir1/dir2) |
| 56 // * Two host path cookies (w.c.b.a/dir1, w.c.b.a/dir1/dir2) | 58 // * Two host path cookies (w.c.b.a/dir1, w.c.b.a/dir1/dir2) |
| (...skipping 26 matching lines...) Expand all Loading... |
| 83 "httpo_check", "X", "", "/", | 85 "httpo_check", "X", "", "/", |
| 84 base::Time(), false, true)); | 86 base::Time(), false, true)); |
| 85 | 87 |
| 86 // Secure cookies | 88 // Secure cookies |
| 87 EXPECT_TRUE(cm->SetCookieWithDetails(url_top_level_domain_plus_2_secure, | 89 EXPECT_TRUE(cm->SetCookieWithDetails(url_top_level_domain_plus_2_secure, |
| 88 "sec_dom", "X", ".math.harvard.edu", | 90 "sec_dom", "X", ".math.harvard.edu", |
| 89 "/", base::Time(), true, false)); | 91 "/", base::Time(), true, false)); |
| 90 EXPECT_TRUE(cm->SetCookieWithDetails(url_top_level_domain_plus_2_secure, | 92 EXPECT_TRUE(cm->SetCookieWithDetails(url_top_level_domain_plus_2_secure, |
| 91 "sec_host", "X", "", "/", | 93 "sec_host", "X", "", "/", |
| 92 base::Time(), true, false)); | 94 base::Time(), true, false)); |
| 95 EXPECT_TRUE(cm->SetCookieWithDetails(url_httpsv, |
| 96 "httpsv_host", "X", "", "/", |
| 97 base::Time(), true, false)); |
| 93 | 98 |
| 94 // Domain path cookies | 99 // Domain path cookies |
| 95 EXPECT_TRUE(cm->SetCookieWithDetails(url_top_level_domain_plus_2, | 100 EXPECT_TRUE(cm->SetCookieWithDetails(url_top_level_domain_plus_2, |
| 96 "dom_path_1", "X", | 101 "dom_path_1", "X", |
| 97 ".math.harvard.edu", "/dir1", | 102 ".math.harvard.edu", "/dir1", |
| 98 base::Time(), false, false)); | 103 base::Time(), false, false)); |
| 99 EXPECT_TRUE(cm->SetCookieWithDetails(url_top_level_domain_plus_2, | 104 EXPECT_TRUE(cm->SetCookieWithDetails(url_top_level_domain_plus_2, |
| 100 "dom_path_2", "X", | 105 "dom_path_2", "X", |
| 101 ".math.harvard.edu", "/dir1/dir2", | 106 ".math.harvard.edu", "/dir1/dir2", |
| 102 base::Time(), false, false)); | 107 base::Time(), false, false)); |
| 103 | 108 |
| 104 // Host path cookies | 109 // Host path cookies |
| 105 EXPECT_TRUE(cm->SetCookieWithDetails(url_top_level_domain_plus_2, | 110 EXPECT_TRUE(cm->SetCookieWithDetails(url_top_level_domain_plus_2, |
| 106 "host_path_1", "X", | 111 "host_path_1", "X", |
| 107 "", "/dir1", | 112 "", "/dir1", |
| 108 base::Time(), false, false)); | 113 base::Time(), false, false)); |
| 109 EXPECT_TRUE(cm->SetCookieWithDetails(url_top_level_domain_plus_2, | 114 EXPECT_TRUE(cm->SetCookieWithDetails(url_top_level_domain_plus_2, |
| 110 "host_path_2", "X", | 115 "host_path_2", "X", |
| 111 "", "/dir1/dir2", | 116 "", "/dir1/dir2", |
| 112 base::Time(), false, false)); | 117 base::Time(), false, false)); |
| 113 | 118 |
| 114 EXPECT_EQ(13U, cm->GetAllCookies().size()); | 119 EXPECT_EQ(14U, cm->GetAllCookies().size()); |
| 115 } | 120 } |
| 116 | 121 |
| 117 } // namespace | 122 } // namespace |
| 118 | 123 |
| 119 TEST(ParsedCookieTest, TestBasic) { | 124 TEST(ParsedCookieTest, TestBasic) { |
| 120 net::CookieMonster::ParsedCookie pc("a=b"); | 125 net::CookieMonster::ParsedCookie pc("a=b"); |
| 121 EXPECT_TRUE(pc.IsValid()); | 126 EXPECT_TRUE(pc.IsValid()); |
| 122 EXPECT_FALSE(pc.IsSecure()); | 127 EXPECT_FALSE(pc.IsSecure()); |
| 123 EXPECT_EQ("a", pc.Name()); | 128 EXPECT_EQ("a", pc.Name()); |
| 124 EXPECT_EQ("b", pc.Value()); | 129 EXPECT_EQ("b", pc.Value()); |
| (...skipping 1559 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1684 cm->GetCookies(GURL(kTopLevelDomainPlus3))); | 1689 cm->GetCookies(GURL(kTopLevelDomainPlus3))); |
| 1685 EXPECT_EQ("dom_1=X; dom_2=X; host_2=X; sec_dom=X; sec_host=X", | 1690 EXPECT_EQ("dom_1=X; dom_2=X; host_2=X; sec_dom=X; sec_host=X", |
| 1686 cm->GetCookies(GURL(kTopLevelDomainPlus2Secure))); | 1691 cm->GetCookies(GURL(kTopLevelDomainPlus2Secure))); |
| 1687 EXPECT_EQ("dom_1=X; host_1=X", cm->GetCookies(GURL(kTopLevelDomainPlus1))); | 1692 EXPECT_EQ("dom_1=X; host_1=X", cm->GetCookies(GURL(kTopLevelDomainPlus1))); |
| 1688 EXPECT_EQ("dom_path_2=X; host_path_2=X; dom_path_1=X; host_path_1=X; " | 1693 EXPECT_EQ("dom_path_2=X; host_path_2=X; dom_path_1=X; host_path_1=X; " |
| 1689 "dom_1=X; dom_2=X; host_2=X; sec_dom=X; sec_host=X", | 1694 "dom_1=X; dom_2=X; host_2=X; sec_dom=X; sec_host=X", |
| 1690 cm->GetCookies(GURL(kTopLevelDomainPlus2Secure + | 1695 cm->GetCookies(GURL(kTopLevelDomainPlus2Secure + |
| 1691 std::string("/dir1/dir2/xxx")))); | 1696 std::string("/dir1/dir2/xxx")))); |
| 1692 | 1697 |
| 1693 EXPECT_EQ(5, cm->DeleteAllForHost(GURL(kTopLevelDomainPlus2))); | 1698 EXPECT_EQ(5, cm->DeleteAllForHost(GURL(kTopLevelDomainPlus2))); |
| 1694 EXPECT_EQ(8U, cm->GetAllCookies().size()); | 1699 EXPECT_EQ(9U, cm->GetAllCookies().size()); |
| 1695 | 1700 |
| 1696 EXPECT_EQ("dom_1=X; dom_2=X; dom_3=X; host_3=X", | 1701 EXPECT_EQ("dom_1=X; dom_2=X; dom_3=X; host_3=X", |
| 1697 cm->GetCookies(GURL(kTopLevelDomainPlus3))); | 1702 cm->GetCookies(GURL(kTopLevelDomainPlus3))); |
| 1698 EXPECT_EQ("dom_1=X; dom_2=X; sec_dom=X", | 1703 EXPECT_EQ("dom_1=X; dom_2=X; sec_dom=X", |
| 1699 cm->GetCookies(GURL(kTopLevelDomainPlus2Secure))); | 1704 cm->GetCookies(GURL(kTopLevelDomainPlus2Secure))); |
| 1700 EXPECT_EQ("dom_1=X; host_1=X", cm->GetCookies(GURL(kTopLevelDomainPlus1))); | 1705 EXPECT_EQ("dom_1=X; host_1=X", cm->GetCookies(GURL(kTopLevelDomainPlus1))); |
| 1701 EXPECT_EQ("dom_path_2=X; dom_path_1=X; dom_1=X; dom_2=X; sec_dom=X", | 1706 EXPECT_EQ("dom_path_2=X; dom_path_1=X; dom_1=X; dom_2=X; sec_dom=X", |
| 1702 cm->GetCookies(GURL(kTopLevelDomainPlus2Secure + | 1707 cm->GetCookies(GURL(kTopLevelDomainPlus2Secure + |
| 1703 std::string("/dir1/dir2/xxx")))); | 1708 std::string("/dir1/dir2/xxx")))); |
| 1704 | 1709 |
| 1705 PopulateCmForDeleteAllForHost(cm); | 1710 PopulateCmForDeleteAllForHost(cm); |
| 1706 EXPECT_EQ(5, cm->DeleteAllForHost(GURL(kTopLevelDomainPlus2Secure))); | 1711 EXPECT_EQ(5, cm->DeleteAllForHost(GURL(kTopLevelDomainPlus2Secure))); |
| 1707 EXPECT_EQ(8U, cm->GetAllCookies().size()); | 1712 EXPECT_EQ(9U, cm->GetAllCookies().size()); |
| 1708 | 1713 |
| 1709 EXPECT_EQ("dom_1=X; dom_2=X; dom_3=X; host_3=X", | 1714 EXPECT_EQ("dom_1=X; dom_2=X; dom_3=X; host_3=X", |
| 1710 cm->GetCookies(GURL(kTopLevelDomainPlus3))); | 1715 cm->GetCookies(GURL(kTopLevelDomainPlus3))); |
| 1711 EXPECT_EQ("dom_1=X; dom_2=X; sec_dom=X", | 1716 EXPECT_EQ("dom_1=X; dom_2=X; sec_dom=X", |
| 1712 cm->GetCookies(GURL(kTopLevelDomainPlus2Secure))); | 1717 cm->GetCookies(GURL(kTopLevelDomainPlus2Secure))); |
| 1713 EXPECT_EQ("dom_1=X; host_1=X", cm->GetCookies(GURL(kTopLevelDomainPlus1))); | 1718 EXPECT_EQ("dom_1=X; host_1=X", cm->GetCookies(GURL(kTopLevelDomainPlus1))); |
| 1714 EXPECT_EQ("dom_path_2=X; dom_path_1=X; dom_1=X; dom_2=X; sec_dom=X", | 1719 EXPECT_EQ("dom_path_2=X; dom_path_1=X; dom_1=X; dom_2=X; sec_dom=X", |
| 1715 cm->GetCookies(GURL(kTopLevelDomainPlus2Secure + | 1720 cm->GetCookies(GURL(kTopLevelDomainPlus2Secure + |
| 1716 std::string("/dir1/dir2/xxx")))); | 1721 std::string("/dir1/dir2/xxx")))); |
| 1717 | 1722 |
| 1718 PopulateCmForDeleteAllForHost(cm); | 1723 PopulateCmForDeleteAllForHost(cm); |
| 1719 EXPECT_EQ(5, cm->DeleteAllForHost(GURL(kTopLevelDomainPlus2Secure + | 1724 EXPECT_EQ(5, cm->DeleteAllForHost(GURL(kTopLevelDomainPlus2Secure + |
| 1720 std::string("/dir1/xxx")))); | 1725 std::string("/dir1/xxx")))); |
| 1721 EXPECT_EQ(8U, cm->GetAllCookies().size()); | 1726 EXPECT_EQ(9U, cm->GetAllCookies().size()); |
| 1722 | 1727 |
| 1723 EXPECT_EQ("dom_1=X; dom_2=X; dom_3=X; host_3=X", | 1728 EXPECT_EQ("dom_1=X; dom_2=X; dom_3=X; host_3=X", |
| 1724 cm->GetCookies(GURL(kTopLevelDomainPlus3))); | 1729 cm->GetCookies(GURL(kTopLevelDomainPlus3))); |
| 1725 EXPECT_EQ("dom_1=X; dom_2=X; sec_dom=X", | 1730 EXPECT_EQ("dom_1=X; dom_2=X; sec_dom=X", |
| 1726 cm->GetCookies(GURL(kTopLevelDomainPlus2Secure))); | 1731 cm->GetCookies(GURL(kTopLevelDomainPlus2Secure))); |
| 1727 EXPECT_EQ("dom_1=X; host_1=X", cm->GetCookies(GURL(kTopLevelDomainPlus1))); | 1732 EXPECT_EQ("dom_1=X; host_1=X", cm->GetCookies(GURL(kTopLevelDomainPlus1))); |
| 1728 EXPECT_EQ("dom_path_2=X; dom_path_1=X; dom_1=X; dom_2=X; sec_dom=X", | 1733 EXPECT_EQ("dom_path_2=X; dom_path_1=X; dom_1=X; dom_2=X; sec_dom=X", |
| 1729 cm->GetCookies(GURL(kTopLevelDomainPlus2Secure + | 1734 cm->GetCookies(GURL(kTopLevelDomainPlus2Secure + |
| 1730 std::string("/dir1/dir2/xxx")))); | 1735 std::string("/dir1/dir2/xxx")))); |
| 1731 | 1736 |
| (...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2168 | 2173 |
| 2169 ASSERT_EQ(2, counter->callback_count()); | 2174 ASSERT_EQ(2, counter->callback_count()); |
| 2170 | 2175 |
| 2171 cm->FlushStore(NewRunnableMethod(counter.get(), &CallbackCounter::Callback)); | 2176 cm->FlushStore(NewRunnableMethod(counter.get(), &CallbackCounter::Callback)); |
| 2172 MessageLoop::current()->RunAllPending(); | 2177 MessageLoop::current()->RunAllPending(); |
| 2173 | 2178 |
| 2174 ASSERT_EQ(3, counter->callback_count()); | 2179 ASSERT_EQ(3, counter->callback_count()); |
| 2175 } | 2180 } |
| 2176 | 2181 |
| 2177 } // namespace | 2182 } // namespace |
| OLD | NEW |