Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(366)

Unified Diff: third_party/WebKit/Source/core/origin_trials/OriginTrialContextTest.cpp

Issue 1802773002: Support loading trial tokens from HTTP headers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: clarify comment Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/origin_trials/OriginTrialContextTest.cpp
diff --git a/third_party/WebKit/Source/core/origin_trials/OriginTrialContextTest.cpp b/third_party/WebKit/Source/core/origin_trials/OriginTrialContextTest.cpp
index 64a24a383e3502e068aad4d1f70c5e54788ed8be..acd9a2640b1dbca62224819fe84e55213d63319e 100644
--- a/third_party/WebKit/Source/core/origin_trials/OriginTrialContextTest.cpp
+++ b/third_party/WebKit/Source/core/origin_trials/OriginTrialContextTest.cpp
@@ -231,4 +231,60 @@ TEST_F(OriginTrialContextTest, EnabledNonSecureRegisteredOriginWithoutErrorMessa
EXPECT_EQ(0, tokenValidator()->callCount());
}
+TEST_F(OriginTrialContextTest, ParseHeaderValue)
+{
+ std::unique_ptr<Vector<String>> tokens;
+ ASSERT_TRUE(tokens = OriginTrialContext::parseHeaderValue(" foo\t "));
+ ASSERT_EQ(1u, tokens->size());
+ EXPECT_EQ("foo", (*tokens)[0]);
+
+ ASSERT_TRUE(tokens = OriginTrialContext::parseHeaderValue(" \" bar \" "));
+ ASSERT_EQ(1u, tokens->size());
+ EXPECT_EQ(" bar ", (*tokens)[0]);
+
+ ASSERT_TRUE(tokens = OriginTrialContext::parseHeaderValue(" foo, bar"));
+ ASSERT_EQ(2u, tokens->size());
+ EXPECT_EQ("foo", (*tokens)[0]);
+ EXPECT_EQ("bar", (*tokens)[1]);
+
+ ASSERT_TRUE(tokens = OriginTrialContext::parseHeaderValue(",foo, ,bar,,' ', ''"));
+ ASSERT_EQ(3u, tokens->size());
+ EXPECT_EQ("foo", (*tokens)[0]);
+ EXPECT_EQ("bar", (*tokens)[1]);
+ EXPECT_EQ(" ", (*tokens)[2]);
+
+ ASSERT_TRUE(tokens = OriginTrialContext::parseHeaderValue(" \"abc\" , 'def',g"));
+ ASSERT_EQ(3u, tokens->size());
+ EXPECT_EQ("abc", (*tokens)[0]);
+ EXPECT_EQ("def", (*tokens)[1]);
+ EXPECT_EQ("g", (*tokens)[2]);
+
+ ASSERT_TRUE(tokens = OriginTrialContext::parseHeaderValue(" \"a\\b\\\"c'd\", 'e\\f\\'g' "));
+ ASSERT_EQ(2u, tokens->size());
+ EXPECT_EQ("ab\"c'd", (*tokens)[0]);
+ EXPECT_EQ("ef'g", (*tokens)[1]);
+
+ ASSERT_TRUE(tokens = OriginTrialContext::parseHeaderValue("\"ab,c\" , 'd,e'"));
+ ASSERT_EQ(2u, tokens->size());
+ EXPECT_EQ("ab,c", (*tokens)[0]);
+ EXPECT_EQ("d,e", (*tokens)[1]);
+
+ ASSERT_TRUE(tokens = OriginTrialContext::parseHeaderValue(" "));
+ EXPECT_EQ(0u, tokens->size());
+
+ ASSERT_TRUE(tokens = OriginTrialContext::parseHeaderValue(""));
+ EXPECT_EQ(0u, tokens->size());
+
+ ASSERT_TRUE(tokens = OriginTrialContext::parseHeaderValue(" ,, \"\" "));
+ EXPECT_EQ(0u, tokens->size());
+}
+
+TEST_F(OriginTrialContextTest, ParseHeaderValue_NotCommaSeparated)
+{
+ EXPECT_FALSE(OriginTrialContext::parseHeaderValue("foo bar"));
+ EXPECT_FALSE(OriginTrialContext::parseHeaderValue("\"foo\" 'bar'"));
+ EXPECT_FALSE(OriginTrialContext::parseHeaderValue("foo 'bar'"));
+ EXPECT_FALSE(OriginTrialContext::parseHeaderValue("\"foo\" bar"));
+}
+
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698