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

Side by Side Diff: chrome/browser/extensions/api/declarative/declarative_rule_unittest.cc

Issue 493633003: Browser changes for wiring up RequestContentScript API to shared memory (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ditto Created 6 years, 4 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
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/declarative_rule.h" 5 #include "chrome/browser/extensions/api/declarative/declarative_rule.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/test/values_test_util.h" 9 #include "base/test/values_test_util.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 210
211 // DeclarativeAction 211 // DeclarativeAction
212 212
213 class SummingAction : public base::RefCounted<SummingAction> { 213 class SummingAction : public base::RefCounted<SummingAction> {
214 public: 214 public:
215 typedef int ApplyInfo; 215 typedef int ApplyInfo;
216 216
217 SummingAction(int increment, int min_priority) 217 SummingAction(int increment, int min_priority)
218 : increment_(increment), min_priority_(min_priority) {} 218 : increment_(increment), min_priority_(min_priority) {}
219 219
220 static scoped_refptr<const SummingAction> Create(const Extension* extension, 220 static scoped_refptr<const SummingAction> Create(Profile* profile,
221 const Extension* extension,
221 const base::Value& action, 222 const base::Value& action,
222 std::string* error, 223 std::string* error,
223 bool* bad_message) { 224 bool* bad_message) {
224 int increment = 0; 225 int increment = 0;
225 int min_priority = 0; 226 int min_priority = 0;
226 const base::DictionaryValue* dict = NULL; 227 const base::DictionaryValue* dict = NULL;
227 EXPECT_TRUE(action.GetAsDictionary(&dict)); 228 EXPECT_TRUE(action.GetAsDictionary(&dict));
228 if (dict->HasKey("error")) { 229 if (dict->HasKey("error")) {
229 EXPECT_TRUE(dict->GetString("error", error)); 230 EXPECT_TRUE(dict->GetString("error", error));
230 return scoped_refptr<const SummingAction>(NULL); 231 return scoped_refptr<const SummingAction>(NULL);
(...skipping 30 matching lines...) Expand all
261 typedef DeclarativeActionSet<SummingAction> SummingActionSet; 262 typedef DeclarativeActionSet<SummingAction> SummingActionSet;
262 263
263 TEST(DeclarativeActionTest, ErrorActionSet) { 264 TEST(DeclarativeActionTest, ErrorActionSet) {
264 SummingActionSet::AnyVector actions; 265 SummingActionSet::AnyVector actions;
265 actions.push_back(ScopedToLinkedPtr(ParseJson("{\"value\": 1}"))); 266 actions.push_back(ScopedToLinkedPtr(ParseJson("{\"value\": 1}")));
266 actions.push_back(ScopedToLinkedPtr(ParseJson("{\"error\": \"the error\"}"))); 267 actions.push_back(ScopedToLinkedPtr(ParseJson("{\"error\": \"the error\"}")));
267 268
268 std::string error; 269 std::string error;
269 bool bad = false; 270 bool bad = false;
270 scoped_ptr<SummingActionSet> result = 271 scoped_ptr<SummingActionSet> result =
271 SummingActionSet::Create(NULL, actions, &error, &bad); 272 SummingActionSet::Create(NULL, NULL, actions, &error, &bad);
272 EXPECT_EQ("the error", error); 273 EXPECT_EQ("the error", error);
273 EXPECT_FALSE(bad); 274 EXPECT_FALSE(bad);
274 EXPECT_FALSE(result); 275 EXPECT_FALSE(result);
275 276
276 actions.clear(); 277 actions.clear();
277 actions.push_back(ScopedToLinkedPtr(ParseJson("{\"value\": 1}"))); 278 actions.push_back(ScopedToLinkedPtr(ParseJson("{\"value\": 1}")));
278 actions.push_back(ScopedToLinkedPtr(ParseJson("{\"bad\": 3}"))); 279 actions.push_back(ScopedToLinkedPtr(ParseJson("{\"bad\": 3}")));
279 result = SummingActionSet::Create(NULL, actions, &error, &bad); 280 result = SummingActionSet::Create(NULL, NULL, actions, &error, &bad);
280 EXPECT_EQ("", error); 281 EXPECT_EQ("", error);
281 EXPECT_TRUE(bad); 282 EXPECT_TRUE(bad);
282 EXPECT_FALSE(result); 283 EXPECT_FALSE(result);
283 } 284 }
284 285
285 TEST(DeclarativeActionTest, ApplyActionSet) { 286 TEST(DeclarativeActionTest, ApplyActionSet) {
286 SummingActionSet::AnyVector actions; 287 SummingActionSet::AnyVector actions;
287 actions.push_back(ScopedToLinkedPtr(ParseJson( 288 actions.push_back(ScopedToLinkedPtr(ParseJson(
288 "{\"value\": 1," 289 "{\"value\": 1,"
289 " \"priority\": 5}"))); 290 " \"priority\": 5}")));
290 actions.push_back(ScopedToLinkedPtr(ParseJson("{\"value\": 2}"))); 291 actions.push_back(ScopedToLinkedPtr(ParseJson("{\"value\": 2}")));
291 292
292 // Test insertion 293 // Test insertion
293 std::string error; 294 std::string error;
294 bool bad = false; 295 bool bad = false;
295 scoped_ptr<SummingActionSet> result = 296 scoped_ptr<SummingActionSet> result =
296 SummingActionSet::Create(NULL, actions, &error, &bad); 297 SummingActionSet::Create(NULL, NULL, actions, &error, &bad);
297 EXPECT_EQ("", error); 298 EXPECT_EQ("", error);
298 EXPECT_FALSE(bad); 299 EXPECT_FALSE(bad);
299 ASSERT_TRUE(result); 300 ASSERT_TRUE(result);
300 EXPECT_EQ(2u, result->actions().size()); 301 EXPECT_EQ(2u, result->actions().size());
301 302
302 int sum = 0; 303 int sum = 0;
303 result->Apply("ext_id", base::Time(), &sum); 304 result->Apply("ext_id", base::Time(), &sum);
304 EXPECT_EQ(3, sum); 305 EXPECT_EQ(3, sum);
305 EXPECT_EQ(5, result->GetMinimumPriority()); 306 EXPECT_EQ(5, result->GetMinimumPriority());
306 } 307 }
(...skipping 21 matching lines...) Expand all
328 scoped_refptr<Extension> extension = ExtensionBuilder() 329 scoped_refptr<Extension> extension = ExtensionBuilder()
329 .SetManifest(SimpleManifest()) 330 .SetManifest(SimpleManifest())
330 .SetID(kExtensionId) 331 .SetID(kExtensionId)
331 .Build(); 332 .Build();
332 333
333 base::Time install_time = base::Time::Now(); 334 base::Time install_time = base::Time::Now();
334 335
335 URLMatcher matcher; 336 URLMatcher matcher;
336 std::string error; 337 std::string error;
337 scoped_ptr<Rule> rule(Rule::Create(matcher.condition_factory(), 338 scoped_ptr<Rule> rule(Rule::Create(matcher.condition_factory(),
339 NULL,
338 extension.get(), 340 extension.get(),
339 install_time, 341 install_time,
340 json_rule, 342 json_rule,
341 Rule::ConsistencyChecker(), 343 Rule::ConsistencyChecker(),
342 &error)); 344 &error));
343 EXPECT_EQ("", error); 345 EXPECT_EQ("", error);
344 ASSERT_TRUE(rule.get()); 346 ASSERT_TRUE(rule.get());
345 347
346 EXPECT_EQ(kExtensionId, rule->id().first); 348 EXPECT_EQ(kExtensionId, rule->id().first);
347 EXPECT_EQ("rule1", rule->id().second); 349 EXPECT_EQ("rule1", rule->id().second);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 " ], \n" 398 " ], \n"
397 " \"actions\": [ \n" 399 " \"actions\": [ \n"
398 " { \n" 400 " { \n"
399 " \"value\": 2 \n" 401 " \"value\": 2 \n"
400 " } \n" 402 " } \n"
401 " ], \n" 403 " ], \n"
402 " \"priority\": 200 \n" 404 " \"priority\": 200 \n"
403 "}"), 405 "}"),
404 json_rule.get())); 406 json_rule.get()));
405 scoped_ptr<Rule> rule(Rule::Create(matcher.condition_factory(), 407 scoped_ptr<Rule> rule(Rule::Create(matcher.condition_factory(),
408 NULL,
406 extension.get(), 409 extension.get(),
407 base::Time(), 410 base::Time(),
408 json_rule, 411 json_rule,
409 base::Bind(AtLeastOneCondition), 412 base::Bind(AtLeastOneCondition),
410 &error)); 413 &error));
411 EXPECT_TRUE(rule); 414 EXPECT_TRUE(rule);
412 EXPECT_EQ("", error); 415 EXPECT_EQ("", error);
413 416
414 ASSERT_TRUE(Rule::JsonRule::Populate( 417 ASSERT_TRUE(Rule::JsonRule::Populate(
415 *ParseJson("{ \n" 418 *ParseJson("{ \n"
416 " \"id\": \"rule1\", \n" 419 " \"id\": \"rule1\", \n"
417 " \"conditions\": [ \n" 420 " \"conditions\": [ \n"
418 " ], \n" 421 " ], \n"
419 " \"actions\": [ \n" 422 " \"actions\": [ \n"
420 " { \n" 423 " { \n"
421 " \"value\": 2 \n" 424 " \"value\": 2 \n"
422 " } \n" 425 " } \n"
423 " ], \n" 426 " ], \n"
424 " \"priority\": 200 \n" 427 " \"priority\": 200 \n"
425 "}"), 428 "}"),
426 json_rule.get())); 429 json_rule.get()));
427 rule = Rule::Create(matcher.condition_factory(), 430 rule = Rule::Create(matcher.condition_factory(),
431 NULL,
428 extension.get(), 432 extension.get(),
429 base::Time(), 433 base::Time(),
430 json_rule, 434 json_rule,
431 base::Bind(AtLeastOneCondition), 435 base::Bind(AtLeastOneCondition),
432 &error); 436 &error);
433 EXPECT_FALSE(rule); 437 EXPECT_FALSE(rule);
434 EXPECT_EQ("No conditions", error); 438 EXPECT_EQ("No conditions", error);
435 } 439 }
436 440
437 } // namespace extensions 441 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698