| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "net/cookies/cookie_constants.h" | 7 #include "net/cookies/cookie_constants.h" |
| 8 #include "net/cookies/parsed_cookie.h" | 8 #include "net/cookies/parsed_cookie.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 10 |
| (...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 453 ParsedCookie pc("name=value"); | 453 ParsedCookie pc("name=value"); |
| 454 EXPECT_TRUE(pc.IsValid()); | 454 EXPECT_TRUE(pc.IsValid()); |
| 455 | 455 |
| 456 EXPECT_EQ("name=value", pc.ToCookieLine()); | 456 EXPECT_EQ("name=value", pc.ToCookieLine()); |
| 457 EXPECT_EQ(CookieSameSite::DEFAULT_MODE, pc.SameSite()); | 457 EXPECT_EQ(CookieSameSite::DEFAULT_MODE, pc.SameSite()); |
| 458 | 458 |
| 459 // Test each priority, expect case-insensitive compare. | 459 // Test each priority, expect case-insensitive compare. |
| 460 EXPECT_TRUE(pc.SetSameSite("strict")); | 460 EXPECT_TRUE(pc.SetSameSite("strict")); |
| 461 EXPECT_EQ("name=value; samesite=strict", pc.ToCookieLine()); | 461 EXPECT_EQ("name=value; samesite=strict", pc.ToCookieLine()); |
| 462 EXPECT_EQ(CookieSameSite::STRICT_MODE, pc.SameSite()); | 462 EXPECT_EQ(CookieSameSite::STRICT_MODE, pc.SameSite()); |
| 463 EXPECT_TRUE(pc.IsValid()); |
| 463 | 464 |
| 464 EXPECT_TRUE(pc.SetSameSite("lAx")); | 465 EXPECT_TRUE(pc.SetSameSite("lAx")); |
| 465 EXPECT_EQ("name=value; samesite=lAx", pc.ToCookieLine()); | 466 EXPECT_EQ("name=value; samesite=lAx", pc.ToCookieLine()); |
| 466 EXPECT_EQ(CookieSameSite::LAX_MODE, pc.SameSite()); | 467 EXPECT_EQ(CookieSameSite::LAX_MODE, pc.SameSite()); |
| 468 EXPECT_TRUE(pc.IsValid()); |
| 467 | 469 |
| 468 EXPECT_TRUE(pc.SetSameSite("LAX")); | 470 EXPECT_TRUE(pc.SetSameSite("LAX")); |
| 469 EXPECT_EQ("name=value; samesite=LAX", pc.ToCookieLine()); | 471 EXPECT_EQ("name=value; samesite=LAX", pc.ToCookieLine()); |
| 470 EXPECT_EQ(CookieSameSite::LAX_MODE, pc.SameSite()); | 472 EXPECT_EQ(CookieSameSite::LAX_MODE, pc.SameSite()); |
| 471 | 473 EXPECT_TRUE(pc.IsValid()); |
| 472 // Interpret invalid priority values as CookieSameSite::DEFAULT_MODE. | |
| 473 EXPECT_TRUE(pc.SetSameSite("Blah")); | |
| 474 EXPECT_EQ("name=value; samesite=Blah", pc.ToCookieLine()); | |
| 475 EXPECT_EQ(CookieSameSite::DEFAULT_MODE, pc.SameSite()); | |
| 476 | |
| 477 EXPECT_TRUE(pc.SetSameSite("lowerest")); | |
| 478 EXPECT_EQ("name=value; samesite=lowerest", pc.ToCookieLine()); | |
| 479 EXPECT_EQ(CookieSameSite::DEFAULT_MODE, pc.SameSite()); | |
| 480 | 474 |
| 481 EXPECT_TRUE(pc.SetSameSite("")); | 475 EXPECT_TRUE(pc.SetSameSite("")); |
| 482 EXPECT_EQ("name=value", pc.ToCookieLine()); | 476 EXPECT_EQ("name=value", pc.ToCookieLine()); |
| 483 EXPECT_EQ(CookieSameSite::DEFAULT_MODE, pc.SameSite()); | 477 EXPECT_EQ(CookieSameSite::DEFAULT_MODE, pc.SameSite()); |
| 478 EXPECT_TRUE(pc.IsValid()); |
| 479 |
| 480 EXPECT_TRUE(pc.SetSameSite("Blah")); |
| 481 EXPECT_FALSE(pc.IsValid()); |
| 482 } |
| 483 |
| 484 TEST(ParsedCookieTest, InvalidSameSiteValue) { |
| 485 struct TestCase { |
| 486 const char* cookie; |
| 487 bool valid; |
| 488 CookieSameSite mode; |
| 489 } cases[]{{"n=v; samesite=strict", true, CookieSameSite::STRICT_MODE}, |
| 490 {"n=v; samesite=lax", true, CookieSameSite::LAX_MODE}, |
| 491 {"n=v; samesite=boo", false, CookieSameSite::DEFAULT_MODE}, |
| 492 {"n=v; samesite", false, CookieSameSite::DEFAULT_MODE}}; |
| 493 |
| 494 for (const auto& test : cases) { |
| 495 SCOPED_TRACE(test.cookie); |
| 496 ParsedCookie pc(test.cookie); |
| 497 EXPECT_EQ(test.valid, pc.IsValid()); |
| 498 EXPECT_EQ(test.mode, pc.SameSite()); |
| 499 } |
| 484 } | 500 } |
| 485 | 501 |
| 486 TEST(ParsedCookieTest, InvalidNonAlphanumericChars) { | 502 TEST(ParsedCookieTest, InvalidNonAlphanumericChars) { |
| 487 ParsedCookie pc1("name=\x05"); | 503 ParsedCookie pc1("name=\x05"); |
| 488 ParsedCookie pc2( | 504 ParsedCookie pc2( |
| 489 "name=foo" | 505 "name=foo" |
| 490 "\x1c" | 506 "\x1c" |
| 491 "bar"); | 507 "bar"); |
| 492 ParsedCookie pc3( | 508 ParsedCookie pc3( |
| 493 "name=foobar" | 509 "name=foobar" |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 578 EXPECT_TRUE(pc5.IsValid()); | 594 EXPECT_TRUE(pc5.IsValid()); |
| 579 EXPECT_EQ(pc5_literal, pc5.ToCookieLine()); | 595 EXPECT_EQ(pc5_literal, pc5.ToCookieLine()); |
| 580 EXPECT_TRUE(pc6.IsValid()); | 596 EXPECT_TRUE(pc6.IsValid()); |
| 581 EXPECT_EQ(pc6_literal, pc6.ToCookieLine()); | 597 EXPECT_EQ(pc6_literal, pc6.ToCookieLine()); |
| 582 EXPECT_TRUE(pc7.IsValid()); | 598 EXPECT_TRUE(pc7.IsValid()); |
| 583 EXPECT_EQ(pc7_literal, pc7.ToCookieLine()); | 599 EXPECT_EQ(pc7_literal, pc7.ToCookieLine()); |
| 584 EXPECT_TRUE(pc8.IsValid()); | 600 EXPECT_TRUE(pc8.IsValid()); |
| 585 EXPECT_EQ(pc8_literal, pc8.ToCookieLine()); | 601 EXPECT_EQ(pc8_literal, pc8.ToCookieLine()); |
| 586 } | 602 } |
| 587 } | 603 } |
| OLD | NEW |