blob: 8fab6e292c95bbd17f192381ff2d6b39a7e38173 [file] [log] [blame]
[email protected]ab2d75c82013-04-19 18:39:041// Copyright 2013 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
Avi Drissman13fc8932015-12-20 04:40:465#include "base/macros.h"
[email protected]ab2d75c82013-04-19 18:39:046#include "net/cookies/cookie_constants.h"
7#include "testing/gtest/include/gtest/gtest.h"
8
9namespace net {
10
11TEST(CookieConstantsTest, TestCookiePriority) {
12 // Basic cases.
13 EXPECT_EQ("low", CookiePriorityToString(COOKIE_PRIORITY_LOW));
14 EXPECT_EQ("medium", CookiePriorityToString(COOKIE_PRIORITY_MEDIUM));
15 EXPECT_EQ("high", CookiePriorityToString(COOKIE_PRIORITY_HIGH));
16
17 EXPECT_EQ(COOKIE_PRIORITY_LOW, StringToCookiePriority("low"));
18 EXPECT_EQ(COOKIE_PRIORITY_MEDIUM, StringToCookiePriority("medium"));
19 EXPECT_EQ(COOKIE_PRIORITY_HIGH, StringToCookiePriority("high"));
20
21 // Case Insensitivity of StringToCookiePriority().
22 EXPECT_EQ(COOKIE_PRIORITY_LOW, StringToCookiePriority("LOW"));
23 EXPECT_EQ(COOKIE_PRIORITY_MEDIUM, StringToCookiePriority("Medium"));
24 EXPECT_EQ(COOKIE_PRIORITY_HIGH, StringToCookiePriority("hiGH"));
25
26 // Value of default priority.
27 EXPECT_EQ(COOKIE_PRIORITY_DEFAULT, COOKIE_PRIORITY_MEDIUM);
28
29 // Numeric values.
30 EXPECT_LT(COOKIE_PRIORITY_LOW, COOKIE_PRIORITY_MEDIUM);
31 EXPECT_LT(COOKIE_PRIORITY_MEDIUM, COOKIE_PRIORITY_HIGH);
32
33 // Unrecognized tokens are interpreted as COOKIE_PRIORITY_DEFAULT.
thestig9d3bb0c2015-01-24 00:49:5134 const char* const bad_tokens[] = {
35 "", "lo", "lowerest", "high ", " high", "0"};
Ryan Sleevi435a3a22018-05-15 02:16:0736 for (const auto* bad_token : bad_tokens) {
37 EXPECT_EQ(COOKIE_PRIORITY_DEFAULT, StringToCookiePriority(bad_token));
[email protected]ab2d75c82013-04-19 18:39:0438 }
39}
40
Lily Chen9a9c08a92019-09-18 00:18:1641// TODO(crbug.com/996811): Add tests for multiple possibly-invalid attributes.
Lily Chen324657c2019-04-19 14:09:4442TEST(CookieConstantsTest, TestCookieSameSite) {
43 // Test case insensitivity
44 EXPECT_EQ(CookieSameSite::NO_RESTRICTION, StringToCookieSameSite("None"));
45 EXPECT_EQ(CookieSameSite::NO_RESTRICTION, StringToCookieSameSite("none"));
46 EXPECT_EQ(CookieSameSite::NO_RESTRICTION, StringToCookieSameSite("NONE"));
47 EXPECT_EQ(CookieSameSite::LAX_MODE, StringToCookieSameSite("Lax"));
48 EXPECT_EQ(CookieSameSite::LAX_MODE, StringToCookieSameSite("LAX"));
49 EXPECT_EQ(CookieSameSite::LAX_MODE, StringToCookieSameSite("lAx"));
50 EXPECT_EQ(CookieSameSite::STRICT_MODE, StringToCookieSameSite("Strict"));
51 EXPECT_EQ(CookieSameSite::STRICT_MODE, StringToCookieSameSite("STRICT"));
52 EXPECT_EQ(CookieSameSite::STRICT_MODE, StringToCookieSameSite("sTrIcT"));
Caleb Raittof1af4b32019-10-28 20:02:3153 EXPECT_EQ(CookieSameSite::UNSPECIFIED, StringToCookieSameSite("extended"));
54 EXPECT_EQ(CookieSameSite::UNSPECIFIED, StringToCookieSameSite("EXTENDED"));
55 EXPECT_EQ(CookieSameSite::UNSPECIFIED, StringToCookieSameSite("ExtenDED"));
Lily Chen324657c2019-04-19 14:09:4456
57 // Unrecognized tokens are interpreted as UNSPECIFIED.
58 const char* const bad_tokens[] = {"", "foo", "none ",
59 "strictest", " none", "0"};
60 for (const auto* bad_token : bad_tokens) {
61 EXPECT_EQ(CookieSameSite::UNSPECIFIED, StringToCookieSameSite(bad_token));
62 }
63}
64
[email protected]ab2d75c82013-04-19 18:39:0465} // namespace net