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

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

Issue 1854993002: [Extensions] Remove linked_ptr entirely from extensions generated code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 8 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 "extensions/browser/api/declarative/declarative_rule.h" 5 #include "extensions/browser/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"
11 #include "components/url_matcher/url_matcher_constants.h" 11 #include "components/url_matcher/url_matcher_constants.h"
12 #include "extensions/common/extension_builder.h" 12 #include "extensions/common/extension_builder.h"
13 #include "testing/gmock/include/gmock/gmock.h" 13 #include "testing/gmock/include/gmock/gmock.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 15
16 using base::test::ParseJson; 16 using base::test::ParseJson;
17 using url_matcher::URLMatcher; 17 using url_matcher::URLMatcher;
18 using url_matcher::URLMatcherConditionFactory; 18 using url_matcher::URLMatcherConditionFactory;
19 using url_matcher::URLMatcherConditionSet; 19 using url_matcher::URLMatcherConditionSet;
20 20
21 namespace extensions { 21 namespace extensions {
22 22
23 namespace { 23 namespace {
24 24
25 template<typename T>
26 linked_ptr<T> ScopedToLinkedPtr(scoped_ptr<T> ptr) {
27 return linked_ptr<T>(ptr.release());
28 }
29
30 scoped_ptr<base::DictionaryValue> SimpleManifest() { 25 scoped_ptr<base::DictionaryValue> SimpleManifest() {
31 return DictionaryBuilder() 26 return DictionaryBuilder()
32 .Set("name", "extension") 27 .Set("name", "extension")
33 .Set("manifest_version", 2) 28 .Set("manifest_version", 2)
34 .Set("version", "1.0") 29 .Set("version", "1.0")
35 .Build(); 30 .Build();
36 } 31 }
37 32
38 } // namespace 33 } // namespace
39 34
(...skipping 23 matching lines...) Expand all
63 result->factory = url_matcher_condition_factory; 58 result->factory = url_matcher_condition_factory;
64 result->value.reset(condition.DeepCopy()); 59 result->value.reset(condition.DeepCopy());
65 return result; 60 return result;
66 } 61 }
67 }; 62 };
68 typedef DeclarativeConditionSet<RecordingCondition> RecordingConditionSet; 63 typedef DeclarativeConditionSet<RecordingCondition> RecordingConditionSet;
69 64
70 TEST(DeclarativeConditionTest, ErrorConditionSet) { 65 TEST(DeclarativeConditionTest, ErrorConditionSet) {
71 URLMatcher matcher; 66 URLMatcher matcher;
72 RecordingConditionSet::Values conditions; 67 RecordingConditionSet::Values conditions;
73 conditions.push_back(ScopedToLinkedPtr(ParseJson("{\"key\": 1}"))); 68 conditions.push_back(ParseJson("{\"key\": 1}"));
74 conditions.push_back(ScopedToLinkedPtr(ParseJson("{\"bad_key\": 2}"))); 69 conditions.push_back(ParseJson("{\"bad_key\": 2}"));
75 70
76 std::string error; 71 std::string error;
77 scoped_ptr<RecordingConditionSet> result = RecordingConditionSet::Create( 72 scoped_ptr<RecordingConditionSet> result = RecordingConditionSet::Create(
78 NULL, matcher.condition_factory(), conditions, &error); 73 NULL, matcher.condition_factory(), conditions, &error);
79 EXPECT_EQ("Found error key", error); 74 EXPECT_EQ("Found error key", error);
80 ASSERT_FALSE(result); 75 ASSERT_FALSE(result);
81 } 76 }
82 77
83 TEST(DeclarativeConditionTest, CreateConditionSet) { 78 TEST(DeclarativeConditionTest, CreateConditionSet) {
84 URLMatcher matcher; 79 URLMatcher matcher;
85 RecordingConditionSet::Values conditions; 80 RecordingConditionSet::Values conditions;
86 conditions.push_back(ScopedToLinkedPtr(ParseJson("{\"key\": 1}"))); 81 conditions.push_back(ParseJson("{\"key\": 1}"));
87 conditions.push_back(ScopedToLinkedPtr(ParseJson("[\"val1\", 2]"))); 82 conditions.push_back(ParseJson("[\"val1\", 2]"));
88 83
89 // Test insertion 84 // Test insertion
90 std::string error; 85 std::string error;
91 scoped_ptr<RecordingConditionSet> result = RecordingConditionSet::Create( 86 scoped_ptr<RecordingConditionSet> result = RecordingConditionSet::Create(
92 NULL, matcher.condition_factory(), conditions, &error); 87 NULL, matcher.condition_factory(), conditions, &error);
93 EXPECT_EQ("", error); 88 EXPECT_EQ("", error);
94 ASSERT_TRUE(result); 89 ASSERT_TRUE(result);
95 EXPECT_EQ(2u, result->conditions().size()); 90 EXPECT_EQ(2u, result->conditions().size());
96 91
97 EXPECT_EQ(matcher.condition_factory(), result->conditions()[0]->factory); 92 EXPECT_EQ(matcher.condition_factory(), result->conditions()[0]->factory);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 result->condition_set_id, 145 result->condition_set_id,
151 URLMatcherConditionSet::Conditions()); 146 URLMatcherConditionSet::Conditions());
152 } 147 }
153 return result; 148 return result;
154 } 149 }
155 }; 150 };
156 151
157 TEST(DeclarativeConditionTest, FulfillConditionSet) { 152 TEST(DeclarativeConditionTest, FulfillConditionSet) {
158 typedef DeclarativeConditionSet<FulfillableCondition> FulfillableConditionSet; 153 typedef DeclarativeConditionSet<FulfillableCondition> FulfillableConditionSet;
159 FulfillableConditionSet::Values conditions; 154 FulfillableConditionSet::Values conditions;
160 conditions.push_back(ScopedToLinkedPtr(ParseJson( 155 conditions.push_back(ParseJson("{\"url_id\": 1, \"max\": 3}"));
161 "{\"url_id\": 1, \"max\": 3}"))); 156 conditions.push_back(ParseJson("{\"url_id\": 2, \"max\": 5}"));
162 conditions.push_back(ScopedToLinkedPtr(ParseJson( 157 conditions.push_back(ParseJson("{\"url_id\": 3, \"max\": 1}"));
163 "{\"url_id\": 2, \"max\": 5}"))); 158 conditions.push_back(ParseJson("{\"max\": -5}")); // No url.
164 conditions.push_back(ScopedToLinkedPtr(ParseJson(
165 "{\"url_id\": 3, \"max\": 1}")));
166 conditions.push_back(ScopedToLinkedPtr(ParseJson(
167 "{\"max\": -5}"))); // No url.
168 159
169 // Test insertion 160 // Test insertion
170 std::string error; 161 std::string error;
171 scoped_ptr<FulfillableConditionSet> result = 162 scoped_ptr<FulfillableConditionSet> result =
172 FulfillableConditionSet::Create(NULL, NULL, conditions, &error); 163 FulfillableConditionSet::Create(NULL, NULL, conditions, &error);
173 ASSERT_EQ("", error); 164 ASSERT_EQ("", error);
174 ASSERT_TRUE(result); 165 ASSERT_TRUE(result);
175 EXPECT_EQ(4u, result->conditions().size()); 166 EXPECT_EQ(4u, result->conditions().size());
176 167
177 std::set<URLMatcherConditionSet::ID> url_matches; 168 std::set<URLMatcherConditionSet::ID> url_matches;
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 friend class base::RefCounted<SummingAction>; 248 friend class base::RefCounted<SummingAction>;
258 virtual ~SummingAction() {} 249 virtual ~SummingAction() {}
259 250
260 int increment_; 251 int increment_;
261 int min_priority_; 252 int min_priority_;
262 }; 253 };
263 typedef DeclarativeActionSet<SummingAction> SummingActionSet; 254 typedef DeclarativeActionSet<SummingAction> SummingActionSet;
264 255
265 TEST(DeclarativeActionTest, ErrorActionSet) { 256 TEST(DeclarativeActionTest, ErrorActionSet) {
266 SummingActionSet::Values actions; 257 SummingActionSet::Values actions;
267 actions.push_back(ScopedToLinkedPtr(ParseJson("{\"value\": 1}"))); 258 actions.push_back(ParseJson("{\"value\": 1}"));
268 actions.push_back(ScopedToLinkedPtr(ParseJson("{\"error\": \"the error\"}"))); 259 actions.push_back(ParseJson("{\"error\": \"the error\"}"));
269 260
270 std::string error; 261 std::string error;
271 bool bad = false; 262 bool bad = false;
272 scoped_ptr<SummingActionSet> result = 263 scoped_ptr<SummingActionSet> result =
273 SummingActionSet::Create(NULL, NULL, actions, &error, &bad); 264 SummingActionSet::Create(NULL, NULL, actions, &error, &bad);
274 EXPECT_EQ("the error", error); 265 EXPECT_EQ("the error", error);
275 EXPECT_FALSE(bad); 266 EXPECT_FALSE(bad);
276 EXPECT_FALSE(result); 267 EXPECT_FALSE(result);
277 268
278 actions.clear(); 269 actions.clear();
279 actions.push_back(ScopedToLinkedPtr(ParseJson("{\"value\": 1}"))); 270 actions.push_back(ParseJson("{\"value\": 1}"));
280 actions.push_back(ScopedToLinkedPtr(ParseJson("{\"bad\": 3}"))); 271 actions.push_back(ParseJson("{\"bad\": 3}"));
281 result = SummingActionSet::Create(NULL, NULL, actions, &error, &bad); 272 result = SummingActionSet::Create(NULL, NULL, actions, &error, &bad);
282 EXPECT_EQ("", error); 273 EXPECT_EQ("", error);
283 EXPECT_TRUE(bad); 274 EXPECT_TRUE(bad);
284 EXPECT_FALSE(result); 275 EXPECT_FALSE(result);
285 } 276 }
286 277
287 TEST(DeclarativeActionTest, ApplyActionSet) { 278 TEST(DeclarativeActionTest, ApplyActionSet) {
288 SummingActionSet::Values actions; 279 SummingActionSet::Values actions;
289 actions.push_back(ScopedToLinkedPtr(ParseJson( 280 actions.push_back(
290 "{\"value\": 1," 281 ParseJson("{\"value\": 1,"
291 " \"priority\": 5}"))); 282 " \"priority\": 5}"));
292 actions.push_back(ScopedToLinkedPtr(ParseJson("{\"value\": 2}"))); 283 actions.push_back(ParseJson("{\"value\": 2}"));
293 284
294 // Test insertion 285 // Test insertion
295 std::string error; 286 std::string error;
296 bool bad = false; 287 bool bad = false;
297 scoped_ptr<SummingActionSet> result = 288 scoped_ptr<SummingActionSet> result =
298 SummingActionSet::Create(NULL, NULL, actions, &error, &bad); 289 SummingActionSet::Create(NULL, NULL, actions, &error, &bad);
299 EXPECT_EQ("", error); 290 EXPECT_EQ("", error);
300 EXPECT_FALSE(bad); 291 EXPECT_FALSE(bad);
301 ASSERT_TRUE(result); 292 ASSERT_TRUE(result);
302 EXPECT_EQ(2u, result->actions().size()); 293 EXPECT_EQ(2u, result->actions().size());
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 extension.get(), 424 extension.get(),
434 base::Time(), 425 base::Time(),
435 json_rule, 426 json_rule,
436 base::Bind(AtLeastOneCondition), 427 base::Bind(AtLeastOneCondition),
437 &error); 428 &error);
438 EXPECT_FALSE(rule); 429 EXPECT_FALSE(rule);
439 EXPECT_EQ("No conditions", error); 430 EXPECT_EQ("No conditions", error);
440 } 431 }
441 432
442 } // namespace extensions 433 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/browser/api/declarative/declarative_rule.h ('k') | extensions/browser/api/declarative/rules_registry.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698