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

Side by Side Diff: chrome/browser/extensions/api/declarative_content/declarative_content_is_bookmarked_condition_tracker_unittest.cc

Issue 1871713002: Convert //chrome/browser/extensions from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase and fix header 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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_content/declarative_content_ is_bookmarked_condition_tracker.h" 5 #include "chrome/browser/extensions/api/declarative_content/declarative_content_ is_bookmarked_condition_tracker.h"
6 6
7 #include <memory>
7 #include <set> 8 #include <set>
8 #include <utility> 9 #include <utility>
9 #include <vector> 10 #include <vector>
10 11
11 #include "base/macros.h" 12 #include "base/macros.h"
12 #include "base/memory/ref_counted.h" 13 #include "base/memory/ref_counted.h"
13 #include "base/memory/scoped_ptr.h"
14 #include "base/stl_util.h" 14 #include "base/stl_util.h"
15 #include "base/strings/utf_string_conversions.h" 15 #include "base/strings/utf_string_conversions.h"
16 #include "base/test/values_test_util.h" 16 #include "base/test/values_test_util.h"
17 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 17 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
18 #include "chrome/browser/extensions/api/declarative_content/content_predicate_ev aluator.h" 18 #include "chrome/browser/extensions/api/declarative_content/content_predicate_ev aluator.h"
19 #include "chrome/browser/extensions/api/declarative_content/declarative_content_ condition_tracker_test.h" 19 #include "chrome/browser/extensions/api/declarative_content/declarative_content_ condition_tracker_test.h"
20 #include "chrome/test/base/testing_profile.h" 20 #include "chrome/test/base/testing_profile.h"
21 #include "components/bookmarks/browser/bookmark_model.h" 21 #include "components/bookmarks/browser/bookmark_model.h"
22 #include "components/bookmarks/browser/scoped_group_bookmark_actions.h" 22 #include "components/bookmarks/browser/scoped_group_bookmark_actions.h"
23 #include "components/bookmarks/test/bookmark_test_helpers.h" 23 #include "components/bookmarks/test/bookmark_test_helpers.h"
(...skipping 17 matching lines...) Expand all
41 return ExtensionBuilder() 41 return ExtensionBuilder()
42 .SetManifest(DictionaryBuilder() 42 .SetManifest(DictionaryBuilder()
43 .Set("name", "Test extension") 43 .Set("name", "Test extension")
44 .Set("version", "1.0") 44 .Set("version", "1.0")
45 .Set("manifest_version", 2) 45 .Set("manifest_version", 2)
46 .Set("permissions", permissions.Build()) 46 .Set("permissions", permissions.Build())
47 .Build()) 47 .Build())
48 .Build(); 48 .Build();
49 } 49 }
50 50
51 scoped_ptr<DeclarativeContentIsBookmarkedPredicate> CreatePredicate( 51 std::unique_ptr<DeclarativeContentIsBookmarkedPredicate> CreatePredicate(
52 ContentPredicateEvaluator* evaluator, 52 ContentPredicateEvaluator* evaluator,
53 const Extension* extension, 53 const Extension* extension,
54 bool is_bookmarked) { 54 bool is_bookmarked) {
55 std::string error; 55 std::string error;
56 scoped_ptr<DeclarativeContentIsBookmarkedPredicate> predicate = 56 std::unique_ptr<DeclarativeContentIsBookmarkedPredicate> predicate =
57 DeclarativeContentIsBookmarkedPredicate::Create( 57 DeclarativeContentIsBookmarkedPredicate::Create(
58 evaluator, 58 evaluator, extension,
59 extension, 59 *base::test::ParseJson(is_bookmarked ? "true" : "false"), &error);
60 *base::test::ParseJson(is_bookmarked ? "true" : "false"),
61 &error);
62 EXPECT_EQ("", error); 60 EXPECT_EQ("", error);
63 EXPECT_TRUE(predicate); 61 EXPECT_TRUE(predicate);
64 EXPECT_EQ(is_bookmarked, predicate->is_bookmarked()); 62 EXPECT_EQ(is_bookmarked, predicate->is_bookmarked());
65 return predicate; 63 return predicate;
66 } 64 }
67 65
68 } // namespace 66 } // namespace
69 67
70 using testing::HasSubstr; 68 using testing::HasSubstr;
71 using testing::UnorderedElementsAre; 69 using testing::UnorderedElementsAre;
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 result << "IsBookmarkedPredicate(false): expected " 142 result << "IsBookmarkedPredicate(false): expected "
145 << (page_is_bookmarked ? "false" : "true") << " got " 143 << (page_is_bookmarked ? "false" : "true") << " got "
146 << (page_is_bookmarked ? "true" : "false"); 144 << (page_is_bookmarked ? "true" : "false");
147 } 145 }
148 146
149 return result; 147 return result;
150 } 148 }
151 149
152 Delegate delegate_; 150 Delegate delegate_;
153 bookmarks::BookmarkModel* bookmark_model_; 151 bookmarks::BookmarkModel* bookmark_model_;
154 scoped_ptr<DeclarativeContentIsBookmarkedConditionTracker> tracker_; 152 std::unique_ptr<DeclarativeContentIsBookmarkedConditionTracker> tracker_;
155 scoped_refptr<Extension> extension_; 153 scoped_refptr<Extension> extension_;
156 scoped_ptr<DeclarativeContentIsBookmarkedPredicate> is_bookmarked_predicate_; 154 std::unique_ptr<DeclarativeContentIsBookmarkedPredicate>
157 scoped_ptr<DeclarativeContentIsBookmarkedPredicate> 155 is_bookmarked_predicate_;
156 std::unique_ptr<DeclarativeContentIsBookmarkedPredicate>
158 is_not_bookmarked_predicate_; 157 is_not_bookmarked_predicate_;
159 158
160 private: 159 private:
161 DISALLOW_COPY_AND_ASSIGN(DeclarativeContentIsBookmarkedConditionTrackerTest); 160 DISALLOW_COPY_AND_ASSIGN(DeclarativeContentIsBookmarkedConditionTrackerTest);
162 }; 161 };
163 162
164 163
165 // Tests that condition with isBookmarked requires "bookmarks" permission. 164 // Tests that condition with isBookmarked requires "bookmarks" permission.
166 TEST(DeclarativeContentIsBookmarkedPredicateTest, 165 TEST(DeclarativeContentIsBookmarkedPredicateTest,
167 IsBookmarkedPredicateRequiresBookmarkPermissionPermission) { 166 IsBookmarkedPredicateRequiresBookmarkPermissionPermission) {
168 scoped_refptr<Extension> extension = 167 scoped_refptr<Extension> extension =
169 CreateExtensionWithBookmarksPermission(false); 168 CreateExtensionWithBookmarksPermission(false);
170 std::string error; 169 std::string error;
171 scoped_ptr<DeclarativeContentIsBookmarkedPredicate> predicate = 170 std::unique_ptr<DeclarativeContentIsBookmarkedPredicate> predicate =
172 DeclarativeContentIsBookmarkedPredicate::Create( 171 DeclarativeContentIsBookmarkedPredicate::Create(
173 nullptr, 172 nullptr, extension.get(), *base::test::ParseJson("true"), &error);
174 extension.get(),
175 *base::test::ParseJson("true"),
176 &error);
177 EXPECT_THAT(error, HasSubstr("requires 'bookmarks' permission")); 173 EXPECT_THAT(error, HasSubstr("requires 'bookmarks' permission"));
178 EXPECT_FALSE(predicate); 174 EXPECT_FALSE(predicate);
179 } 175 }
180 176
181 // Tests an invalid isBookmarked value type. 177 // Tests an invalid isBookmarked value type.
182 TEST(DeclarativeContentIsBookmarkedPredicateTest, 178 TEST(DeclarativeContentIsBookmarkedPredicateTest,
183 WrongIsBookmarkedPredicateDatatype) { 179 WrongIsBookmarkedPredicateDatatype) {
184 scoped_refptr<Extension> extension = 180 scoped_refptr<Extension> extension =
185 CreateExtensionWithBookmarksPermission(true); 181 CreateExtensionWithBookmarksPermission(true);
186 std::string error; 182 std::string error;
187 scoped_ptr<DeclarativeContentIsBookmarkedPredicate> predicate = 183 std::unique_ptr<DeclarativeContentIsBookmarkedPredicate> predicate =
188 DeclarativeContentIsBookmarkedPredicate::Create( 184 DeclarativeContentIsBookmarkedPredicate::Create(
189 nullptr, 185 nullptr, extension.get(), *base::test::ParseJson("[]"), &error);
190 extension.get(),
191 *base::test::ParseJson("[]"),
192 &error);
193 EXPECT_THAT(error, HasSubstr("invalid type")); 186 EXPECT_THAT(error, HasSubstr("invalid type"));
194 EXPECT_FALSE(predicate); 187 EXPECT_FALSE(predicate);
195 } 188 }
196 189
197 // Tests isBookmark: true. Predicate state is checked in CreatePredicate(). 190 // Tests isBookmark: true. Predicate state is checked in CreatePredicate().
198 TEST(DeclarativeContentIsBookmarkedPredicateTest, IsBookmarkedPredicateTrue) { 191 TEST(DeclarativeContentIsBookmarkedPredicateTest, IsBookmarkedPredicateTrue) {
199 scoped_refptr<Extension> extension = 192 scoped_refptr<Extension> extension =
200 CreateExtensionWithBookmarksPermission(true); 193 CreateExtensionWithBookmarksPermission(true);
201 scoped_ptr<DeclarativeContentIsBookmarkedPredicate> predicate = 194 std::unique_ptr<DeclarativeContentIsBookmarkedPredicate> predicate =
202 CreatePredicate(nullptr, extension.get(), true); 195 CreatePredicate(nullptr, extension.get(), true);
203 } 196 }
204 197
205 // Tests isBookmark: false. Predicate state is checked in CreatePredicate(). 198 // Tests isBookmark: false. Predicate state is checked in CreatePredicate().
206 TEST(DeclarativeContentIsBookmarkedPredicateTest, IsBookmarkedPredicateFalse) { 199 TEST(DeclarativeContentIsBookmarkedPredicateTest, IsBookmarkedPredicateFalse) {
207 scoped_refptr<Extension> extension = 200 scoped_refptr<Extension> extension =
208 CreateExtensionWithBookmarksPermission(true); 201 CreateExtensionWithBookmarksPermission(true);
209 scoped_ptr<DeclarativeContentIsBookmarkedPredicate> predicate = 202 std::unique_ptr<DeclarativeContentIsBookmarkedPredicate> predicate =
210 CreatePredicate(nullptr, extension.get(), false); 203 CreatePredicate(nullptr, extension.get(), false);
211 } 204 }
212 205
213 // Tests that starting tracking for a WebContents that has a bookmarked URL 206 // Tests that starting tracking for a WebContents that has a bookmarked URL
214 // results in the proper IsUrlBookmarked state. 207 // results in the proper IsUrlBookmarked state.
215 TEST_F(DeclarativeContentIsBookmarkedConditionTrackerTest, 208 TEST_F(DeclarativeContentIsBookmarkedConditionTrackerTest,
216 BookmarkedAtStartOfTracking) { 209 BookmarkedAtStartOfTracking) {
217 scoped_ptr<content::WebContents> tab = MakeTab(); 210 std::unique_ptr<content::WebContents> tab = MakeTab();
218 LoadURL(tab.get(), GURL("http://bookmarked/")); 211 LoadURL(tab.get(), GURL("http://bookmarked/"));
219 EXPECT_TRUE(delegate_.evaluation_requests().empty()); 212 EXPECT_TRUE(delegate_.evaluation_requests().empty());
220 213
221 bookmark_model_->AddURL(bookmark_model_->other_node(), 0, 214 bookmark_model_->AddURL(bookmark_model_->other_node(), 0,
222 base::ASCIIToUTF16("title"), 215 base::ASCIIToUTF16("title"),
223 GURL("http://bookmarked/")); 216 GURL("http://bookmarked/"));
224 217
225 tracker_->TrackForWebContents(tab.get()); 218 tracker_->TrackForWebContents(tab.get());
226 EXPECT_THAT(delegate_.evaluation_requests(), UnorderedElementsAre(tab.get())); 219 EXPECT_THAT(delegate_.evaluation_requests(), UnorderedElementsAre(tab.get()));
227 EXPECT_TRUE(CheckPredicates(tab.get(), true)); 220 EXPECT_TRUE(CheckPredicates(tab.get(), true));
228 } 221 }
229 222
230 // Tests that adding and removing bookmarks triggers evaluation requests for the 223 // Tests that adding and removing bookmarks triggers evaluation requests for the
231 // matching WebContents. 224 // matching WebContents.
232 TEST_F(DeclarativeContentIsBookmarkedConditionTrackerTest, 225 TEST_F(DeclarativeContentIsBookmarkedConditionTrackerTest,
233 AddAndRemoveBookmark) { 226 AddAndRemoveBookmark) {
234 // Create two tabs. 227 // Create two tabs.
235 std::vector<scoped_ptr<content::WebContents>> tabs; 228 std::vector<std::unique_ptr<content::WebContents>> tabs;
236 for (int i = 0; i < 2; ++i) { 229 for (int i = 0; i < 2; ++i) {
237 tabs.push_back(MakeTab()); 230 tabs.push_back(MakeTab());
238 delegate_.evaluation_requests().clear(); 231 delegate_.evaluation_requests().clear();
239 tracker_->TrackForWebContents(tabs.back().get()); 232 tracker_->TrackForWebContents(tabs.back().get());
240 EXPECT_THAT(delegate_.evaluation_requests(), 233 EXPECT_THAT(delegate_.evaluation_requests(),
241 UnorderedElementsAre(tabs.back().get())); 234 UnorderedElementsAre(tabs.back().get()));
242 EXPECT_TRUE(CheckPredicates(tabs.back().get(), false)); 235 EXPECT_TRUE(CheckPredicates(tabs.back().get(), false));
243 } 236 }
244 237
245 // Navigate the first tab to a URL that we will bookmark. 238 // Navigate the first tab to a URL that we will bookmark.
(...skipping 24 matching lines...) Expand all
270 EXPECT_THAT(delegate_.evaluation_requests(), 263 EXPECT_THAT(delegate_.evaluation_requests(),
271 UnorderedElementsAre(tabs[0].get())); 264 UnorderedElementsAre(tabs[0].get()));
272 EXPECT_TRUE(CheckPredicates(tabs[0].get(), false)); 265 EXPECT_TRUE(CheckPredicates(tabs[0].get(), false));
273 EXPECT_TRUE(CheckPredicates(tabs[1].get(), false)); 266 EXPECT_TRUE(CheckPredicates(tabs[1].get(), false));
274 } 267 }
275 268
276 // Tests that adding and removing bookmarks triggers evaluation requests for the 269 // Tests that adding and removing bookmarks triggers evaluation requests for the
277 // matching WebContents. 270 // matching WebContents.
278 TEST_F(DeclarativeContentIsBookmarkedConditionTrackerTest, ExtensiveChanges) { 271 TEST_F(DeclarativeContentIsBookmarkedConditionTrackerTest, ExtensiveChanges) {
279 // Create two tabs. 272 // Create two tabs.
280 std::vector<scoped_ptr<content::WebContents>> tabs; 273 std::vector<std::unique_ptr<content::WebContents>> tabs;
281 for (int i = 0; i < 2; ++i) { 274 for (int i = 0; i < 2; ++i) {
282 tabs.push_back(MakeTab()); 275 tabs.push_back(MakeTab());
283 delegate_.evaluation_requests().clear(); 276 delegate_.evaluation_requests().clear();
284 tracker_->TrackForWebContents(tabs.back().get()); 277 tracker_->TrackForWebContents(tabs.back().get());
285 EXPECT_THAT(delegate_.evaluation_requests(), 278 EXPECT_THAT(delegate_.evaluation_requests(),
286 UnorderedElementsAre(tabs.back().get())); 279 UnorderedElementsAre(tabs.back().get()));
287 EXPECT_TRUE(CheckPredicates(tabs.back().get(), false)); 280 EXPECT_TRUE(CheckPredicates(tabs.back().get(), false));
288 } 281 }
289 282
290 // Navigate the first tab to a URL that we will bookmark. 283 // Navigate the first tab to a URL that we will bookmark.
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 // Bookmark two URLs. 366 // Bookmark two URLs.
374 delegate_.evaluation_requests().clear(); 367 delegate_.evaluation_requests().clear();
375 bookmark_model_->AddURL(bookmark_model_->other_node(), 0, 368 bookmark_model_->AddURL(bookmark_model_->other_node(), 0,
376 base::ASCIIToUTF16("title"), 369 base::ASCIIToUTF16("title"),
377 GURL("http://bookmarked1/")); 370 GURL("http://bookmarked1/"));
378 bookmark_model_->AddURL(bookmark_model_->other_node(), 0, 371 bookmark_model_->AddURL(bookmark_model_->other_node(), 0,
379 base::ASCIIToUTF16("title"), 372 base::ASCIIToUTF16("title"),
380 GURL("http://bookmarked2/")); 373 GURL("http://bookmarked2/"));
381 374
382 // Create two tabs. 375 // Create two tabs.
383 std::vector<scoped_ptr<content::WebContents>> tabs; 376 std::vector<std::unique_ptr<content::WebContents>> tabs;
384 for (int i = 0; i < 2; ++i) { 377 for (int i = 0; i < 2; ++i) {
385 tabs.push_back(MakeTab()); 378 tabs.push_back(MakeTab());
386 delegate_.evaluation_requests().clear(); 379 delegate_.evaluation_requests().clear();
387 tracker_->TrackForWebContents(tabs.back().get()); 380 tracker_->TrackForWebContents(tabs.back().get());
388 EXPECT_THAT(delegate_.evaluation_requests(), 381 EXPECT_THAT(delegate_.evaluation_requests(),
389 UnorderedElementsAre(tabs.back().get())); 382 UnorderedElementsAre(tabs.back().get()));
390 EXPECT_TRUE(CheckPredicates(tabs.back().get(), false)); 383 EXPECT_TRUE(CheckPredicates(tabs.back().get(), false));
391 } 384 }
392 385
393 // Navigate the first tab to one bookmarked URL. 386 // Navigate the first tab to one bookmarked URL.
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 tracker_->OnWebContentsNavigation(tabs[0].get(), 426 tracker_->OnWebContentsNavigation(tabs[0].get(),
434 content::LoadCommittedDetails(), 427 content::LoadCommittedDetails(),
435 content::FrameNavigateParams()); 428 content::FrameNavigateParams());
436 EXPECT_THAT(delegate_.evaluation_requests(), 429 EXPECT_THAT(delegate_.evaluation_requests(),
437 UnorderedElementsAre(tabs[0].get())); 430 UnorderedElementsAre(tabs[0].get()));
438 EXPECT_TRUE(CheckPredicates(tabs[0].get(), false)); 431 EXPECT_TRUE(CheckPredicates(tabs[0].get(), false));
439 EXPECT_TRUE(CheckPredicates(tabs[1].get(), false)); 432 EXPECT_TRUE(CheckPredicates(tabs[1].get(), false));
440 } 433 }
441 434
442 } // namespace extensions 435 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698