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

Unified Diff: chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry_unittest.cc

Issue 13699007: Provide a mechanism to the decl. WebRequest API to match URLs without the query against a RegEx (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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
« no previous file with comments | « no previous file | chrome/common/extensions/api/events.json » ('j') | chrome/common/extensions/api/events.json » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry_unittest.cc
diff --git a/chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry_unittest.cc b/chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry_unittest.cc
index 1f82ff1d0da47f5098bf8b7bdae1c3aad0a5a132..942977a3bf90a4f49e0c6bf3e2f5095108915c1f 100644
--- a/chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry_unittest.cc
+++ b/chrome/browser/extensions/api/declarative_webrequest/webrequest_rules_registry_unittest.cc
@@ -592,5 +592,55 @@ TEST_F(WebRequestRulesRegistryTest, CheckConsistency) {
EXPECT_TRUE(registry->IsEmpty());
}
+TEST_F(WebRequestRulesRegistryTest, CheckStrippedUrlRegEx) {
+ const char kRule[] =
+ "{ \n"
+ " \"id\": \"rule1\", \n"
+ " \"conditions\": [ \n"
+ " { \n"
+ " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n"
+ " \"url\": {\"strippedUrlMatches\": \"fo+.com\"} \n"
+ " } \n"
+ " ], \n"
+ " \"actions\": [ \n"
+ " { \n"
+ " \"instanceType\": \"declarativeWebRequest.RedirectRequest\",\n"
+ " \"redirectUrl\": \"http://bar.com\" \n"
+ " } \n"
+ " ], \n"
+ " \"priority\": 200 \n"
+ "} ";
+
+ scoped_ptr<Value> value(base::JSONReader::Read(kRule));
+ ASSERT_TRUE(value.get());
+
+ std::vector<linked_ptr<RulesRegistry::Rule> > rules;
+ rules.push_back(make_linked_ptr(new RulesRegistry::Rule));
+ ASSERT_TRUE(RulesRegistry::Rule::Populate(*value, rules.back().get()));
+
+ scoped_refptr<WebRequestRulesRegistry> registry(
+ new TestWebRequestRulesRegistry());
+
+ URLMatcher matcher;
+ std::string error = registry->AddRulesImpl(kExtensionId, rules);
+ EXPECT_EQ("", error);
+
+ net::TestURLRequestContext context;
+ std::list<LinkedPtrEventResponseDelta> deltas;
+
+ // No match because match is in the query parameter.
+ GURL url1("http://bar.com/index.html?foo.com");
+ net::TestURLRequest request1(url1, NULL, &context, NULL);
+ WebRequestData request_data1(&request1, ON_BEFORE_REQUEST);
+ deltas = registry->CreateDeltas(NULL, request_data1, false);
+ EXPECT_EQ(0u, deltas.size());
+
+ // This is a correct match.
+ GURL url2("http://foo.com/index.html");
+ net::TestURLRequest request2(url2, NULL, &context, NULL);
+ WebRequestData request_data2(&request2, ON_BEFORE_REQUEST);
+ deltas = registry->CreateDeltas(NULL, request_data2, false);
+ EXPECT_EQ(1u, deltas.size());
+}
} // namespace extensions
« no previous file with comments | « no previous file | chrome/common/extensions/api/events.json » ('j') | chrome/common/extensions/api/events.json » ('J')

Powered by Google App Engine
This is Rietveld 408576698