summaryrefslogtreecommitdiffstats
path: root/net/base/cookie_monster_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'net/base/cookie_monster_unittest.cc')
-rw-r--r--net/base/cookie_monster_unittest.cc45
1 files changed, 45 insertions, 0 deletions
diff --git a/net/base/cookie_monster_unittest.cc b/net/base/cookie_monster_unittest.cc
index 3ab9953..cf9bb0a 100644
--- a/net/base/cookie_monster_unittest.cc
+++ b/net/base/cookie_monster_unittest.cc
@@ -1761,4 +1761,49 @@ TEST(CookieMonsterTest, UniqueCreationTime) {
}
}
+TEST(CookieMonsterTest, CookieOrdering) {
+ // Put a random set of cookies into a monster and make sure
+ // they're returned in the right order.
+ scoped_refptr<net::CookieMonster> cm = new CookieMonster(NULL, NULL);
+ EXPECT_TRUE(cm->SetCookie(GURL("http://d.c.b.a.google.com/aa/x.html"),
+ "c=1"));
+ EXPECT_TRUE(cm->SetCookie(GURL("http://b.a.google.com/aa/bb/cc/x.html"),
+ "d=1; domain=b.a.google.com"));
+ EXPECT_TRUE(cm->SetCookie(GURL("http://b.a.google.com/aa/bb/cc/x.html"),
+ "a=4; domain=b.a.google.com"));
+ EXPECT_TRUE(cm->SetCookie(GURL("http://c.b.a.google.com/aa/bb/cc/x.html"),
+ "e=1; domain=c.b.a.google.com"));
+ EXPECT_TRUE(cm->SetCookie(GURL("http://d.c.b.a.google.com/aa/bb/x.html"),
+ "b=1"));
+ EXPECT_TRUE(cm->SetCookie(GURL("http://news.bbc.co.uk/midpath/x.html"),
+ "g=10"));
+ EXPECT_EQ("d=1; a=4; e=1; b=1; c=1",
+ cm->GetCookiesWithOptions(
+ GURL("http://d.c.b.a.google.com/aa/bb/cc/dd"),
+ CookieOptions()));
+ {
+ unsigned int i = 0;
+ CookieMonster::CookieList cookies(cm->GetAllCookiesForURL(
+ GURL("http://d.c.b.a.google.com/aa/bb/cc/dd")));
+ ASSERT_EQ(5u, cookies.size());
+ EXPECT_EQ("d", cookies[i++].Name());
+ EXPECT_EQ("a", cookies[i++].Name());
+ EXPECT_EQ("e", cookies[i++].Name());
+ EXPECT_EQ("b", cookies[i++].Name());
+ EXPECT_EQ("c", cookies[i++].Name());
+ }
+
+ {
+ unsigned int i = 0;
+ CookieMonster::CookieList cookies(cm->GetAllCookies());
+ ASSERT_EQ(6u, cookies.size());
+ EXPECT_EQ("d", cookies[i++].Name());
+ EXPECT_EQ("a", cookies[i++].Name());
+ EXPECT_EQ("e", cookies[i++].Name());
+ EXPECT_EQ("g", cookies[i++].Name());
+ EXPECT_EQ("b", cookies[i++].Name());
+ EXPECT_EQ("c", cookies[i++].Name());
+ }
+}
+
} // namespace