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

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: Merged with ToT 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') | no next file with comments »
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 7e8fc7d95259102d145fd8e161af94818c97eca2..250d2c8644812e3dedeea196f5749637b394423f 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
@@ -661,5 +661,55 @@ TEST_F(WebRequestRulesRegistryTest, CheckConsistency) {
EXPECT_TRUE(registry->IsEmpty());
}
+TEST_F(WebRequestRulesRegistryTest, CheckOriginAndPathRegEx) {
+ const char kRule[] =
+ "{ \n"
+ " \"id\": \"rule1\", \n"
+ " \"conditions\": [ \n"
+ " { \n"
+ " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n"
+ " \"url\": {\"originAndPathMatches\": \"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') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698