| OLD | NEW |
| 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 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 247 data = WebRequestData(https_request.get(), ON_BEFORE_REQUEST); | 247 data = WebRequestData(https_request.get(), ON_BEFORE_REQUEST); |
| 248 EXPECT_TRUE(condition_empty->IsFulfilled(WebRequestDataWithMatchIds(&data))); | 248 EXPECT_TRUE(condition_empty->IsFulfilled(WebRequestDataWithMatchIds(&data))); |
| 249 } | 249 } |
| 250 | 250 |
| 251 TEST(WebRequestConditionTest, CreateConditionSet) { | 251 TEST(WebRequestConditionTest, CreateConditionSet) { |
| 252 // Necessary for TestURLRequest. | 252 // Necessary for TestURLRequest. |
| 253 base::MessageLoopForIO message_loop; | 253 base::MessageLoopForIO message_loop; |
| 254 URLMatcher matcher; | 254 URLMatcher matcher; |
| 255 | 255 |
| 256 WebRequestConditionSet::Values conditions; | 256 WebRequestConditionSet::Values conditions; |
| 257 conditions.push_back(linked_ptr<base::Value>(base::test::ParseJson( | 257 conditions.push_back(base::test::ParseJson( |
| 258 "{ \n" | 258 "{ \n" |
| 259 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" | 259 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" |
| 260 " \"url\": { \n" | 260 " \"url\": { \n" |
| 261 " \"hostSuffix\": \"example.com\", \n" | 261 " \"hostSuffix\": \"example.com\", \n" |
| 262 " \"schemes\": [\"http\"], \n" | 262 " \"schemes\": [\"http\"], \n" |
| 263 " }, \n" | 263 " }, \n" |
| 264 "}").release())); | 264 "}")); |
| 265 conditions.push_back(linked_ptr<base::Value>(base::test::ParseJson( | 265 conditions.push_back(base::test::ParseJson( |
| 266 "{ \n" | 266 "{ \n" |
| 267 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" | 267 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" |
| 268 " \"url\": { \n" | 268 " \"url\": { \n" |
| 269 " \"hostSuffix\": \"example.com\", \n" | 269 " \"hostSuffix\": \"example.com\", \n" |
| 270 " \"hostPrefix\": \"www\", \n" | 270 " \"hostPrefix\": \"www\", \n" |
| 271 " \"schemes\": [\"https\"], \n" | 271 " \"schemes\": [\"https\"], \n" |
| 272 " }, \n" | 272 " }, \n" |
| 273 "}").release())); | 273 "}")); |
| 274 | 274 |
| 275 // Test insertion | 275 // Test insertion |
| 276 std::string error; | 276 std::string error; |
| 277 scoped_ptr<WebRequestConditionSet> result = WebRequestConditionSet::Create( | 277 scoped_ptr<WebRequestConditionSet> result = WebRequestConditionSet::Create( |
| 278 NULL, matcher.condition_factory(), conditions, &error); | 278 NULL, matcher.condition_factory(), conditions, &error); |
| 279 EXPECT_EQ("", error); | 279 EXPECT_EQ("", error); |
| 280 ASSERT_TRUE(result.get()); | 280 ASSERT_TRUE(result.get()); |
| 281 EXPECT_EQ(2u, result->conditions().size()); | 281 EXPECT_EQ(2u, result->conditions().size()); |
| 282 | 282 |
| 283 // Tell the URLMatcher about our shiny new patterns. | 283 // Tell the URLMatcher about our shiny new patterns. |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 316 data.request = https_foo_request.get(); | 316 data.request = https_foo_request.get(); |
| 317 EXPECT_FALSE(result->IsFulfilled(-1, request_data)); | 317 EXPECT_FALSE(result->IsFulfilled(-1, request_data)); |
| 318 } | 318 } |
| 319 | 319 |
| 320 TEST(WebRequestConditionTest, TestPortFilter) { | 320 TEST(WebRequestConditionTest, TestPortFilter) { |
| 321 // Necessary for TestURLRequest. | 321 // Necessary for TestURLRequest. |
| 322 base::MessageLoopForIO message_loop; | 322 base::MessageLoopForIO message_loop; |
| 323 URLMatcher matcher; | 323 URLMatcher matcher; |
| 324 | 324 |
| 325 WebRequestConditionSet::Values conditions; | 325 WebRequestConditionSet::Values conditions; |
| 326 conditions.push_back(linked_ptr<base::Value>(base::test::ParseJson( | 326 conditions.push_back(base::test::ParseJson( |
| 327 "{ \n" | 327 "{ \n" |
| 328 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" | 328 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" |
| 329 " \"url\": { \n" | 329 " \"url\": { \n" |
| 330 " \"ports\": [80, [1000, 1010]], \n" // Allow 80;1000-1010. | 330 " \"ports\": [80, [1000, 1010]], \n" // Allow 80;1000-1010. |
| 331 " \"hostSuffix\": \"example.com\", \n" | 331 " \"hostSuffix\": \"example.com\", \n" |
| 332 " }, \n" | 332 " }, \n" |
| 333 "}").release())); | 333 "}")); |
| 334 | 334 |
| 335 // Test insertion | 335 // Test insertion |
| 336 std::string error; | 336 std::string error; |
| 337 scoped_ptr<WebRequestConditionSet> result = WebRequestConditionSet::Create( | 337 scoped_ptr<WebRequestConditionSet> result = WebRequestConditionSet::Create( |
| 338 NULL, matcher.condition_factory(), conditions, &error); | 338 NULL, matcher.condition_factory(), conditions, &error); |
| 339 EXPECT_EQ("", error); | 339 EXPECT_EQ("", error); |
| 340 ASSERT_TRUE(result.get()); | 340 ASSERT_TRUE(result.get()); |
| 341 EXPECT_EQ(1u, result->conditions().size()); | 341 EXPECT_EQ(1u, result->conditions().size()); |
| 342 | 342 |
| 343 // Tell the URLMatcher about our shiny new patterns. | 343 // Tell the URLMatcher about our shiny new patterns. |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 397 // filters. | 397 // filters. |
| 398 " \"requestHeaders\": [{}], \n" | 398 " \"requestHeaders\": [{}], \n" |
| 399 " \"responseHeaders\": [{}], \n" | 399 " \"responseHeaders\": [{}], \n" |
| 400 "}"), | 400 "}"), |
| 401 &error); | 401 &error); |
| 402 EXPECT_FALSE(error.empty()); | 402 EXPECT_FALSE(error.empty()); |
| 403 EXPECT_FALSE(result.get()); | 403 EXPECT_FALSE(result.get()); |
| 404 } | 404 } |
| 405 | 405 |
| 406 } // namespace extensions | 406 } // namespace extensions |
| OLD | NEW |