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