| Index: chrome/browser/extensions/api/declarative_webrequest/webrequest_action_unittest.cc
|
| diff --git a/chrome/browser/extensions/api/declarative_webrequest/webrequest_action_unittest.cc b/chrome/browser/extensions/api/declarative_webrequest/webrequest_action_unittest.cc
|
| index db4f6ea3ad5430b167ce0c9edbac17d3ecb5f415..e6a26ea5abe2ee80a3b8db5ff04ae63977f073af 100644
|
| --- a/chrome/browser/extensions/api/declarative_webrequest/webrequest_action_unittest.cc
|
| +++ b/chrome/browser/extensions/api/declarative_webrequest/webrequest_action_unittest.cc
|
| @@ -57,6 +57,48 @@ TEST(WebRequestActionTest, CreateAction) {
|
| EXPECT_EQ(WebRequestAction::ACTION_CANCEL_REQUEST, result->GetType());
|
| }
|
|
|
| +TEST(WebRequestActionTest, CreateActionSet) {
|
| + std::string error;
|
| + bool bad_message = false;
|
| + scoped_ptr<WebRequestActionSet> result;
|
| +
|
| + WebRequestActionSet::AnyVector input;
|
| +
|
| + // Test empty input.
|
| + error.clear();
|
| + result = WebRequestActionSet::Create(input, &error, &bad_message);
|
| + EXPECT_TRUE(error.empty()) << error;
|
| + EXPECT_FALSE(bad_message);
|
| + ASSERT_TRUE(result.get());
|
| + EXPECT_TRUE(result->actions().empty());
|
| + EXPECT_EQ(std::numeric_limits<int>::min(), result->GetMinimumPriority());
|
| +
|
| + DictionaryValue correct_action;
|
| + correct_action.SetString(keys::kInstanceTypeKey, keys::kIgnoreRulesType);
|
| + correct_action.SetInteger(keys::kLowerPriorityThanKey, 10);
|
| + DictionaryValue incorrect_action;
|
| + incorrect_action.SetString(keys::kInstanceTypeKey, kUnknownActionType);
|
| +
|
| + // Test success.
|
| + input.push_back(linked_ptr<base::Value>(correct_action.DeepCopy()));
|
| + error.clear();
|
| + result = WebRequestActionSet::Create(input, &error, &bad_message);
|
| + EXPECT_TRUE(error.empty()) << error;
|
| + EXPECT_FALSE(bad_message);
|
| + ASSERT_TRUE(result.get());
|
| + ASSERT_EQ(1u, result->actions().size());
|
| + EXPECT_EQ(WebRequestAction::ACTION_IGNORE_RULES,
|
| + result->actions()[0]->GetType());
|
| + EXPECT_EQ(10, result->GetMinimumPriority());
|
| +
|
| + // Test failure.
|
| + input.push_back(linked_ptr<base::Value>(incorrect_action.DeepCopy()));
|
| + error.clear();
|
| + result = WebRequestActionSet::Create(input, &error, &bad_message);
|
| + EXPECT_NE("", error);
|
| + EXPECT_FALSE(result.get());
|
| +}
|
| +
|
| // Test capture group syntax conversions of WebRequestRedirectByRegExAction
|
| TEST(WebRequestActionTest, PerlToRe2Style) {
|
| #define CallPerlToRe2Style WebRequestRedirectByRegExAction::PerlToRe2Style
|
| @@ -87,16 +129,12 @@ TEST(WebRequestActionTest, TestPermissions) {
|
| redirect.SetString(keys::kInstanceTypeKey, keys::kRedirectRequestType);
|
| redirect.SetString(keys::kRedirectUrlKey, "http://www.foobar.com");
|
|
|
| - linked_ptr<json_schema_compiler::any::Any> action = make_linked_ptr(
|
| - new json_schema_compiler::any::Any);
|
| - action->Init(redirect);
|
| WebRequestActionSet::AnyVector actions;
|
| - actions.push_back(action);
|
| + actions.push_back(linked_ptr<base::Value>(redirect.DeepCopy()));
|
|
|
| action_set = WebRequestActionSet::Create(actions, &error, &bad_message);
|
| EXPECT_EQ("", error);
|
| EXPECT_FALSE(bad_message);
|
| - ASSERT_TRUE(action.get());
|
|
|
| // Check that redirect works on regular URLs but not on protected URLs.
|
| net::TestURLRequest regular_request(GURL("http://test.com"), NULL, &context);
|
|
|