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 |