Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(176)

Unified Diff: net/cookies/parsed_cookie_unittest.cc

Issue 1773133002: SameSite: Implement 'Strict'/'Lax' attribute parsing. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: mmenke@ Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/cookies/parsed_cookie.cc ('k') | net/extras/sqlite/sqlite_persistent_cookie_store.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/cookies/parsed_cookie_unittest.cc
diff --git a/net/cookies/parsed_cookie_unittest.cc b/net/cookies/parsed_cookie_unittest.cc
index 6cfcf3c5cd49d1cbdefefc382d3397a530cf0f98..0a3048ec3e0f8f31cb25e9192237cda11f7181c4 100644
--- a/net/cookies/parsed_cookie_unittest.cc
+++ b/net/cookies/parsed_cookie_unittest.cc
@@ -92,11 +92,12 @@ TEST(ParsedCookieTest, TestNameless) {
}
TEST(ParsedCookieTest, TestAttributeCase) {
- ParsedCookie pc("BLAHHH; Path=/; sECuRe; httpONLY; sAmESitE; pRIoRitY=hIgH");
+ ParsedCookie pc(
+ "BLAHHH; Path=/; sECuRe; httpONLY; sAmESitE=StrIct; pRIoRitY=hIgH");
EXPECT_TRUE(pc.IsValid());
EXPECT_TRUE(pc.IsSecure());
EXPECT_TRUE(pc.IsHttpOnly());
- EXPECT_TRUE(pc.IsSameSite());
+ EXPECT_EQ(CookieSameSite::STRICT_MODE, pc.SameSite());
EXPECT_TRUE(pc.HasPath());
EXPECT_EQ("/", pc.Path());
EXPECT_EQ("", pc.Name());
@@ -147,7 +148,7 @@ TEST(ParsedCookieTest, MissingValue) {
}
TEST(ParsedCookieTest, Whitespace) {
- ParsedCookie pc(" A = BC ;secure;;; samesite ");
+ ParsedCookie pc(" A = BC ;secure;;; samesite = lax ");
EXPECT_TRUE(pc.IsValid());
EXPECT_EQ("A", pc.Name());
EXPECT_EQ("BC", pc.Value());
@@ -155,7 +156,7 @@ TEST(ParsedCookieTest, Whitespace) {
EXPECT_FALSE(pc.HasDomain());
EXPECT_TRUE(pc.IsSecure());
EXPECT_FALSE(pc.IsHttpOnly());
- EXPECT_TRUE(pc.IsSameSite());
+ EXPECT_EQ(CookieSameSite::LAX_MODE, pc.SameSite());
EXPECT_EQ(COOKIE_PRIORITY_DEFAULT, pc.Priority());
// We parse anything between ; as attributes, so we end up with two
// attributes with an empty string name and value.
@@ -170,7 +171,7 @@ TEST(ParsedCookieTest, MultipleEquals) {
EXPECT_FALSE(pc.HasDomain());
EXPECT_TRUE(pc.IsSecure());
EXPECT_TRUE(pc.IsHttpOnly());
- EXPECT_FALSE(pc.IsSameSite());
+ EXPECT_EQ(CookieSameSite::DEFAULT_MODE, pc.SameSite());
EXPECT_EQ(COOKIE_PRIORITY_DEFAULT, pc.Priority());
EXPECT_EQ(4U, pc.NumberOfAttributes());
}
@@ -356,12 +357,12 @@ TEST(ParsedCookieTest, SetAttributes) {
EXPECT_TRUE(pc.SetIsSecure(true));
EXPECT_TRUE(pc.SetIsHttpOnly(true));
EXPECT_TRUE(pc.SetIsHttpOnly(true));
- EXPECT_TRUE(pc.SetIsSameSite(true));
+ EXPECT_TRUE(pc.SetSameSite("LAX"));
EXPECT_TRUE(pc.SetPriority("HIGH"));
EXPECT_EQ(
"name=value; domain=domain.com; path=/; "
"expires=Sun, 18-Apr-2027 21:06:29 GMT; max-age=12345; secure; "
- "httponly; samesite; priority=HIGH",
+ "httponly; samesite=LAX; priority=HIGH",
pc.ToCookieLine());
EXPECT_TRUE(pc.HasDomain());
EXPECT_TRUE(pc.HasPath());
@@ -369,7 +370,7 @@ TEST(ParsedCookieTest, SetAttributes) {
EXPECT_TRUE(pc.HasMaxAge());
EXPECT_TRUE(pc.IsSecure());
EXPECT_TRUE(pc.IsHttpOnly());
- EXPECT_TRUE(pc.IsSameSite());
+ EXPECT_EQ(CookieSameSite::LAX_MODE, pc.SameSite());
EXPECT_EQ(COOKIE_PRIORITY_HIGH, pc.Priority());
// Clear one attribute from the middle.
@@ -382,7 +383,7 @@ TEST(ParsedCookieTest, SetAttributes) {
EXPECT_EQ(
"name=value; domain=domain.com; path=/foo; "
"expires=Sun, 18-Apr-2027 21:06:29 GMT; max-age=12345; secure; "
- "httponly; samesite; priority=HIGH",
+ "httponly; samesite=LAX; priority=HIGH",
pc.ToCookieLine());
// Set priority to medium.
@@ -390,7 +391,7 @@ TEST(ParsedCookieTest, SetAttributes) {
EXPECT_EQ(
"name=value; domain=domain.com; path=/foo; "
"expires=Sun, 18-Apr-2027 21:06:29 GMT; max-age=12345; secure; "
- "httponly; samesite; priority=medium",
+ "httponly; samesite=LAX; priority=medium",
pc.ToCookieLine());
// Clear the rest and change the name and value.
@@ -400,7 +401,7 @@ TEST(ParsedCookieTest, SetAttributes) {
EXPECT_TRUE(pc.SetMaxAge(std::string()));
EXPECT_TRUE(pc.SetIsSecure(false));
EXPECT_TRUE(pc.SetIsHttpOnly(false));
- EXPECT_TRUE(pc.SetIsSameSite(false));
+ EXPECT_TRUE(pc.SetSameSite(std::string()));
EXPECT_TRUE(pc.SetName("name2"));
EXPECT_TRUE(pc.SetValue("value2"));
EXPECT_TRUE(pc.SetPriority(std::string()));
@@ -410,7 +411,7 @@ TEST(ParsedCookieTest, SetAttributes) {
EXPECT_FALSE(pc.HasMaxAge());
EXPECT_FALSE(pc.IsSecure());
EXPECT_FALSE(pc.IsHttpOnly());
- EXPECT_FALSE(pc.IsSameSite());
+ EXPECT_EQ(CookieSameSite::NO_RESTRICTION, pc.SameSite());
EXPECT_EQ("name2=value2", pc.ToCookieLine());
}
@@ -448,6 +449,40 @@ TEST(ParsedCookieTest, SetPriority) {
EXPECT_EQ(COOKIE_PRIORITY_DEFAULT, pc.Priority());
}
+TEST(ParsedCookieTest, SetSameSite) {
+ ParsedCookie pc("name=value");
+ EXPECT_TRUE(pc.IsValid());
+
+ EXPECT_EQ("name=value", pc.ToCookieLine());
+ EXPECT_EQ(CookieSameSite::DEFAULT_MODE, pc.SameSite());
+
+ // Test each priority, expect case-insensitive compare.
+ EXPECT_TRUE(pc.SetSameSite("strict"));
+ EXPECT_EQ("name=value; samesite=strict", pc.ToCookieLine());
+ EXPECT_EQ(CookieSameSite::STRICT_MODE, pc.SameSite());
+
+ EXPECT_TRUE(pc.SetSameSite("lAx"));
+ EXPECT_EQ("name=value; samesite=lAx", pc.ToCookieLine());
+ EXPECT_EQ(CookieSameSite::LAX_MODE, pc.SameSite());
+
+ EXPECT_TRUE(pc.SetSameSite("LAX"));
+ EXPECT_EQ("name=value; samesite=LAX", pc.ToCookieLine());
+ EXPECT_EQ(CookieSameSite::LAX_MODE, pc.SameSite());
+
+ // Interpret invalid priority values as CookieSameSite::DEFAULT_MODE.
+ EXPECT_TRUE(pc.SetSameSite("Blah"));
+ EXPECT_EQ("name=value; samesite=Blah", pc.ToCookieLine());
+ EXPECT_EQ(CookieSameSite::DEFAULT_MODE, pc.SameSite());
+
+ EXPECT_TRUE(pc.SetSameSite("lowerest"));
+ EXPECT_EQ("name=value; samesite=lowerest", pc.ToCookieLine());
+ EXPECT_EQ(CookieSameSite::DEFAULT_MODE, pc.SameSite());
+
+ EXPECT_TRUE(pc.SetSameSite(""));
+ EXPECT_EQ("name=value", pc.ToCookieLine());
+ EXPECT_EQ(CookieSameSite::DEFAULT_MODE, pc.SameSite());
+}
+
TEST(ParsedCookieTest, InvalidNonAlphanumericChars) {
ParsedCookie pc1("name=\x05");
ParsedCookie pc2(
« no previous file with comments | « net/cookies/parsed_cookie.cc ('k') | net/extras/sqlite/sqlite_persistent_cookie_store.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698