| 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_condit
ion.h" | 5 #include "chrome/browser/extensions/api/declarative_webrequest/webrequest_condit
ion.h" |
| 6 | 6 |
| 7 #include <set> | 7 #include <set> |
| 8 | 8 |
| 9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
| 10 #include "base/test/values_test_util.h" | 10 #include "base/test/values_test_util.h" |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 171 dummy_match_set, | 171 dummy_match_set, |
| 172 DeclarativeWebRequestData(&https_request, ON_BEFORE_REQUEST))); | 172 DeclarativeWebRequestData(&https_request, ON_BEFORE_REQUEST))); |
| 173 } | 173 } |
| 174 | 174 |
| 175 TEST(WebRequestConditionTest, CreateConditionSet) { | 175 TEST(WebRequestConditionTest, CreateConditionSet) { |
| 176 // Necessary for TestURLRequest. | 176 // Necessary for TestURLRequest. |
| 177 MessageLoop message_loop(MessageLoop::TYPE_IO); | 177 MessageLoop message_loop(MessageLoop::TYPE_IO); |
| 178 URLMatcher matcher; | 178 URLMatcher matcher; |
| 179 | 179 |
| 180 WebRequestConditionSet::AnyVector conditions; | 180 WebRequestConditionSet::AnyVector conditions; |
| 181 | 181 conditions.push_back(linked_ptr<base::Value>(base::test::ParseJson( |
| 182 linked_ptr<json_schema_compiler::any::Any> condition1 = make_linked_ptr( | |
| 183 new json_schema_compiler::any::Any); | |
| 184 condition1->Init(*base::test::ParseJson( | |
| 185 "{ \n" | 182 "{ \n" |
| 186 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" | 183 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" |
| 187 " \"url\": { \n" | 184 " \"url\": { \n" |
| 188 " \"hostSuffix\": \"example.com\", \n" | 185 " \"hostSuffix\": \"example.com\", \n" |
| 189 " \"schemes\": [\"http\"], \n" | 186 " \"schemes\": [\"http\"], \n" |
| 190 " }, \n" | 187 " }, \n" |
| 191 "}")); | 188 "}").release())); |
| 192 conditions.push_back(condition1); | 189 conditions.push_back(linked_ptr<base::Value>(base::test::ParseJson( |
| 193 | |
| 194 linked_ptr<json_schema_compiler::any::Any> condition2 = make_linked_ptr( | |
| 195 new json_schema_compiler::any::Any); | |
| 196 condition2->Init(*base::test::ParseJson( | |
| 197 "{ \n" | 190 "{ \n" |
| 198 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" | 191 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" |
| 199 " \"url\": { \n" | 192 " \"url\": { \n" |
| 200 " \"hostSuffix\": \"example.com\", \n" | 193 " \"hostSuffix\": \"example.com\", \n" |
| 201 " \"hostPrefix\": \"www\", \n" | 194 " \"hostPrefix\": \"www\", \n" |
| 202 " \"schemes\": [\"https\"], \n" | 195 " \"schemes\": [\"https\"], \n" |
| 203 " }, \n" | 196 " }, \n" |
| 204 "}")); | 197 "}").release())); |
| 205 conditions.push_back(condition2); | |
| 206 | 198 |
| 207 // Test insertion | 199 // Test insertion |
| 208 std::string error; | 200 std::string error; |
| 209 scoped_ptr<WebRequestConditionSet> result = | 201 scoped_ptr<WebRequestConditionSet> result = |
| 210 WebRequestConditionSet::Create(matcher.condition_factory(), | 202 WebRequestConditionSet::Create(matcher.condition_factory(), |
| 211 conditions, &error); | 203 conditions, &error); |
| 212 EXPECT_EQ("", error); | 204 EXPECT_EQ("", error); |
| 213 ASSERT_TRUE(result.get()); | 205 ASSERT_TRUE(result.get()); |
| 214 EXPECT_EQ(2u, result->conditions().size()); | 206 EXPECT_EQ(2u, result->conditions().size()); |
| 215 | 207 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 250 -1, | 242 -1, |
| 251 url_match_ids, | 243 url_match_ids, |
| 252 DeclarativeWebRequestData(&https_foo_request, ON_BEFORE_REQUEST))); | 244 DeclarativeWebRequestData(&https_foo_request, ON_BEFORE_REQUEST))); |
| 253 } | 245 } |
| 254 | 246 |
| 255 TEST(WebRequestConditionTest, TestPortFilter) { | 247 TEST(WebRequestConditionTest, TestPortFilter) { |
| 256 // Necessary for TestURLRequest. | 248 // Necessary for TestURLRequest. |
| 257 MessageLoop message_loop(MessageLoop::TYPE_IO); | 249 MessageLoop message_loop(MessageLoop::TYPE_IO); |
| 258 URLMatcher matcher; | 250 URLMatcher matcher; |
| 259 | 251 |
| 260 linked_ptr<json_schema_compiler::any::Any> any_condition = | 252 WebRequestConditionSet::AnyVector conditions; |
| 261 make_linked_ptr(new json_schema_compiler::any::Any); | 253 conditions.push_back(linked_ptr<base::Value>(base::test::ParseJson( |
| 262 any_condition->Init(*base::test::ParseJson( | |
| 263 "{ \n" | 254 "{ \n" |
| 264 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" | 255 " \"instanceType\": \"declarativeWebRequest.RequestMatcher\", \n" |
| 265 " \"url\": { \n" | 256 " \"url\": { \n" |
| 266 " \"ports\": [80, [1000, 1010]], \n" // Allow 80;1000-1010. | 257 " \"ports\": [80, [1000, 1010]], \n" // Allow 80;1000-1010. |
| 267 " \"hostSuffix\": \"example.com\", \n" | 258 " \"hostSuffix\": \"example.com\", \n" |
| 268 " }, \n" | 259 " }, \n" |
| 269 "}")); | 260 "}").release())); |
| 270 WebRequestConditionSet::AnyVector conditions; | |
| 271 conditions.push_back(any_condition); | |
| 272 | 261 |
| 273 // Test insertion | 262 // Test insertion |
| 274 std::string error; | 263 std::string error; |
| 275 scoped_ptr<WebRequestConditionSet> result = | 264 scoped_ptr<WebRequestConditionSet> result = |
| 276 WebRequestConditionSet::Create(matcher.condition_factory(), | 265 WebRequestConditionSet::Create(matcher.condition_factory(), |
| 277 conditions, &error); | 266 conditions, &error); |
| 278 EXPECT_EQ("", error); | 267 EXPECT_EQ("", error); |
| 279 ASSERT_TRUE(result.get()); | 268 ASSERT_TRUE(result.get()); |
| 280 EXPECT_EQ(1u, result->conditions().size()); | 269 EXPECT_EQ(1u, result->conditions().size()); |
| 281 | 270 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 335 // filters. | 324 // filters. |
| 336 " \"requestHeaders\": [{}], \n" | 325 " \"requestHeaders\": [{}], \n" |
| 337 " \"responseHeaders\": [{}], \n" | 326 " \"responseHeaders\": [{}], \n" |
| 338 "}"), | 327 "}"), |
| 339 &error); | 328 &error); |
| 340 EXPECT_FALSE(error.empty()); | 329 EXPECT_FALSE(error.empty()); |
| 341 EXPECT_FALSE(result.get()); | 330 EXPECT_FALSE(result.get()); |
| 342 } | 331 } |
| 343 | 332 |
| 344 } // namespace extensions | 333 } // namespace extensions |
| OLD | NEW |