cookie_options_unittest.cc 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. // Copyright 2021 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "net/cookies/cookie_options.h"
  5. #include "testing/gtest/include/gtest/gtest.h"
  6. namespace net {
  7. namespace {
  8. TEST(CookieOptionsTest, SameSiteCookieContextType) {
  9. using ContextType = CookieOptions::SameSiteCookieContext::ContextType;
  10. EXPECT_EQ("0", ::testing::PrintToString(ContextType::CROSS_SITE));
  11. EXPECT_EQ("1",
  12. ::testing::PrintToString(ContextType::SAME_SITE_LAX_METHOD_UNSAFE));
  13. EXPECT_EQ("2", ::testing::PrintToString(ContextType::SAME_SITE_LAX));
  14. EXPECT_EQ("3", ::testing::PrintToString(ContextType::SAME_SITE_STRICT));
  15. }
  16. TEST(CookieOptionsTest, SameSiteCookieContext) {
  17. using SameSiteCookieContext = CookieOptions::SameSiteCookieContext;
  18. SameSiteCookieContext cross_cross(
  19. SameSiteCookieContext::ContextType::CROSS_SITE);
  20. SameSiteCookieContext lax_lax(
  21. SameSiteCookieContext::ContextType::SAME_SITE_LAX);
  22. SameSiteCookieContext strict_strict(
  23. SameSiteCookieContext::ContextType::SAME_SITE_STRICT);
  24. SameSiteCookieContext strict_cross(
  25. SameSiteCookieContext::ContextType::SAME_SITE_STRICT,
  26. SameSiteCookieContext::ContextType::CROSS_SITE);
  27. SameSiteCookieContext strict_lax(
  28. SameSiteCookieContext::ContextType::SAME_SITE_STRICT,
  29. SameSiteCookieContext::ContextType::SAME_SITE_LAX);
  30. SameSiteCookieContext lax_cross(
  31. SameSiteCookieContext::ContextType::SAME_SITE_LAX,
  32. SameSiteCookieContext::ContextType::CROSS_SITE);
  33. SameSiteCookieContext::ContextMetadata metadata1;
  34. metadata1.cross_site_redirect_downgrade = SameSiteCookieContext::
  35. ContextMetadata::ContextDowngradeType::kStrictToLax;
  36. metadata1.redirect_type_bug_1221316 = SameSiteCookieContext::ContextMetadata::
  37. ContextRedirectTypeBug1221316::kPartialSameSiteRedirect;
  38. SameSiteCookieContext::ContextMetadata metadata2;
  39. metadata2.cross_site_redirect_downgrade = SameSiteCookieContext::
  40. ContextMetadata::ContextDowngradeType::kStrictToLax;
  41. metadata2.redirect_type_bug_1221316 = SameSiteCookieContext::ContextMetadata::
  42. ContextRedirectTypeBug1221316::kPartialSameSiteRedirect;
  43. SameSiteCookieContext context_with_metadata(
  44. SameSiteCookieContext::ContextType::SAME_SITE_STRICT,
  45. SameSiteCookieContext::ContextType::SAME_SITE_STRICT, metadata1,
  46. metadata2);
  47. EXPECT_EQ(
  48. "{ context: 0, schemeful_context: 0, "
  49. "metadata: { cross_site_redirect_downgrade: 0, "
  50. "redirect_type_bug_1221316: 0 }, "
  51. "schemeful_metadata: { cross_site_redirect_downgrade: 0, "
  52. "redirect_type_bug_1221316: 0 } }",
  53. ::testing::PrintToString(cross_cross));
  54. EXPECT_EQ(
  55. "{ context: 2, schemeful_context: 2, "
  56. "metadata: { cross_site_redirect_downgrade: 0, "
  57. "redirect_type_bug_1221316: 0 }, "
  58. "schemeful_metadata: { cross_site_redirect_downgrade: 0, "
  59. "redirect_type_bug_1221316: 0 } }",
  60. ::testing::PrintToString(lax_lax));
  61. EXPECT_EQ(
  62. "{ context: 3, schemeful_context: 3, "
  63. "metadata: { cross_site_redirect_downgrade: 0, "
  64. "redirect_type_bug_1221316: 0 }, "
  65. "schemeful_metadata: { cross_site_redirect_downgrade: 0, "
  66. "redirect_type_bug_1221316: 0 } }",
  67. ::testing::PrintToString(strict_strict));
  68. EXPECT_EQ(
  69. "{ context: 3, schemeful_context: 0, "
  70. "metadata: { cross_site_redirect_downgrade: 0, "
  71. "redirect_type_bug_1221316: 0 }, "
  72. "schemeful_metadata: { cross_site_redirect_downgrade: 0, "
  73. "redirect_type_bug_1221316: 0 } }",
  74. ::testing::PrintToString(strict_cross));
  75. EXPECT_EQ(
  76. "{ context: 3, schemeful_context: 2, "
  77. "metadata: { cross_site_redirect_downgrade: 0, "
  78. "redirect_type_bug_1221316: 0 }, "
  79. "schemeful_metadata: { cross_site_redirect_downgrade: 0, "
  80. "redirect_type_bug_1221316: 0 } }",
  81. ::testing::PrintToString(strict_lax));
  82. EXPECT_EQ(
  83. "{ context: 2, schemeful_context: 0, "
  84. "metadata: { cross_site_redirect_downgrade: 0, "
  85. "redirect_type_bug_1221316: 0 }, "
  86. "schemeful_metadata: { cross_site_redirect_downgrade: 0, "
  87. "redirect_type_bug_1221316: 0 } }",
  88. ::testing::PrintToString(lax_cross));
  89. EXPECT_EQ(
  90. "{ context: 3, schemeful_context: 3, "
  91. "metadata: { cross_site_redirect_downgrade: 1, "
  92. "redirect_type_bug_1221316: 3 }, "
  93. "schemeful_metadata: { cross_site_redirect_downgrade: 1, "
  94. "redirect_type_bug_1221316: 3 } }",
  95. ::testing::PrintToString(context_with_metadata));
  96. }
  97. } // namespace
  98. } // namespace net