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 "chrome/browser/extensions/api/declarative_webrequest/webrequest_action
.h" | 5 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_action
.h" |
6 | 6 |
7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
8 #include "base/json/json_file_value_serializer.h" | 8 #include "base/json/json_file_value_serializer.h" |
9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 #undef CallPerlToRe2Style | 272 #undef CallPerlToRe2Style |
273 } | 273 } |
274 | 274 |
275 TEST_F(WebRequestActionWithThreadsTest, PermissionsToRedirect) { | 275 TEST_F(WebRequestActionWithThreadsTest, PermissionsToRedirect) { |
276 const char kAction[] = | 276 const char kAction[] = |
277 "[{" | 277 "[{" |
278 " \"instanceType\": \"declarativeWebRequest.RedirectRequest\"," | 278 " \"instanceType\": \"declarativeWebRequest.RedirectRequest\"," |
279 " \"redirectUrl\": \"http://www.foobar.com\"" | 279 " \"redirectUrl\": \"http://www.foobar.com\"" |
280 "}]"; | 280 "}]"; |
281 CheckActionNeedsAllUrls(kAction, ON_BEFORE_REQUEST); | 281 CheckActionNeedsAllUrls(kAction, ON_BEFORE_REQUEST); |
| 282 CheckActionNeedsAllUrls(kAction, ON_HEADERS_RECEIVED); |
282 } | 283 } |
283 | 284 |
284 TEST_F(WebRequestActionWithThreadsTest, PermissionsToRedirectByRegEx) { | 285 TEST_F(WebRequestActionWithThreadsTest, PermissionsToRedirectByRegEx) { |
285 const char kAction[] = | 286 const char kAction[] = |
286 "[{" | 287 "[{" |
287 " \"instanceType\": \"declarativeWebRequest.RedirectByRegEx\"," | 288 " \"instanceType\": \"declarativeWebRequest.RedirectByRegEx\"," |
288 " \"from\": \".*\"," | 289 " \"from\": \".*\"," |
289 " \"to\": \"http://www.foobar.com\"" | 290 " \"to\": \"http://www.foobar.com\"" |
290 "}]"; | 291 "}]"; |
291 CheckActionNeedsAllUrls(kAction, ON_BEFORE_REQUEST); | 292 CheckActionNeedsAllUrls(kAction, ON_BEFORE_REQUEST); |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
435 "[{" | 436 "[{" |
436 " \"instanceType\": \"declarativeWebRequest.RedirectToTransparentImage\"" | 437 " \"instanceType\": \"declarativeWebRequest.RedirectToTransparentImage\"" |
437 "}]"; | 438 "}]"; |
438 scoped_ptr<WebRequestActionSet> action_set(CreateSetOfActions(kAction)); | 439 scoped_ptr<WebRequestActionSet> action_set(CreateSetOfActions(kAction)); |
439 | 440 |
440 // Redirecting to transparent images works without full host permissions. | 441 // Redirecting to transparent images works without full host permissions. |
441 EXPECT_TRUE(ActionWorksOnRequest("http://test.org", | 442 EXPECT_TRUE(ActionWorksOnRequest("http://test.org", |
442 extension_->id(), | 443 extension_->id(), |
443 action_set.get(), | 444 action_set.get(), |
444 ON_BEFORE_REQUEST)); | 445 ON_BEFORE_REQUEST)); |
| 446 EXPECT_TRUE(ActionWorksOnRequest("http://test.org", |
| 447 extension_->id(), |
| 448 action_set.get(), |
| 449 ON_HEADERS_RECEIVED)); |
445 } | 450 } |
446 | 451 |
447 TEST_F(WebRequestActionWithThreadsTest, PermissionsToRedirectToEmptyDocument) { | 452 TEST_F(WebRequestActionWithThreadsTest, PermissionsToRedirectToEmptyDocument) { |
448 const char kAction[] = | 453 const char kAction[] = |
449 "[{" | 454 "[{" |
450 " \"instanceType\": \"declarativeWebRequest.RedirectToEmptyDocument\"" | 455 " \"instanceType\": \"declarativeWebRequest.RedirectToEmptyDocument\"" |
451 "}]"; | 456 "}]"; |
452 scoped_ptr<WebRequestActionSet> action_set(CreateSetOfActions(kAction)); | 457 scoped_ptr<WebRequestActionSet> action_set(CreateSetOfActions(kAction)); |
453 | 458 |
454 // Redirecting to the empty document works without full host permissions. | 459 // Redirecting to the empty document works without full host permissions. |
455 EXPECT_TRUE(ActionWorksOnRequest("http://test.org", | 460 EXPECT_TRUE(ActionWorksOnRequest("http://test.org", |
456 extension_->id(), | 461 extension_->id(), |
457 action_set.get(), | 462 action_set.get(), |
458 ON_BEFORE_REQUEST)); | 463 ON_BEFORE_REQUEST)); |
| 464 EXPECT_TRUE(ActionWorksOnRequest("http://test.org", |
| 465 extension_->id(), |
| 466 action_set.get(), |
| 467 ON_HEADERS_RECEIVED)); |
459 } | 468 } |
460 | 469 |
461 TEST_F(WebRequestActionWithThreadsTest, PermissionsToIgnore) { | 470 TEST_F(WebRequestActionWithThreadsTest, PermissionsToIgnore) { |
462 const char kAction[] = | 471 const char kAction[] = |
463 "[{" | 472 "[{" |
464 " \"instanceType\": \"declarativeWebRequest.IgnoreRules\"," | 473 " \"instanceType\": \"declarativeWebRequest.IgnoreRules\"," |
465 " \"lowerPriorityThan\": 123," | 474 " \"lowerPriorityThan\": 123," |
466 " \"hasTag\": \"some_tag\"" | 475 " \"hasTag\": \"some_tag\"" |
467 "}]"; | 476 "}]"; |
468 scoped_ptr<WebRequestActionSet> action_set(CreateSetOfActions(kAction)); | 477 scoped_ptr<WebRequestActionSet> action_set(CreateSetOfActions(kAction)); |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
572 for (WebRequestActionSet::Actions::const_iterator it = | 581 for (WebRequestActionSet::Actions::const_iterator it = |
573 action_set->actions().begin(); | 582 action_set->actions().begin(); |
574 it != action_set->actions().end(); | 583 it != action_set->actions().end(); |
575 ++it) { | 584 ++it) { |
576 EXPECT_EQ(kExpectedNames[index], (*it)->GetName()); | 585 EXPECT_EQ(kExpectedNames[index], (*it)->GetName()); |
577 ++index; | 586 ++index; |
578 } | 587 } |
579 } | 588 } |
580 | 589 |
581 } // namespace extensions | 590 } // namespace extensions |
OLD | NEW |