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

Side by Side Diff: chrome/browser/extensions/api/declarative_webrequest/webrequest_action_unittest.cc

Issue 11827026: Overhaul JSON Schema Compiler to support a number of features required to (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: yoz Created 7 years, 11 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 | Annotate | Revision Log
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 "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/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_consta nts.h" 9 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_consta nts.h"
10 #include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h" 10 #include "chrome/browser/extensions/api/web_request/web_request_api_helpers.h"
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 EXPECT_TRUE(result->actions().empty()); 72 EXPECT_TRUE(result->actions().empty());
73 EXPECT_EQ(std::numeric_limits<int>::min(), result->GetMinimumPriority()); 73 EXPECT_EQ(std::numeric_limits<int>::min(), result->GetMinimumPriority());
74 74
75 DictionaryValue correct_action; 75 DictionaryValue correct_action;
76 correct_action.SetString(keys::kInstanceTypeKey, keys::kIgnoreRulesType); 76 correct_action.SetString(keys::kInstanceTypeKey, keys::kIgnoreRulesType);
77 correct_action.SetInteger(keys::kLowerPriorityThanKey, 10); 77 correct_action.SetInteger(keys::kLowerPriorityThanKey, 10);
78 DictionaryValue incorrect_action; 78 DictionaryValue incorrect_action;
79 incorrect_action.SetString(keys::kInstanceTypeKey, kUnknownActionType); 79 incorrect_action.SetString(keys::kInstanceTypeKey, kUnknownActionType);
80 80
81 // Test success. 81 // Test success.
82 linked_ptr<json_schema_compiler::any::Any> action1 = make_linked_ptr( 82 input.push_back(linked_ptr<base::Value>(correct_action.DeepCopy()));
83 new json_schema_compiler::any::Any);
84 action1->Init(correct_action);
85 input.push_back(action1);
86 error.clear(); 83 error.clear();
87 result = WebRequestActionSet::Create(input, &error, &bad_message); 84 result = WebRequestActionSet::Create(input, &error, &bad_message);
88 EXPECT_TRUE(error.empty()) << error; 85 EXPECT_TRUE(error.empty()) << error;
89 EXPECT_FALSE(bad_message); 86 EXPECT_FALSE(bad_message);
90 ASSERT_TRUE(result.get()); 87 ASSERT_TRUE(result.get());
91 ASSERT_EQ(1u, result->actions().size()); 88 ASSERT_EQ(1u, result->actions().size());
92 EXPECT_EQ(WebRequestAction::ACTION_IGNORE_RULES, 89 EXPECT_EQ(WebRequestAction::ACTION_IGNORE_RULES,
93 result->actions()[0]->GetType()); 90 result->actions()[0]->GetType());
94 EXPECT_EQ(10, result->GetMinimumPriority()); 91 EXPECT_EQ(10, result->GetMinimumPriority());
95 92
96 // Test failure. 93 // Test failure.
97 linked_ptr<json_schema_compiler::any::Any> action2 = make_linked_ptr( 94 input.push_back(linked_ptr<base::Value>(incorrect_action.DeepCopy()));
98 new json_schema_compiler::any::Any);
99 action2->Init(incorrect_action);
100 input.push_back(action2);
101 error.clear(); 95 error.clear();
102 result = WebRequestActionSet::Create(input, &error, &bad_message); 96 result = WebRequestActionSet::Create(input, &error, &bad_message);
103 EXPECT_NE("", error); 97 EXPECT_NE("", error);
104 EXPECT_FALSE(result.get()); 98 EXPECT_FALSE(result.get());
105 } 99 }
106 100
107 // Test capture group syntax conversions of WebRequestRedirectByRegExAction 101 // Test capture group syntax conversions of WebRequestRedirectByRegExAction
108 TEST(WebRequestActionTest, PerlToRe2Style) { 102 TEST(WebRequestActionTest, PerlToRe2Style) {
109 #define CallPerlToRe2Style WebRequestRedirectByRegExAction::PerlToRe2Style 103 #define CallPerlToRe2Style WebRequestRedirectByRegExAction::PerlToRe2Style
110 // foo$1bar -> foo\1bar 104 // foo$1bar -> foo\1bar
(...skipping 16 matching lines...) Expand all
127 121
128 std::string error; 122 std::string error;
129 bool bad_message = false; 123 bool bad_message = false;
130 scoped_ptr<WebRequestActionSet> action_set; 124 scoped_ptr<WebRequestActionSet> action_set;
131 125
132 // Setup redirect to http://www.foobar.com. 126 // Setup redirect to http://www.foobar.com.
133 base::DictionaryValue redirect; 127 base::DictionaryValue redirect;
134 redirect.SetString(keys::kInstanceTypeKey, keys::kRedirectRequestType); 128 redirect.SetString(keys::kInstanceTypeKey, keys::kRedirectRequestType);
135 redirect.SetString(keys::kRedirectUrlKey, "http://www.foobar.com"); 129 redirect.SetString(keys::kRedirectUrlKey, "http://www.foobar.com");
136 130
137 linked_ptr<json_schema_compiler::any::Any> action = make_linked_ptr(
138 new json_schema_compiler::any::Any);
139 action->Init(redirect);
140 WebRequestActionSet::AnyVector actions; 131 WebRequestActionSet::AnyVector actions;
141 actions.push_back(action); 132 actions.push_back(linked_ptr<base::Value>(redirect.DeepCopy()));
142 133
143 action_set = WebRequestActionSet::Create(actions, &error, &bad_message); 134 action_set = WebRequestActionSet::Create(actions, &error, &bad_message);
144 EXPECT_EQ("", error); 135 EXPECT_EQ("", error);
145 EXPECT_FALSE(bad_message); 136 EXPECT_FALSE(bad_message);
146 ASSERT_TRUE(action.get());
147 137
148 // Check that redirect works on regular URLs but not on protected URLs. 138 // Check that redirect works on regular URLs but not on protected URLs.
149 net::TestURLRequest regular_request(GURL("http://test.com"), NULL, &context); 139 net::TestURLRequest regular_request(GURL("http://test.com"), NULL, &context);
150 std::list<LinkedPtrEventResponseDelta> deltas = 140 std::list<LinkedPtrEventResponseDelta> deltas =
151 action_set->CreateDeltas( 141 action_set->CreateDeltas(
152 NULL, "ext1", 142 NULL, "ext1",
153 WebRequestRule::RequestData(&regular_request, ON_BEFORE_REQUEST), 143 WebRequestRule::RequestData(&regular_request, ON_BEFORE_REQUEST),
154 false, base::Time()); 144 false, base::Time());
155 EXPECT_EQ(1u, deltas.size()); 145 EXPECT_EQ(1u, deltas.size());
156 146
157 net::TestURLRequest protected_request(GURL("http://clients1.google.com"), 147 net::TestURLRequest protected_request(GURL("http://clients1.google.com"),
158 NULL, &context); 148 NULL, &context);
159 deltas = action_set->CreateDeltas( 149 deltas = action_set->CreateDeltas(
160 NULL, "ext1", 150 NULL, "ext1",
161 WebRequestRule::RequestData(&protected_request, ON_BEFORE_REQUEST), 151 WebRequestRule::RequestData(&protected_request, ON_BEFORE_REQUEST),
162 false, base::Time()); 152 false, base::Time());
163 EXPECT_EQ(0u, deltas.size()); 153 EXPECT_EQ(0u, deltas.size());
164 } 154 }
165 155
166 } // namespace extensions 156 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698