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

Side by Side Diff: extensions/browser/api/declarative_webrequest/webrequest_condition_unittest.cc

Issue 598173003: Run clang-modernize -use-nullptr over src/extensions/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "extensions/browser/api/declarative_webrequest/webrequest_condition.h" 5 #include "extensions/browser/api/declarative_webrequest/webrequest_condition.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 17 matching lines...) Expand all
28 // Necessary for TestURLRequest. 28 // Necessary for TestURLRequest.
29 base::MessageLoopForIO message_loop; 29 base::MessageLoopForIO message_loop;
30 URLMatcher matcher; 30 URLMatcher matcher;
31 31
32 std::string error; 32 std::string error;
33 scoped_ptr<WebRequestCondition> result; 33 scoped_ptr<WebRequestCondition> result;
34 34
35 // Test wrong condition name passed. 35 // Test wrong condition name passed.
36 error.clear(); 36 error.clear();
37 result = WebRequestCondition::Create( 37 result = WebRequestCondition::Create(
38 NULL, 38 nullptr,
39 matcher.condition_factory(), 39 matcher.condition_factory(),
40 *base::test::ParseJson( 40 *base::test::ParseJson(
41 "{ \"invalid\": \"foobar\", \n" 41 "{ \"invalid\": \"foobar\", \n"
42 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" 42 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n"
43 "}"), 43 "}"),
44 &error); 44 &error);
45 EXPECT_FALSE(error.empty()); 45 EXPECT_FALSE(error.empty());
46 EXPECT_FALSE(result.get()); 46 EXPECT_FALSE(result.get());
47 47
48 // Test wrong datatype in host_suffix. 48 // Test wrong datatype in host_suffix.
49 error.clear(); 49 error.clear();
50 result = WebRequestCondition::Create( 50 result = WebRequestCondition::Create(
51 NULL, 51 nullptr,
52 matcher.condition_factory(), 52 matcher.condition_factory(),
53 *base::test::ParseJson( 53 *base::test::ParseJson(
54 "{ \n" 54 "{ \n"
55 " \"url\": [], \n" 55 " \"url\": [], \n"
56 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" 56 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n"
57 "}"), 57 "}"),
58 &error); 58 &error);
59 EXPECT_FALSE(error.empty()); 59 EXPECT_FALSE(error.empty());
60 EXPECT_FALSE(result.get()); 60 EXPECT_FALSE(result.get());
61 61
62 // Test success (can we support multiple criteria?) 62 // Test success (can we support multiple criteria?)
63 error.clear(); 63 error.clear();
64 result = WebRequestCondition::Create( 64 result = WebRequestCondition::Create(
65 NULL, 65 nullptr,
66 matcher.condition_factory(), 66 matcher.condition_factory(),
67 *base::test::ParseJson( 67 *base::test::ParseJson(
68 "{ \n" 68 "{ \n"
69 " \"resourceType\": [\"main_frame\"], \n" 69 " \"resourceType\": [\"main_frame\"], \n"
70 " \"url\": { \"hostSuffix\": \"example.com\" }, \n" 70 " \"url\": { \"hostSuffix\": \"example.com\" }, \n"
71 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" 71 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n"
72 "}"), 72 "}"),
73 &error); 73 &error);
74 EXPECT_EQ("", error); 74 EXPECT_EQ("", error);
75 ASSERT_TRUE(result.get()); 75 ASSERT_TRUE(result.get());
76 76
77 URLMatcherConditionSet::Vector url_matcher_condition_set; 77 URLMatcherConditionSet::Vector url_matcher_condition_set;
78 result->GetURLMatcherConditionSets(&url_matcher_condition_set); 78 result->GetURLMatcherConditionSets(&url_matcher_condition_set);
79 matcher.AddConditionSets(url_matcher_condition_set); 79 matcher.AddConditionSets(url_matcher_condition_set);
80 80
81 net::TestURLRequestContext context; 81 net::TestURLRequestContext context;
82 const GURL http_url("http://www.example.com"); 82 const GURL http_url("http://www.example.com");
83 scoped_ptr<net::URLRequest> match_request(context.CreateRequest( 83 scoped_ptr<net::URLRequest> match_request(
84 http_url, net::DEFAULT_PRIORITY, NULL, NULL)); 84 context.CreateRequest(http_url, net::DEFAULT_PRIORITY, nullptr, nullptr));
85 WebRequestData data(match_request.get(), ON_BEFORE_REQUEST); 85 WebRequestData data(match_request.get(), ON_BEFORE_REQUEST);
86 WebRequestDataWithMatchIds request_data(&data); 86 WebRequestDataWithMatchIds request_data(&data);
87 request_data.url_match_ids = matcher.MatchURL(http_url); 87 request_data.url_match_ids = matcher.MatchURL(http_url);
88 EXPECT_EQ(1u, request_data.url_match_ids.size()); 88 EXPECT_EQ(1u, request_data.url_match_ids.size());
89 content::ResourceRequestInfo::AllocateForTesting( 89 content::ResourceRequestInfo::AllocateForTesting(
90 match_request.get(), 90 match_request.get(),
91 content::RESOURCE_TYPE_MAIN_FRAME, 91 content::RESOURCE_TYPE_MAIN_FRAME,
92 NULL, 92 nullptr,
93 -1, 93 -1,
94 -1, 94 -1,
95 -1, 95 -1,
96 false); 96 false);
97 EXPECT_TRUE(result->IsFulfilled(request_data)); 97 EXPECT_TRUE(result->IsFulfilled(request_data));
98 98
99 const GURL https_url("https://www.example.com"); 99 const GURL https_url("https://www.example.com");
100 scoped_ptr<net::URLRequest> wrong_resource_type(context.CreateRequest( 100 scoped_ptr<net::URLRequest> wrong_resource_type(context.CreateRequest(
101 https_url, net::DEFAULT_PRIORITY, NULL, NULL)); 101 https_url, net::DEFAULT_PRIORITY, nullptr, nullptr));
102 data.request = wrong_resource_type.get(); 102 data.request = wrong_resource_type.get();
103 request_data.url_match_ids = matcher.MatchURL(http_url); 103 request_data.url_match_ids = matcher.MatchURL(http_url);
104 // Make sure IsFulfilled does not fail because of URL matching. 104 // Make sure IsFulfilled does not fail because of URL matching.
105 EXPECT_EQ(1u, request_data.url_match_ids.size()); 105 EXPECT_EQ(1u, request_data.url_match_ids.size());
106 content::ResourceRequestInfo::AllocateForTesting( 106 content::ResourceRequestInfo::AllocateForTesting(
107 wrong_resource_type.get(), 107 wrong_resource_type.get(),
108 content::RESOURCE_TYPE_SUB_FRAME, 108 content::RESOURCE_TYPE_SUB_FRAME,
109 NULL, 109 nullptr,
110 -1, 110 -1,
111 -1, 111 -1,
112 -1, 112 -1,
113 false); 113 false);
114 EXPECT_FALSE(result->IsFulfilled(request_data)); 114 EXPECT_FALSE(result->IsFulfilled(request_data));
115 } 115 }
116 116
117 TEST(WebRequestConditionTest, CreateConditionFirstPartyForCookies) { 117 TEST(WebRequestConditionTest, CreateConditionFirstPartyForCookies) {
118 // Necessary for TestURLRequest. 118 // Necessary for TestURLRequest.
119 base::MessageLoopForIO message_loop; 119 base::MessageLoopForIO message_loop;
120 URLMatcher matcher; 120 URLMatcher matcher;
121 121
122 std::string error; 122 std::string error;
123 scoped_ptr<WebRequestCondition> result; 123 scoped_ptr<WebRequestCondition> result;
124 124
125 result = WebRequestCondition::Create( 125 result = WebRequestCondition::Create(
126 NULL, 126 nullptr,
127 matcher.condition_factory(), 127 matcher.condition_factory(),
128 *base::test::ParseJson( 128 *base::test::ParseJson(
129 "{ \n" 129 "{ \n"
130 " \"firstPartyForCookiesUrl\": { \"hostPrefix\": \"fpfc\"}, \n" 130 " \"firstPartyForCookiesUrl\": { \"hostPrefix\": \"fpfc\"}, \n"
131 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" 131 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n"
132 "}"), 132 "}"),
133 &error); 133 &error);
134 EXPECT_EQ("", error); 134 EXPECT_EQ("", error);
135 ASSERT_TRUE(result.get()); 135 ASSERT_TRUE(result.get());
136 136
137 URLMatcherConditionSet::Vector url_matcher_condition_set; 137 URLMatcherConditionSet::Vector url_matcher_condition_set;
138 result->GetURLMatcherConditionSets(&url_matcher_condition_set); 138 result->GetURLMatcherConditionSets(&url_matcher_condition_set);
139 matcher.AddConditionSets(url_matcher_condition_set); 139 matcher.AddConditionSets(url_matcher_condition_set);
140 140
141 net::TestURLRequestContext context; 141 net::TestURLRequestContext context;
142 const GURL http_url("http://www.example.com"); 142 const GURL http_url("http://www.example.com");
143 const GURL first_party_url("http://fpfc.example.com"); 143 const GURL first_party_url("http://fpfc.example.com");
144 scoped_ptr<net::URLRequest> match_request(context.CreateRequest( 144 scoped_ptr<net::URLRequest> match_request(
145 http_url, net::DEFAULT_PRIORITY, NULL, NULL)); 145 context.CreateRequest(http_url, net::DEFAULT_PRIORITY, nullptr, nullptr));
146 WebRequestData data(match_request.get(), ON_BEFORE_REQUEST); 146 WebRequestData data(match_request.get(), ON_BEFORE_REQUEST);
147 WebRequestDataWithMatchIds request_data(&data); 147 WebRequestDataWithMatchIds request_data(&data);
148 request_data.url_match_ids = matcher.MatchURL(http_url); 148 request_data.url_match_ids = matcher.MatchURL(http_url);
149 EXPECT_EQ(0u, request_data.url_match_ids.size()); 149 EXPECT_EQ(0u, request_data.url_match_ids.size());
150 request_data.first_party_url_match_ids = matcher.MatchURL(first_party_url); 150 request_data.first_party_url_match_ids = matcher.MatchURL(first_party_url);
151 EXPECT_EQ(1u, request_data.first_party_url_match_ids.size()); 151 EXPECT_EQ(1u, request_data.first_party_url_match_ids.size());
152 content::ResourceRequestInfo::AllocateForTesting( 152 content::ResourceRequestInfo::AllocateForTesting(
153 match_request.get(), 153 match_request.get(),
154 content::RESOURCE_TYPE_MAIN_FRAME, 154 content::RESOURCE_TYPE_MAIN_FRAME,
155 NULL, 155 nullptr,
156 -1, 156 -1,
157 -1, 157 -1,
158 -1, 158 -1,
159 false); 159 false);
160 EXPECT_TRUE(result->IsFulfilled(request_data)); 160 EXPECT_TRUE(result->IsFulfilled(request_data));
161 } 161 }
162 162
163 // Conditions without UrlFilter attributes need to be independent of URL 163 // Conditions without UrlFilter attributes need to be independent of URL
164 // matching results. We test here that: 164 // matching results. We test here that:
165 // 1. A non-empty condition without UrlFilter attributes is fulfilled iff its 165 // 1. A non-empty condition without UrlFilter attributes is fulfilled iff its
166 // attributes are fulfilled. 166 // attributes are fulfilled.
167 // 2. An empty condition (in particular, without UrlFilter attributes) is 167 // 2. An empty condition (in particular, without UrlFilter attributes) is
168 // always fulfilled. 168 // always fulfilled.
169 TEST(WebRequestConditionTest, NoUrlAttributes) { 169 TEST(WebRequestConditionTest, NoUrlAttributes) {
170 // Necessary for TestURLRequest. 170 // Necessary for TestURLRequest.
171 base::MessageLoopForIO message_loop; 171 base::MessageLoopForIO message_loop;
172 URLMatcher matcher; 172 URLMatcher matcher;
173 std::string error; 173 std::string error;
174 174
175 // The empty condition. 175 // The empty condition.
176 error.clear(); 176 error.clear();
177 scoped_ptr<WebRequestCondition> condition_empty = WebRequestCondition::Create( 177 scoped_ptr<WebRequestCondition> condition_empty = WebRequestCondition::Create(
178 NULL, 178 nullptr,
179 matcher.condition_factory(), 179 matcher.condition_factory(),
180 *base::test::ParseJson( 180 *base::test::ParseJson(
181 "{ \n" 181 "{ \n"
182 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" 182 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n"
183 "}"), 183 "}"),
184 &error); 184 &error);
185 EXPECT_EQ("", error); 185 EXPECT_EQ("", error);
186 ASSERT_TRUE(condition_empty.get()); 186 ASSERT_TRUE(condition_empty.get());
187 187
188 // A condition without a UrlFilter attribute, which is always true. 188 // A condition without a UrlFilter attribute, which is always true.
189 error.clear(); 189 error.clear();
190 scoped_ptr<WebRequestCondition> condition_no_url_true = 190 scoped_ptr<WebRequestCondition> condition_no_url_true =
191 WebRequestCondition::Create( 191 WebRequestCondition::Create(
192 NULL, 192 nullptr,
193 matcher.condition_factory(), 193 matcher.condition_factory(),
194 *base::test::ParseJson( 194 *base::test::ParseJson(
195 "{ \n" 195 "{ \n"
196 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", " 196 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", "
197 "\n" 197 "\n"
198 // There is no "1st party for cookies" URL in the requests below, 198 // There is no "1st party for cookies" URL in the requests below,
199 // therefore all requests are considered first party for cookies. 199 // therefore all requests are considered first party for cookies.
200 " \"thirdPartyForCookies\": false, \n" 200 " \"thirdPartyForCookies\": false, \n"
201 "}"), 201 "}"),
202 &error); 202 &error);
203 EXPECT_EQ("", error); 203 EXPECT_EQ("", error);
204 ASSERT_TRUE(condition_no_url_true.get()); 204 ASSERT_TRUE(condition_no_url_true.get());
205 205
206 // A condition without a UrlFilter attribute, which is always false. 206 // A condition without a UrlFilter attribute, which is always false.
207 error.clear(); 207 error.clear();
208 scoped_ptr<WebRequestCondition> condition_no_url_false = 208 scoped_ptr<WebRequestCondition> condition_no_url_false =
209 WebRequestCondition::Create( 209 WebRequestCondition::Create(
210 NULL, 210 nullptr,
211 matcher.condition_factory(), 211 matcher.condition_factory(),
212 *base::test::ParseJson( 212 *base::test::ParseJson(
213 "{ \n" 213 "{ \n"
214 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", " 214 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", "
215 "\n" 215 "\n"
216 " \"thirdPartyForCookies\": true, \n" 216 " \"thirdPartyForCookies\": true, \n"
217 "}"), 217 "}"),
218 &error); 218 &error);
219 EXPECT_EQ("", error); 219 EXPECT_EQ("", error);
220 ASSERT_TRUE(condition_no_url_false.get()); 220 ASSERT_TRUE(condition_no_url_false.get());
221 221
222 net::TestURLRequestContext context; 222 net::TestURLRequestContext context;
223 scoped_ptr<net::URLRequest> https_request(context.CreateRequest( 223 scoped_ptr<net::URLRequest> https_request(
224 GURL("https://www.example.com"), net::DEFAULT_PRIORITY, NULL, NULL)); 224 context.CreateRequest(GURL("https://www.example.com"),
225 net::DEFAULT_PRIORITY,
226 nullptr,
227 nullptr));
225 228
226 // 1. A non-empty condition without UrlFilter attributes is fulfilled iff its 229 // 1. A non-empty condition without UrlFilter attributes is fulfilled iff its
227 // attributes are fulfilled. 230 // attributes are fulfilled.
228 WebRequestData data(https_request.get(), ON_BEFORE_REQUEST); 231 WebRequestData data(https_request.get(), ON_BEFORE_REQUEST);
229 EXPECT_FALSE( 232 EXPECT_FALSE(
230 condition_no_url_false->IsFulfilled(WebRequestDataWithMatchIds(&data))); 233 condition_no_url_false->IsFulfilled(WebRequestDataWithMatchIds(&data)));
231 234
232 data = WebRequestData(https_request.get(), ON_BEFORE_REQUEST); 235 data = WebRequestData(https_request.get(), ON_BEFORE_REQUEST);
233 EXPECT_TRUE( 236 EXPECT_TRUE(
234 condition_no_url_true->IsFulfilled(WebRequestDataWithMatchIds(&data))); 237 condition_no_url_true->IsFulfilled(WebRequestDataWithMatchIds(&data)));
(...skipping 24 matching lines...) Expand all
259 " \"url\": { \n" 262 " \"url\": { \n"
260 " \"hostSuffix\": \"example.com\", \n" 263 " \"hostSuffix\": \"example.com\", \n"
261 " \"hostPrefix\": \"www\", \n" 264 " \"hostPrefix\": \"www\", \n"
262 " \"schemes\": [\"https\"], \n" 265 " \"schemes\": [\"https\"], \n"
263 " }, \n" 266 " }, \n"
264 "}").release())); 267 "}").release()));
265 268
266 // Test insertion 269 // Test insertion
267 std::string error; 270 std::string error;
268 scoped_ptr<WebRequestConditionSet> result = WebRequestConditionSet::Create( 271 scoped_ptr<WebRequestConditionSet> result = WebRequestConditionSet::Create(
269 NULL, matcher.condition_factory(), conditions, &error); 272 nullptr, matcher.condition_factory(), conditions, &error);
270 EXPECT_EQ("", error); 273 EXPECT_EQ("", error);
271 ASSERT_TRUE(result.get()); 274 ASSERT_TRUE(result.get());
272 EXPECT_EQ(2u, result->conditions().size()); 275 EXPECT_EQ(2u, result->conditions().size());
273 276
274 // Tell the URLMatcher about our shiny new patterns. 277 // Tell the URLMatcher about our shiny new patterns.
275 URLMatcherConditionSet::Vector url_matcher_condition_set; 278 URLMatcherConditionSet::Vector url_matcher_condition_set;
276 result->GetURLMatcherConditionSets(&url_matcher_condition_set); 279 result->GetURLMatcherConditionSets(&url_matcher_condition_set);
277 matcher.AddConditionSets(url_matcher_condition_set); 280 matcher.AddConditionSets(url_matcher_condition_set);
278 281
279 // Test that the result is correct and matches http://www.example.com and 282 // Test that the result is correct and matches http://www.example.com and
280 // https://www.example.com 283 // https://www.example.com
281 GURL http_url("http://www.example.com"); 284 GURL http_url("http://www.example.com");
282 net::TestURLRequestContext context; 285 net::TestURLRequestContext context;
283 scoped_ptr<net::URLRequest> http_request(context.CreateRequest( 286 scoped_ptr<net::URLRequest> http_request(
284 http_url, net::DEFAULT_PRIORITY, NULL, NULL)); 287 context.CreateRequest(http_url, net::DEFAULT_PRIORITY, nullptr, nullptr));
285 WebRequestData data(http_request.get(), ON_BEFORE_REQUEST); 288 WebRequestData data(http_request.get(), ON_BEFORE_REQUEST);
286 WebRequestDataWithMatchIds request_data(&data); 289 WebRequestDataWithMatchIds request_data(&data);
287 request_data.url_match_ids = matcher.MatchURL(http_url); 290 request_data.url_match_ids = matcher.MatchURL(http_url);
288 EXPECT_EQ(1u, request_data.url_match_ids.size()); 291 EXPECT_EQ(1u, request_data.url_match_ids.size());
289 EXPECT_TRUE(result->IsFulfilled(*(request_data.url_match_ids.begin()), 292 EXPECT_TRUE(result->IsFulfilled(*(request_data.url_match_ids.begin()),
290 request_data)); 293 request_data));
291 294
292 GURL https_url("https://www.example.com"); 295 GURL https_url("https://www.example.com");
293 request_data.url_match_ids = matcher.MatchURL(https_url); 296 request_data.url_match_ids = matcher.MatchURL(https_url);
294 EXPECT_EQ(1u, request_data.url_match_ids.size()); 297 EXPECT_EQ(1u, request_data.url_match_ids.size());
295 scoped_ptr<net::URLRequest> https_request(context.CreateRequest( 298 scoped_ptr<net::URLRequest> https_request(context.CreateRequest(
296 https_url, net::DEFAULT_PRIORITY, NULL, NULL)); 299 https_url, net::DEFAULT_PRIORITY, nullptr, nullptr));
297 data.request = https_request.get(); 300 data.request = https_request.get();
298 EXPECT_TRUE(result->IsFulfilled(*(request_data.url_match_ids.begin()), 301 EXPECT_TRUE(result->IsFulfilled(*(request_data.url_match_ids.begin()),
299 request_data)); 302 request_data));
300 303
301 // Check that both, hostPrefix and hostSuffix are evaluated. 304 // Check that both, hostPrefix and hostSuffix are evaluated.
302 GURL https_foo_url("https://foo.example.com"); 305 GURL https_foo_url("https://foo.example.com");
303 request_data.url_match_ids = matcher.MatchURL(https_foo_url); 306 request_data.url_match_ids = matcher.MatchURL(https_foo_url);
304 EXPECT_EQ(0u, request_data.url_match_ids.size()); 307 EXPECT_EQ(0u, request_data.url_match_ids.size());
305 scoped_ptr<net::URLRequest> https_foo_request(context.CreateRequest( 308 scoped_ptr<net::URLRequest> https_foo_request(context.CreateRequest(
306 https_foo_url, net::DEFAULT_PRIORITY, NULL, NULL)); 309 https_foo_url, net::DEFAULT_PRIORITY, nullptr, nullptr));
307 data.request = https_foo_request.get(); 310 data.request = https_foo_request.get();
308 EXPECT_FALSE(result->IsFulfilled(-1, request_data)); 311 EXPECT_FALSE(result->IsFulfilled(-1, request_data));
309 } 312 }
310 313
311 TEST(WebRequestConditionTest, TestPortFilter) { 314 TEST(WebRequestConditionTest, TestPortFilter) {
312 // Necessary for TestURLRequest. 315 // Necessary for TestURLRequest.
313 base::MessageLoopForIO message_loop; 316 base::MessageLoopForIO message_loop;
314 URLMatcher matcher; 317 URLMatcher matcher;
315 318
316 WebRequestConditionSet::AnyVector conditions; 319 WebRequestConditionSet::AnyVector conditions;
317 conditions.push_back(linked_ptr<base::Value>(base::test::ParseJson( 320 conditions.push_back(linked_ptr<base::Value>(base::test::ParseJson(
318 "{ \n" 321 "{ \n"
319 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" 322 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n"
320 " \"url\": { \n" 323 " \"url\": { \n"
321 " \"ports\": [80, [1000, 1010]], \n" // Allow 80;1000-1010. 324 " \"ports\": [80, [1000, 1010]], \n" // Allow 80;1000-1010.
322 " \"hostSuffix\": \"example.com\", \n" 325 " \"hostSuffix\": \"example.com\", \n"
323 " }, \n" 326 " }, \n"
324 "}").release())); 327 "}").release()));
325 328
326 // Test insertion 329 // Test insertion
327 std::string error; 330 std::string error;
328 scoped_ptr<WebRequestConditionSet> result = WebRequestConditionSet::Create( 331 scoped_ptr<WebRequestConditionSet> result = WebRequestConditionSet::Create(
329 NULL, matcher.condition_factory(), conditions, &error); 332 nullptr, matcher.condition_factory(), conditions, &error);
330 EXPECT_EQ("", error); 333 EXPECT_EQ("", error);
331 ASSERT_TRUE(result.get()); 334 ASSERT_TRUE(result.get());
332 EXPECT_EQ(1u, result->conditions().size()); 335 EXPECT_EQ(1u, result->conditions().size());
333 336
334 // Tell the URLMatcher about our shiny new patterns. 337 // Tell the URLMatcher about our shiny new patterns.
335 URLMatcherConditionSet::Vector url_matcher_condition_set; 338 URLMatcherConditionSet::Vector url_matcher_condition_set;
336 result->GetURLMatcherConditionSets(&url_matcher_condition_set); 339 result->GetURLMatcherConditionSets(&url_matcher_condition_set);
337 matcher.AddConditionSets(url_matcher_condition_set); 340 matcher.AddConditionSets(url_matcher_condition_set);
338 341
339 std::set<URLMatcherConditionSet::ID> url_match_ids; 342 std::set<URLMatcherConditionSet::ID> url_match_ids;
340 343
341 // Test various URLs. 344 // Test various URLs.
342 GURL http_url("http://www.example.com"); 345 GURL http_url("http://www.example.com");
343 net::TestURLRequestContext context; 346 net::TestURLRequestContext context;
344 scoped_ptr<net::URLRequest> http_request(context.CreateRequest( 347 scoped_ptr<net::URLRequest> http_request(
345 http_url, net::DEFAULT_PRIORITY, NULL, NULL)); 348 context.CreateRequest(http_url, net::DEFAULT_PRIORITY, nullptr, nullptr));
346 url_match_ids = matcher.MatchURL(http_url); 349 url_match_ids = matcher.MatchURL(http_url);
347 ASSERT_EQ(1u, url_match_ids.size()); 350 ASSERT_EQ(1u, url_match_ids.size());
348 351
349 GURL http_url_80("http://www.example.com:80"); 352 GURL http_url_80("http://www.example.com:80");
350 scoped_ptr<net::URLRequest> http_request_80(context.CreateRequest( 353 scoped_ptr<net::URLRequest> http_request_80(context.CreateRequest(
351 http_url_80, net::DEFAULT_PRIORITY, NULL, NULL)); 354 http_url_80, net::DEFAULT_PRIORITY, nullptr, nullptr));
352 url_match_ids = matcher.MatchURL(http_url_80); 355 url_match_ids = matcher.MatchURL(http_url_80);
353 ASSERT_EQ(1u, url_match_ids.size()); 356 ASSERT_EQ(1u, url_match_ids.size());
354 357
355 GURL http_url_1000("http://www.example.com:1000"); 358 GURL http_url_1000("http://www.example.com:1000");
356 scoped_ptr<net::URLRequest> http_request_1000(context.CreateRequest( 359 scoped_ptr<net::URLRequest> http_request_1000(context.CreateRequest(
357 http_url_1000, net::DEFAULT_PRIORITY, NULL, NULL)); 360 http_url_1000, net::DEFAULT_PRIORITY, nullptr, nullptr));
358 url_match_ids = matcher.MatchURL(http_url_1000); 361 url_match_ids = matcher.MatchURL(http_url_1000);
359 ASSERT_EQ(1u, url_match_ids.size()); 362 ASSERT_EQ(1u, url_match_ids.size());
360 363
361 GURL http_url_2000("http://www.example.com:2000"); 364 GURL http_url_2000("http://www.example.com:2000");
362 scoped_ptr<net::URLRequest> http_request_2000(context.CreateRequest( 365 scoped_ptr<net::URLRequest> http_request_2000(context.CreateRequest(
363 http_url_2000, net::DEFAULT_PRIORITY, NULL, NULL)); 366 http_url_2000, net::DEFAULT_PRIORITY, nullptr, nullptr));
364 url_match_ids = matcher.MatchURL(http_url_2000); 367 url_match_ids = matcher.MatchURL(http_url_2000);
365 ASSERT_EQ(0u, url_match_ids.size()); 368 ASSERT_EQ(0u, url_match_ids.size());
366 } 369 }
367 370
368 // Create a condition with two attributes: one on the request header and one on 371 // Create a condition with two attributes: one on the request header and one on
369 // the response header. The Create() method should fail and complain that it is 372 // the response header. The Create() method should fail and complain that it is
370 // impossible that both conditions are fulfilled at the same time. 373 // impossible that both conditions are fulfilled at the same time.
371 TEST(WebRequestConditionTest, ConditionsWithConflictingStages) { 374 TEST(WebRequestConditionTest, ConditionsWithConflictingStages) {
372 // Necessary for TestURLRequest. 375 // Necessary for TestURLRequest.
373 base::MessageLoopForIO message_loop; 376 base::MessageLoopForIO message_loop;
374 URLMatcher matcher; 377 URLMatcher matcher;
375 378
376 std::string error; 379 std::string error;
377 scoped_ptr<WebRequestCondition> result; 380 scoped_ptr<WebRequestCondition> result;
378 381
379 // Test error on incompatible application stages for involved attributes. 382 // Test error on incompatible application stages for involved attributes.
380 error.clear(); 383 error.clear();
381 result = WebRequestCondition::Create( 384 result = WebRequestCondition::Create(
382 NULL, 385 nullptr,
383 matcher.condition_factory(), 386 matcher.condition_factory(),
384 *base::test::ParseJson( 387 *base::test::ParseJson(
385 "{ \n" 388 "{ \n"
386 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" 389 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n"
387 // Pass a JS array with one empty object to each of the header 390 // Pass a JS array with one empty object to each of the header
388 // filters. 391 // filters.
389 " \"requestHeaders\": [{}], \n" 392 " \"requestHeaders\": [{}], \n"
390 " \"responseHeaders\": [{}], \n" 393 " \"responseHeaders\": [{}], \n"
391 "}"), 394 "}"),
392 &error); 395 &error);
393 EXPECT_FALSE(error.empty()); 396 EXPECT_FALSE(error.empty());
394 EXPECT_FALSE(result.get()); 397 EXPECT_FALSE(result.get());
395 } 398 }
396 399
397 } // namespace extensions 400 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698