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