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

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: Don't use //net for parsing headers 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..36719367abf4cfba5435b235b0e94812a66b8d5f 100644
--- a/third_party/WebKit/Source/core/origin_trials/OriginTrialContextTest.cpp
+++ b/third_party/WebKit/Source/core/origin_trials/OriginTrialContextTest.cpp
@@ -231,4 +231,40 @@ TEST_F(OriginTrialContextTest, EnabledNonSecureRegisteredOriginWithoutErrorMessa
EXPECT_EQ(0, tokenValidator()->callCount());
}
+TEST_F(OriginTrialContextTest, ParseHeaderValue)
+{
+ OwnPtr<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(" \"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]);
chasej 2016/04/21 18:24:30 Add a test for a header with length > 0, but conta
chasej 2016/04/21 18:24:30 As far as I can tell from the implementation, pars
Marijn Kruisselbrink 2016/04/21 20:27:09 Done On 2016/04/21 at 18:24:30, chasej wrote:
+}
+
+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