Commit 3d862b6a authored by Eric Roman's avatar Eric Roman Committed by Commit Bot

Add tests for case-insensitivity when parsing <-loopback> and <local>.

Bug: 904598
Change-Id: If760623af28051df78e1209df29e412190eb70b6
Reviewed-on: https://chromium-review.googlesource.com/c/1332290Reviewed-by: default avatarMatt Menke <mmenke@chromium.org>
Commit-Queue: Eric Roman <eroman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607430}
parent c1678cda
...@@ -89,6 +89,7 @@ TEST(ProxyBypassRulesTest, ParseAndMatchBasicHost) { ...@@ -89,6 +89,7 @@ TEST(ProxyBypassRulesTest, ParseAndMatchBasicHost) {
ProxyBypassRules rules; ProxyBypassRules rules;
rules.ParseFromString("wWw.gOogle.com"); rules.ParseFromString("wWw.gOogle.com");
ASSERT_EQ(1u, rules.rules().size()); ASSERT_EQ(1u, rules.rules().size());
// Hostname rules are normalized to lower-case.
EXPECT_EQ("www.google.com", rules.rules()[0]->ToString()); EXPECT_EQ("www.google.com", rules.rules()[0]->ToString());
// All of these match; port, scheme, and non-hostname components don't // All of these match; port, scheme, and non-hostname components don't
...@@ -108,6 +109,7 @@ TEST(ProxyBypassRulesTest, ParseAndMatchBasicDomain) { ...@@ -108,6 +109,7 @@ TEST(ProxyBypassRulesTest, ParseAndMatchBasicDomain) {
ProxyBypassRules rules; ProxyBypassRules rules;
rules.ParseFromString(".gOOgle.com"); rules.ParseFromString(".gOOgle.com");
ASSERT_EQ(1u, rules.rules().size()); ASSERT_EQ(1u, rules.rules().size());
// Hostname rules are normalized to lower-case.
// Note that we inferred this was an "ends with" test. // Note that we inferred this was an "ends with" test.
EXPECT_EQ("*.google.com", rules.rules()[0]->ToString()); EXPECT_EQ("*.google.com", rules.rules()[0]->ToString());
...@@ -128,6 +130,7 @@ TEST(ProxyBypassRulesTest, ParseAndMatchBasicDomainWithPort) { ...@@ -128,6 +130,7 @@ TEST(ProxyBypassRulesTest, ParseAndMatchBasicDomainWithPort) {
ProxyBypassRules rules; ProxyBypassRules rules;
rules.ParseFromString("*.GOOGLE.com:80"); rules.ParseFromString("*.GOOGLE.com:80");
ASSERT_EQ(1u, rules.rules().size()); ASSERT_EQ(1u, rules.rules().size());
// Hostname rules are normalized to lower-case.
EXPECT_EQ("*.google.com:80", rules.rules()[0]->ToString()); EXPECT_EQ("*.google.com:80", rules.rules()[0]->ToString());
// All of these match; scheme, and non-hostname components don't matter. // All of these match; scheme, and non-hostname components don't matter.
...@@ -500,6 +503,19 @@ TEST(ProxyBypassRulesTest, GetRulesToSubtractImplicit) { ...@@ -500,6 +503,19 @@ TEST(ProxyBypassRulesTest, GetRulesToSubtractImplicit) {
EXPECT_EQ("<-loopback>;", ProxyBypassRules::GetRulesToSubtractImplicit()); EXPECT_EQ("<-loopback>;", ProxyBypassRules::GetRulesToSubtractImplicit());
} }
// Verifies that the <local> and <-loopback> rules can be specified in any
// case. This matches how WinInet's parses them.
TEST(ProxyBypassRulesTest, LoopbackAndLocalCaseInsensitive) {
ProxyBypassRules rules;
rules.ParseFromString("<Local>; <-LoopBacK>; <LoCaL>; <-LoOpBack>");
ASSERT_EQ(4u, rules.rules().size());
EXPECT_EQ("<local>", rules.rules()[0]->ToString());
EXPECT_EQ("<-loopback>", rules.rules()[1]->ToString());
EXPECT_EQ("<local>", rules.rules()[2]->ToString());
EXPECT_EQ("<-loopback>", rules.rules()[3]->ToString());
}
} // namespace } // namespace
} // namespace net } // namespace net
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment