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

Side by Side Diff: components/ntp_snippets/content_suggestions_service_unittest.cc

Issue 2618243004: Add a unit test for the BookmarkSuggestionsProvider. (Closed)
Patch Set: renamed MockProvider and updated tests comments about expected behavior Created 3 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "components/ntp_snippets/content_suggestions_service.h" 5 #include "components/ntp_snippets/content_suggestions_service.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "base/memory/ptr_util.h" 13 #include "base/memory/ptr_util.h"
14 #include "base/message_loop/message_loop.h" 14 #include "base/message_loop/message_loop.h"
15 #include "base/run_loop.h" 15 #include "base/run_loop.h"
16 #include "base/strings/string_number_conversions.h" 16 #include "base/strings/string_number_conversions.h"
17 #include "base/strings/utf_string_conversions.h"
18 #include "components/ntp_snippets/category_info.h" 17 #include "components/ntp_snippets/category_info.h"
19 #include "components/ntp_snippets/category_rankers/constant_category_ranker.h" 18 #include "components/ntp_snippets/category_rankers/constant_category_ranker.h"
20 #include "components/ntp_snippets/category_rankers/fake_category_ranker.h" 19 #include "components/ntp_snippets/category_rankers/fake_category_ranker.h"
21 #include "components/ntp_snippets/category_rankers/mock_category_ranker.h" 20 #include "components/ntp_snippets/category_rankers/mock_category_ranker.h"
22 #include "components/ntp_snippets/category_status.h" 21 #include "components/ntp_snippets/category_status.h"
23 #include "components/ntp_snippets/content_suggestion.h" 22 #include "components/ntp_snippets/content_suggestion.h"
24 #include "components/ntp_snippets/content_suggestions_provider.h" 23 #include "components/ntp_snippets/content_suggestions_provider.h"
24 #include "components/ntp_snippets/mock_content_suggestions_provider.h"
25 #include "components/ntp_snippets/user_classifier.h" 25 #include "components/ntp_snippets/user_classifier.h"
26 #include "components/prefs/testing_pref_service.h" 26 #include "components/prefs/testing_pref_service.h"
27 #include "testing/gmock/include/gmock/gmock.h" 27 #include "testing/gmock/include/gmock/gmock.h"
28 #include "testing/gtest/include/gtest/gtest.h" 28 #include "testing/gtest/include/gtest/gtest.h"
29 #include "ui/gfx/image/image.h" 29 #include "ui/gfx/image/image.h"
30 30
31 using testing::_; 31 using testing::_;
32 using testing::ElementsAre; 32 using testing::ElementsAre;
33 using testing::Eq; 33 using testing::Eq;
34 using testing::InvokeWithoutArgs; 34 using testing::InvokeWithoutArgs;
35 using testing::IsEmpty; 35 using testing::IsEmpty;
36 using testing::Mock; 36 using testing::Mock;
37 using testing::Property; 37 using testing::Property;
38 using testing::Return; 38 using testing::Return;
39 using testing::StrictMock; 39 using testing::StrictMock;
40 using testing::UnorderedElementsAre; 40 using testing::UnorderedElementsAre;
41 41
42 namespace ntp_snippets { 42 namespace ntp_snippets {
43 43
44 namespace { 44 namespace {
45 45
46 // TODO(treib): This is a weird combination of a mock and a fake. Fix this.
47 class MockProvider : public ContentSuggestionsProvider {
48 public:
49 MockProvider(Observer* observer,
50 const std::vector<Category>& provided_categories)
51 : ContentSuggestionsProvider(observer) {
52 SetProvidedCategories(provided_categories);
53 }
54
55 void SetProvidedCategories(const std::vector<Category>& provided_categories) {
56 statuses_.clear();
57 provided_categories_ = provided_categories;
58 for (Category category : provided_categories) {
59 statuses_[category.id()] = CategoryStatus::AVAILABLE;
60 }
61 }
62
63 CategoryStatus GetCategoryStatus(Category category) override {
64 return statuses_[category.id()];
65 }
66
67 CategoryInfo GetCategoryInfo(Category category) override {
68 return CategoryInfo(base::ASCIIToUTF16("Section title"),
69 ContentSuggestionsCardLayout::FULL_CARD, true, false,
70 true, false,
71 base::ASCIIToUTF16("No suggestions message"));
72 }
73
74 void FireSuggestionsChanged(
75 Category category,
76 std::vector<ContentSuggestion> suggestions) {
77 observer()->OnNewSuggestions(this, category, std::move(suggestions));
78 }
79
80 void FireCategoryStatusChanged(Category category, CategoryStatus new_status) {
81 statuses_[category.id()] = new_status;
82 observer()->OnCategoryStatusChanged(this, category, new_status);
83 }
84
85 void FireCategoryStatusChangedWithCurrentStatus(Category category) {
86 observer()->OnCategoryStatusChanged(this, category,
87 statuses_[category.id()]);
88 }
89
90 void FireSuggestionInvalidated(const ContentSuggestion::ID& suggestion_id) {
91 observer()->OnSuggestionInvalidated(this, suggestion_id);
92 }
93
94 MOCK_METHOD3(ClearHistory,
95 void(base::Time begin,
96 base::Time end,
97 const base::Callback<bool(const GURL& url)>& filter));
98 MOCK_METHOD3(Fetch,
99 void(const Category&,
100 const std::set<std::string>&,
101 const FetchDoneCallback&));
102 MOCK_METHOD1(ClearCachedSuggestions, void(Category category));
103 MOCK_METHOD2(GetDismissedSuggestionsForDebugging,
104 void(Category category,
105 const DismissedSuggestionsCallback& callback));
106 MOCK_METHOD1(ClearDismissedSuggestionsForDebugging, void(Category category));
107 MOCK_METHOD1(DismissSuggestion,
108 void(const ContentSuggestion::ID& suggestion_id));
109 MOCK_METHOD2(FetchSuggestionImage,
110 void(const ContentSuggestion::ID& suggestion_id,
111 const ImageFetchedCallback& callback));
112
113 private:
114 std::vector<Category> provided_categories_;
115 std::map<int, CategoryStatus> statuses_;
116 };
117
118 class MockServiceObserver : public ContentSuggestionsService::Observer { 46 class MockServiceObserver : public ContentSuggestionsService::Observer {
119 public: 47 public:
120 MockServiceObserver() = default; 48 MockServiceObserver() = default;
121 ~MockServiceObserver() override = default; 49 ~MockServiceObserver() override = default;
122 50
123 MOCK_METHOD1(OnNewSuggestions, void(Category category)); 51 MOCK_METHOD1(OnNewSuggestions, void(Category category));
124 MOCK_METHOD2(OnCategoryStatusChanged, 52 MOCK_METHOD2(OnCategoryStatusChanged,
125 void(Category changed_category, CategoryStatus new_status)); 53 void(Category changed_category, CategoryStatus new_status));
126 MOCK_METHOD1(OnSuggestionInvalidated, 54 MOCK_METHOD1(OnSuggestionInvalidated,
127 void(const ContentSuggestion::ID& suggestion_id)); 55 void(const ContentSuggestion::ID& suggestion_id));
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 const std::map<Category, ContentSuggestionsProvider*, Category::CompareByID>& 108 const std::map<Category, ContentSuggestionsProvider*, Category::CompareByID>&
181 providers() { 109 providers() {
182 return service()->providers_by_category_; 110 return service()->providers_by_category_;
183 } 111 }
184 112
185 const std::map<Category, ContentSuggestionsProvider*, Category::CompareByID>& 113 const std::map<Category, ContentSuggestionsProvider*, Category::CompareByID>&
186 dismissed_providers() { 114 dismissed_providers() {
187 return service()->dismissed_providers_by_category_; 115 return service()->dismissed_providers_by_category_;
188 } 116 }
189 117
190 MockProvider* MakeRegisteredMockProvider(Category provided_category) { 118 MockContentSuggestionsProvider* MakeRegisteredMockProvider(
119 Category provided_category) {
191 return MakeRegisteredMockProvider( 120 return MakeRegisteredMockProvider(
192 std::vector<Category>({provided_category})); 121 std::vector<Category>({provided_category}));
193 } 122 }
194 123
195 MockProvider* MakeRegisteredMockProvider( 124 MockContentSuggestionsProvider* MakeRegisteredMockProvider(
196 const std::vector<Category>& provided_categories) { 125 const std::vector<Category>& provided_categories) {
197 auto provider = base::MakeUnique<testing::StrictMock<MockProvider>>( 126 auto provider =
198 service(), provided_categories); 127 base::MakeUnique<testing::StrictMock<MockContentSuggestionsProvider>>(
199 MockProvider* result = provider.get(); 128 service(), provided_categories);
129 MockContentSuggestionsProvider* result = provider.get();
200 service()->RegisterProvider(std::move(provider)); 130 service()->RegisterProvider(std::move(provider));
201 return result; 131 return result;
202 } 132 }
203 133
204 void SetCategoryRanker(std::unique_ptr<CategoryRanker> category_ranker) { 134 void SetCategoryRanker(std::unique_ptr<CategoryRanker> category_ranker) {
205 category_ranker_ = std::move(category_ranker); 135 category_ranker_ = std::move(category_ranker);
206 } 136 }
207 137
208 MOCK_METHOD1(OnImageFetched, void(const gfx::Image&)); 138 MOCK_METHOD1(OnImageFetched, void(const gfx::Image&));
209 139
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 Category::FromKnownCategory(KnownCategories::ARTICLES); 200 Category::FromKnownCategory(KnownCategories::ARTICLES);
271 Category offline_pages_category = 201 Category offline_pages_category =
272 Category::FromKnownCategory(KnownCategories::DOWNLOADS); 202 Category::FromKnownCategory(KnownCategories::DOWNLOADS);
273 ASSERT_THAT(providers(), IsEmpty()); 203 ASSERT_THAT(providers(), IsEmpty());
274 EXPECT_THAT(service()->GetCategories(), IsEmpty()); 204 EXPECT_THAT(service()->GetCategories(), IsEmpty());
275 EXPECT_THAT(service()->GetCategoryStatus(articles_category), 205 EXPECT_THAT(service()->GetCategoryStatus(articles_category),
276 Eq(CategoryStatus::NOT_PROVIDED)); 206 Eq(CategoryStatus::NOT_PROVIDED));
277 EXPECT_THAT(service()->GetCategoryStatus(offline_pages_category), 207 EXPECT_THAT(service()->GetCategoryStatus(offline_pages_category),
278 Eq(CategoryStatus::NOT_PROVIDED)); 208 Eq(CategoryStatus::NOT_PROVIDED));
279 209
280 MockProvider* provider1 = MakeRegisteredMockProvider(articles_category); 210 MockContentSuggestionsProvider* provider1 =
211 MakeRegisteredMockProvider(articles_category);
281 provider1->FireCategoryStatusChangedWithCurrentStatus(articles_category); 212 provider1->FireCategoryStatusChangedWithCurrentStatus(articles_category);
282 EXPECT_THAT(providers().count(offline_pages_category), Eq(0ul)); 213 EXPECT_THAT(providers().count(offline_pages_category), Eq(0ul));
283 ASSERT_THAT(providers().count(articles_category), Eq(1ul)); 214 ASSERT_THAT(providers().count(articles_category), Eq(1ul));
284 EXPECT_THAT(providers().at(articles_category), Eq(provider1)); 215 EXPECT_THAT(providers().at(articles_category), Eq(provider1));
285 EXPECT_THAT(providers().size(), Eq(1ul)); 216 EXPECT_THAT(providers().size(), Eq(1ul));
286 EXPECT_THAT(service()->GetCategories(), 217 EXPECT_THAT(service()->GetCategories(),
287 UnorderedElementsAre(articles_category)); 218 UnorderedElementsAre(articles_category));
288 EXPECT_THAT(service()->GetCategoryStatus(articles_category), 219 EXPECT_THAT(service()->GetCategoryStatus(articles_category),
289 Eq(CategoryStatus::AVAILABLE)); 220 Eq(CategoryStatus::AVAILABLE));
290 EXPECT_THAT(service()->GetCategoryStatus(offline_pages_category), 221 EXPECT_THAT(service()->GetCategoryStatus(offline_pages_category),
291 Eq(CategoryStatus::NOT_PROVIDED)); 222 Eq(CategoryStatus::NOT_PROVIDED));
292 223
293 MockProvider* provider2 = MakeRegisteredMockProvider(offline_pages_category); 224 MockContentSuggestionsProvider* provider2 =
225 MakeRegisteredMockProvider(offline_pages_category);
294 provider2->FireCategoryStatusChangedWithCurrentStatus(offline_pages_category); 226 provider2->FireCategoryStatusChangedWithCurrentStatus(offline_pages_category);
295 ASSERT_THAT(providers().count(offline_pages_category), Eq(1ul)); 227 ASSERT_THAT(providers().count(offline_pages_category), Eq(1ul));
296 EXPECT_THAT(providers().at(articles_category), Eq(provider1)); 228 EXPECT_THAT(providers().at(articles_category), Eq(provider1));
297 ASSERT_THAT(providers().count(articles_category), Eq(1ul)); 229 ASSERT_THAT(providers().count(articles_category), Eq(1ul));
298 EXPECT_THAT(providers().at(offline_pages_category), Eq(provider2)); 230 EXPECT_THAT(providers().at(offline_pages_category), Eq(provider2));
299 EXPECT_THAT(providers().size(), Eq(2ul)); 231 EXPECT_THAT(providers().size(), Eq(2ul));
300 EXPECT_THAT(service()->GetCategories(), 232 EXPECT_THAT(service()->GetCategories(),
301 UnorderedElementsAre(offline_pages_category, articles_category)); 233 UnorderedElementsAre(offline_pages_category, articles_category));
302 EXPECT_THAT(service()->GetCategoryStatus(articles_category), 234 EXPECT_THAT(service()->GetCategoryStatus(articles_category),
303 Eq(CategoryStatus::AVAILABLE)); 235 Eq(CategoryStatus::AVAILABLE));
(...skipping 16 matching lines...) Expand all
320 EXPECT_THAT(service()->GetCategories(), IsEmpty()); 252 EXPECT_THAT(service()->GetCategories(), IsEmpty());
321 EXPECT_THAT(service()->GetSuggestionsForCategory(articles_category), 253 EXPECT_THAT(service()->GetSuggestionsForCategory(articles_category),
322 IsEmpty()); 254 IsEmpty());
323 } 255 }
324 256
325 TEST_F(ContentSuggestionsServiceTest, ShouldRedirectFetchSuggestionImage) { 257 TEST_F(ContentSuggestionsServiceTest, ShouldRedirectFetchSuggestionImage) {
326 Category articles_category = 258 Category articles_category =
327 Category::FromKnownCategory(KnownCategories::ARTICLES); 259 Category::FromKnownCategory(KnownCategories::ARTICLES);
328 Category offline_pages_category = 260 Category offline_pages_category =
329 Category::FromKnownCategory(KnownCategories::DOWNLOADS); 261 Category::FromKnownCategory(KnownCategories::DOWNLOADS);
330 MockProvider* provider1 = MakeRegisteredMockProvider(articles_category); 262 MockContentSuggestionsProvider* provider1 =
331 MockProvider* provider2 = MakeRegisteredMockProvider(offline_pages_category); 263 MakeRegisteredMockProvider(articles_category);
264 MockContentSuggestionsProvider* provider2 =
265 MakeRegisteredMockProvider(offline_pages_category);
332 266
333 provider1->FireSuggestionsChanged(articles_category, 267 provider1->FireSuggestionsChanged(articles_category,
334 CreateSuggestions(articles_category, {1})); 268 CreateSuggestions(articles_category, {1}));
335 ContentSuggestion::ID suggestion_id(articles_category, "1"); 269 ContentSuggestion::ID suggestion_id(articles_category, "1");
336 270
337 EXPECT_CALL(*provider1, FetchSuggestionImage(suggestion_id, _)); 271 EXPECT_CALL(*provider1, FetchSuggestionImage(suggestion_id, _));
338 EXPECT_CALL(*provider2, FetchSuggestionImage(_, _)).Times(0); 272 EXPECT_CALL(*provider2, FetchSuggestionImage(_, _)).Times(0);
339 service()->FetchSuggestionImage( 273 service()->FetchSuggestionImage(
340 suggestion_id, base::Bind(&ContentSuggestionsServiceTest::OnImageFetched, 274 suggestion_id, base::Bind(&ContentSuggestionsServiceTest::OnImageFetched,
341 base::Unretained(this))); 275 base::Unretained(this)));
(...skipping 13 matching lines...) Expand all
355 suggestion_id, base::Bind(&ContentSuggestionsServiceTest::OnImageFetched, 289 suggestion_id, base::Bind(&ContentSuggestionsServiceTest::OnImageFetched,
356 base::Unretained(this))); 290 base::Unretained(this)));
357 run_loop.Run(); 291 run_loop.Run();
358 } 292 }
359 293
360 TEST_F(ContentSuggestionsServiceTest, ShouldRedirectDismissSuggestion) { 294 TEST_F(ContentSuggestionsServiceTest, ShouldRedirectDismissSuggestion) {
361 Category articles_category = 295 Category articles_category =
362 Category::FromKnownCategory(KnownCategories::ARTICLES); 296 Category::FromKnownCategory(KnownCategories::ARTICLES);
363 Category offline_pages_category = 297 Category offline_pages_category =
364 Category::FromKnownCategory(KnownCategories::DOWNLOADS); 298 Category::FromKnownCategory(KnownCategories::DOWNLOADS);
365 MockProvider* provider1 = MakeRegisteredMockProvider(articles_category); 299 MockContentSuggestionsProvider* provider1 =
366 MockProvider* provider2 = MakeRegisteredMockProvider(offline_pages_category); 300 MakeRegisteredMockProvider(articles_category);
301 MockContentSuggestionsProvider* provider2 =
302 MakeRegisteredMockProvider(offline_pages_category);
367 303
368 provider2->FireSuggestionsChanged( 304 provider2->FireSuggestionsChanged(
369 offline_pages_category, CreateSuggestions(offline_pages_category, {11})); 305 offline_pages_category, CreateSuggestions(offline_pages_category, {11}));
370 ContentSuggestion::ID suggestion_id(offline_pages_category, "11"); 306 ContentSuggestion::ID suggestion_id(offline_pages_category, "11");
371 307
372 EXPECT_CALL(*provider1, DismissSuggestion(_)).Times(0); 308 EXPECT_CALL(*provider1, DismissSuggestion(_)).Times(0);
373 EXPECT_CALL(*provider2, DismissSuggestion(suggestion_id)); 309 EXPECT_CALL(*provider2, DismissSuggestion(suggestion_id));
374 service()->DismissSuggestion(suggestion_id); 310 service()->DismissSuggestion(suggestion_id);
375 } 311 }
376 312
377 TEST_F(ContentSuggestionsServiceTest, ShouldRedirectSuggestionInvalidated) { 313 TEST_F(ContentSuggestionsServiceTest, ShouldRedirectSuggestionInvalidated) {
378 Category articles_category = 314 Category articles_category =
379 Category::FromKnownCategory(KnownCategories::ARTICLES); 315 Category::FromKnownCategory(KnownCategories::ARTICLES);
380 316
381 MockProvider* provider = MakeRegisteredMockProvider(articles_category); 317 MockContentSuggestionsProvider* provider =
318 MakeRegisteredMockProvider(articles_category);
382 MockServiceObserver observer; 319 MockServiceObserver observer;
383 service()->AddObserver(&observer); 320 service()->AddObserver(&observer);
384 321
385 provider->FireSuggestionsChanged( 322 provider->FireSuggestionsChanged(
386 articles_category, CreateSuggestions(articles_category, {11, 12, 13})); 323 articles_category, CreateSuggestions(articles_category, {11, 12, 13}));
387 ExpectThatSuggestionsAre(articles_category, {11, 12, 13}); 324 ExpectThatSuggestionsAre(articles_category, {11, 12, 13});
388 325
389 ContentSuggestion::ID suggestion_id(articles_category, "12"); 326 ContentSuggestion::ID suggestion_id(articles_category, "12");
390 EXPECT_CALL(observer, OnSuggestionInvalidated(suggestion_id)); 327 EXPECT_CALL(observer, OnSuggestionInvalidated(suggestion_id));
391 provider->FireSuggestionInvalidated(suggestion_id); 328 provider->FireSuggestionInvalidated(suggestion_id);
(...skipping 12 matching lines...) Expand all
404 service()->RemoveObserver(&observer); 341 service()->RemoveObserver(&observer);
405 } 342 }
406 343
407 TEST_F(ContentSuggestionsServiceTest, ShouldForwardSuggestions) { 344 TEST_F(ContentSuggestionsServiceTest, ShouldForwardSuggestions) {
408 Category articles_category = 345 Category articles_category =
409 Category::FromKnownCategory(KnownCategories::ARTICLES); 346 Category::FromKnownCategory(KnownCategories::ARTICLES);
410 Category offline_pages_category = 347 Category offline_pages_category =
411 Category::FromKnownCategory(KnownCategories::DOWNLOADS); 348 Category::FromKnownCategory(KnownCategories::DOWNLOADS);
412 349
413 // Create and register providers 350 // Create and register providers
414 MockProvider* provider1 = MakeRegisteredMockProvider(articles_category); 351 MockContentSuggestionsProvider* provider1 =
352 MakeRegisteredMockProvider(articles_category);
415 provider1->FireCategoryStatusChangedWithCurrentStatus(articles_category); 353 provider1->FireCategoryStatusChangedWithCurrentStatus(articles_category);
416 MockProvider* provider2 = MakeRegisteredMockProvider(offline_pages_category); 354 MockContentSuggestionsProvider* provider2 =
355 MakeRegisteredMockProvider(offline_pages_category);
417 provider2->FireCategoryStatusChangedWithCurrentStatus(offline_pages_category); 356 provider2->FireCategoryStatusChangedWithCurrentStatus(offline_pages_category);
418 ASSERT_THAT(providers().count(articles_category), Eq(1ul)); 357 ASSERT_THAT(providers().count(articles_category), Eq(1ul));
419 EXPECT_THAT(providers().at(articles_category), Eq(provider1)); 358 EXPECT_THAT(providers().at(articles_category), Eq(provider1));
420 ASSERT_THAT(providers().count(offline_pages_category), Eq(1ul)); 359 ASSERT_THAT(providers().count(offline_pages_category), Eq(1ul));
421 EXPECT_THAT(providers().at(offline_pages_category), Eq(provider2)); 360 EXPECT_THAT(providers().at(offline_pages_category), Eq(provider2));
422 361
423 // Create and register observer 362 // Create and register observer
424 MockServiceObserver observer; 363 MockServiceObserver observer;
425 service()->AddObserver(&observer); 364 service()->AddObserver(&observer);
426 365
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 417
479 TEST_F(ContentSuggestionsServiceTest, 418 TEST_F(ContentSuggestionsServiceTest,
480 ShouldNotReturnCategoryInfoForNonexistentCategory) { 419 ShouldNotReturnCategoryInfoForNonexistentCategory) {
481 Category category = Category::FromKnownCategory(KnownCategories::DOWNLOADS); 420 Category category = Category::FromKnownCategory(KnownCategories::DOWNLOADS);
482 base::Optional<CategoryInfo> result = service()->GetCategoryInfo(category); 421 base::Optional<CategoryInfo> result = service()->GetCategoryInfo(category);
483 EXPECT_FALSE(result.has_value()); 422 EXPECT_FALSE(result.has_value());
484 } 423 }
485 424
486 TEST_F(ContentSuggestionsServiceTest, ShouldReturnCategoryInfo) { 425 TEST_F(ContentSuggestionsServiceTest, ShouldReturnCategoryInfo) {
487 Category category = Category::FromKnownCategory(KnownCategories::DOWNLOADS); 426 Category category = Category::FromKnownCategory(KnownCategories::DOWNLOADS);
488 MockProvider* provider = MakeRegisteredMockProvider(category); 427 MockContentSuggestionsProvider* provider =
428 MakeRegisteredMockProvider(category);
489 provider->FireCategoryStatusChangedWithCurrentStatus(category); 429 provider->FireCategoryStatusChangedWithCurrentStatus(category);
490 base::Optional<CategoryInfo> result = service()->GetCategoryInfo(category); 430 base::Optional<CategoryInfo> result = service()->GetCategoryInfo(category);
491 ASSERT_TRUE(result.has_value()); 431 ASSERT_TRUE(result.has_value());
492 CategoryInfo expected = provider->GetCategoryInfo(category); 432 CategoryInfo expected = provider->GetCategoryInfo(category);
493 const CategoryInfo& actual = result.value(); 433 const CategoryInfo& actual = result.value();
494 EXPECT_THAT(expected.title(), Eq(actual.title())); 434 EXPECT_THAT(expected.title(), Eq(actual.title()));
495 EXPECT_THAT(expected.card_layout(), Eq(actual.card_layout())); 435 EXPECT_THAT(expected.card_layout(), Eq(actual.card_layout()));
496 EXPECT_THAT(expected.has_more_action(), Eq(actual.has_more_action())); 436 EXPECT_THAT(expected.has_more_action(), Eq(actual.has_more_action()));
497 EXPECT_THAT(expected.has_reload_action(), Eq(actual.has_reload_action())); 437 EXPECT_THAT(expected.has_reload_action(), Eq(actual.has_reload_action()));
498 EXPECT_THAT(expected.has_view_all_action(), Eq(actual.has_view_all_action())); 438 EXPECT_THAT(expected.has_view_all_action(), Eq(actual.has_view_all_action()));
499 } 439 }
500 440
501 TEST_F(ContentSuggestionsServiceTest, 441 TEST_F(ContentSuggestionsServiceTest,
502 ShouldRegisterNewCategoryOnNewSuggestions) { 442 ShouldRegisterNewCategoryOnNewSuggestions) {
503 Category category = Category::FromKnownCategory(KnownCategories::DOWNLOADS); 443 Category category = Category::FromKnownCategory(KnownCategories::DOWNLOADS);
504 MockProvider* provider = MakeRegisteredMockProvider(category); 444 MockContentSuggestionsProvider* provider =
445 MakeRegisteredMockProvider(category);
505 provider->FireCategoryStatusChangedWithCurrentStatus(category); 446 provider->FireCategoryStatusChangedWithCurrentStatus(category);
506 MockServiceObserver observer; 447 MockServiceObserver observer;
507 service()->AddObserver(&observer); 448 service()->AddObserver(&observer);
508 449
509 // Provider starts providing |new_category| without calling 450 // Provider starts providing |new_category| without calling
510 // |OnCategoryStatusChanged|. This is supported for now until further 451 // |OnCategoryStatusChanged|. This is supported for now until further
511 // reconsideration. 452 // reconsideration.
512 Category new_category = 453 Category new_category =
513 Category::FromKnownCategory(KnownCategories::ARTICLES); 454 Category::FromKnownCategory(KnownCategories::ARTICLES);
514 provider->SetProvidedCategories( 455 provider->SetProvidedCategories(
(...skipping 14 matching lines...) Expand all
529 EXPECT_THAT(providers().at(new_category), Eq(provider)); 470 EXPECT_THAT(providers().at(new_category), Eq(provider));
530 EXPECT_THAT(service()->GetCategoryStatus(new_category), 471 EXPECT_THAT(service()->GetCategoryStatus(new_category),
531 Eq(CategoryStatus::AVAILABLE)); 472 Eq(CategoryStatus::AVAILABLE));
532 473
533 service()->RemoveObserver(&observer); 474 service()->RemoveObserver(&observer);
534 } 475 }
535 476
536 TEST_F(ContentSuggestionsServiceTest, 477 TEST_F(ContentSuggestionsServiceTest,
537 ShouldRegisterNewCategoryOnCategoryStatusChanged) { 478 ShouldRegisterNewCategoryOnCategoryStatusChanged) {
538 Category category = Category::FromKnownCategory(KnownCategories::DOWNLOADS); 479 Category category = Category::FromKnownCategory(KnownCategories::DOWNLOADS);
539 MockProvider* provider = MakeRegisteredMockProvider(category); 480 MockContentSuggestionsProvider* provider =
481 MakeRegisteredMockProvider(category);
540 provider->FireCategoryStatusChangedWithCurrentStatus(category); 482 provider->FireCategoryStatusChangedWithCurrentStatus(category);
541 MockServiceObserver observer; 483 MockServiceObserver observer;
542 service()->AddObserver(&observer); 484 service()->AddObserver(&observer);
543 485
544 // Provider starts providing |new_category| and calls 486 // Provider starts providing |new_category| and calls
545 // |OnCategoryStatusChanged|, but the category is not yet available. 487 // |OnCategoryStatusChanged|, but the category is not yet available.
546 Category new_category = 488 Category new_category =
547 Category::FromKnownCategory(KnownCategories::ARTICLES); 489 Category::FromKnownCategory(KnownCategories::ARTICLES);
548 provider->SetProvidedCategories( 490 provider->SetProvidedCategories(
549 std::vector<Category>({category, new_category})); 491 std::vector<Category>({category, new_category}));
550 EXPECT_CALL(observer, OnCategoryStatusChanged(new_category, 492 EXPECT_CALL(observer, OnCategoryStatusChanged(new_category,
551 CategoryStatus::INITIALIZING)); 493 CategoryStatus::INITIALIZING));
552 provider->FireCategoryStatusChanged(new_category, 494 provider->FireCategoryStatusChanged(new_category,
553 CategoryStatus::INITIALIZING); 495 CategoryStatus::INITIALIZING);
554 496
555 ASSERT_THAT(providers().count(new_category), Eq(1ul)); 497 ASSERT_THAT(providers().count(new_category), Eq(1ul));
556 EXPECT_THAT(providers().at(new_category), Eq(provider)); 498 EXPECT_THAT(providers().at(new_category), Eq(provider));
557 ExpectThatSuggestionsAre(new_category, std::vector<int>()); 499 ExpectThatSuggestionsAre(new_category, std::vector<int>());
558 EXPECT_THAT(service()->GetCategoryStatus(new_category), 500 EXPECT_THAT(service()->GetCategoryStatus(new_category),
559 Eq(CategoryStatus::INITIALIZING)); 501 Eq(CategoryStatus::INITIALIZING));
560 EXPECT_THAT(service()->GetCategories(), 502 EXPECT_THAT(service()->GetCategories(),
561 UnorderedElementsAre(category, new_category)); 503 UnorderedElementsAre(category, new_category));
562 504
563 service()->RemoveObserver(&observer); 505 service()->RemoveObserver(&observer);
564 } 506 }
565 507
566 TEST_F(ContentSuggestionsServiceTest, ShouldRemoveCategoryWhenNotProvided) { 508 TEST_F(ContentSuggestionsServiceTest, ShouldRemoveCategoryWhenNotProvided) {
567 Category category = Category::FromKnownCategory(KnownCategories::DOWNLOADS); 509 Category category = Category::FromKnownCategory(KnownCategories::DOWNLOADS);
568 MockProvider* provider = MakeRegisteredMockProvider(category); 510 MockContentSuggestionsProvider* provider =
511 MakeRegisteredMockProvider(category);
569 MockServiceObserver observer; 512 MockServiceObserver observer;
570 service()->AddObserver(&observer); 513 service()->AddObserver(&observer);
571 514
572 provider->FireSuggestionsChanged(category, 515 provider->FireSuggestionsChanged(category,
573 CreateSuggestions(category, {1, 2})); 516 CreateSuggestions(category, {1, 2}));
574 ExpectThatSuggestionsAre(category, {1, 2}); 517 ExpectThatSuggestionsAre(category, {1, 2});
575 518
576 EXPECT_CALL(observer, 519 EXPECT_CALL(observer,
577 OnCategoryStatusChanged(category, CategoryStatus::NOT_PROVIDED)); 520 OnCategoryStatusChanged(category, CategoryStatus::NOT_PROVIDED));
578 provider->FireCategoryStatusChanged(category, CategoryStatus::NOT_PROVIDED); 521 provider->FireCategoryStatusChanged(category, CategoryStatus::NOT_PROVIDED);
579 522
580 EXPECT_THAT(service()->GetCategoryStatus(category), 523 EXPECT_THAT(service()->GetCategoryStatus(category),
581 Eq(CategoryStatus::NOT_PROVIDED)); 524 Eq(CategoryStatus::NOT_PROVIDED));
582 EXPECT_TRUE(service()->GetCategories().empty()); 525 EXPECT_TRUE(service()->GetCategories().empty());
583 ExpectThatSuggestionsAre(category, std::vector<int>()); 526 ExpectThatSuggestionsAre(category, std::vector<int>());
584 527
585 service()->RemoveObserver(&observer); 528 service()->RemoveObserver(&observer);
586 } 529 }
587 530
588 TEST_F(ContentSuggestionsServiceTest, ShouldForwardClearHistoryToProviders) { 531 TEST_F(ContentSuggestionsServiceTest, ShouldForwardClearHistoryToProviders) {
589 Category category = Category::FromKnownCategory(KnownCategories::DOWNLOADS); 532 Category category = Category::FromKnownCategory(KnownCategories::DOWNLOADS);
590 MockProvider* provider = MakeRegisteredMockProvider(category); 533 MockContentSuggestionsProvider* provider =
534 MakeRegisteredMockProvider(category);
591 base::Time begin = base::Time::FromTimeT(123); 535 base::Time begin = base::Time::FromTimeT(123);
592 base::Time end = base::Time::FromTimeT(456); 536 base::Time end = base::Time::FromTimeT(456);
593 EXPECT_CALL(*provider, ClearHistory(begin, end, _)); 537 EXPECT_CALL(*provider, ClearHistory(begin, end, _));
594 base::Callback<bool(const GURL& url)> filter; 538 base::Callback<bool(const GURL& url)> filter;
595 service()->ClearHistory(begin, end, filter); 539 service()->ClearHistory(begin, end, filter);
596 } 540 }
597 541
598 TEST_F(ContentSuggestionsServiceTest, 542 TEST_F(ContentSuggestionsServiceTest,
599 ShouldForwardClearHistoryToCategoryRanker) { 543 ShouldForwardClearHistoryToCategoryRanker) {
600 auto mock_ranker = base::MakeUnique<MockCategoryRanker>(); 544 auto mock_ranker = base::MakeUnique<MockCategoryRanker>();
601 MockCategoryRanker* raw_mock_ranker = mock_ranker.get(); 545 MockCategoryRanker* raw_mock_ranker = mock_ranker.get();
602 SetCategoryRanker(std::move(mock_ranker)); 546 SetCategoryRanker(std::move(mock_ranker));
603 547
604 // The service is recreated to pick up the new ranker. 548 // The service is recreated to pick up the new ranker.
605 ResetService(); 549 ResetService();
606 550
607 base::Time begin = base::Time::FromTimeT(123), 551 base::Time begin = base::Time::FromTimeT(123),
608 end = base::Time::FromTimeT(456); 552 end = base::Time::FromTimeT(456);
609 EXPECT_CALL(*raw_mock_ranker, ClearHistory(begin, end)); 553 EXPECT_CALL(*raw_mock_ranker, ClearHistory(begin, end));
610 base::Callback<bool(const GURL& url)> filter; 554 base::Callback<bool(const GURL& url)> filter;
611 service()->ClearHistory(begin, end, filter); 555 service()->ClearHistory(begin, end, filter);
612 } 556 }
613 557
614 TEST_F(ContentSuggestionsServiceTest, ShouldForwardDeleteAllHistoryURLs) { 558 TEST_F(ContentSuggestionsServiceTest, ShouldForwardDeleteAllHistoryURLs) {
615 StrictMock<MockServiceObserver> observer; 559 StrictMock<MockServiceObserver> observer;
616 service()->AddObserver(&observer); 560 service()->AddObserver(&observer);
617 EXPECT_CALL(observer, OnFullRefreshRequired()); 561 EXPECT_CALL(observer, OnFullRefreshRequired());
618 562
619 Category category = Category::FromKnownCategory(KnownCategories::DOWNLOADS); 563 Category category = Category::FromKnownCategory(KnownCategories::DOWNLOADS);
620 MockProvider* provider = MakeRegisteredMockProvider(category); 564 MockContentSuggestionsProvider* provider =
565 MakeRegisteredMockProvider(category);
621 EXPECT_CALL(*provider, ClearHistory(base::Time(), base::Time::Max(), _)); 566 EXPECT_CALL(*provider, ClearHistory(base::Time(), base::Time::Max(), _));
622 static_cast<history::HistoryServiceObserver*>(service())->OnURLsDeleted( 567 static_cast<history::HistoryServiceObserver*>(service())->OnURLsDeleted(
623 /*history_service=*/nullptr, /*all_history=*/true, /*expired=*/false, 568 /*history_service=*/nullptr, /*all_history=*/true, /*expired=*/false,
624 history::URLRows(), /*favicon_urls=*/std::set<GURL>()); 569 history::URLRows(), /*favicon_urls=*/std::set<GURL>());
625 570
626 service()->RemoveObserver(&observer); 571 service()->RemoveObserver(&observer);
627 } 572 }
628 573
629 TEST_F(ContentSuggestionsServiceTest, ShouldIgnoreExpiredURLDeletions) { 574 TEST_F(ContentSuggestionsServiceTest, ShouldIgnoreExpiredURLDeletions) {
630 Category category = Category::FromKnownCategory(KnownCategories::DOWNLOADS); 575 Category category = Category::FromKnownCategory(KnownCategories::DOWNLOADS);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
668 /*favicon_urls=*/std::set<GURL>()); 613 /*favicon_urls=*/std::set<GURL>());
669 } 614 }
670 615
671 TEST_F(ContentSuggestionsServiceTest, 616 TEST_F(ContentSuggestionsServiceTest,
672 ShouldClearHistoryForMultipleURLDeletion) { 617 ShouldClearHistoryForMultipleURLDeletion) {
673 StrictMock<MockServiceObserver> observer; 618 StrictMock<MockServiceObserver> observer;
674 service()->AddObserver(&observer); 619 service()->AddObserver(&observer);
675 EXPECT_CALL(observer, OnFullRefreshRequired()); 620 EXPECT_CALL(observer, OnFullRefreshRequired());
676 621
677 Category category = Category::FromKnownCategory(KnownCategories::DOWNLOADS); 622 Category category = Category::FromKnownCategory(KnownCategories::DOWNLOADS);
678 MockProvider* provider = MakeRegisteredMockProvider(category); 623 MockContentSuggestionsProvider* provider =
624 MakeRegisteredMockProvider(category);
679 EXPECT_CALL(*provider, ClearHistory(base::Time(), base::Time::Max(), _)); 625 EXPECT_CALL(*provider, ClearHistory(base::Time(), base::Time::Max(), _));
680 626
681 static_cast<history::HistoryServiceObserver*>(service())->OnURLsDeleted( 627 static_cast<history::HistoryServiceObserver*>(service())->OnURLsDeleted(
682 /*history_service=*/nullptr, /*all_history=*/false, 628 /*history_service=*/nullptr, /*all_history=*/false,
683 /*expired=*/false, 629 /*expired=*/false,
684 history::URLRows({history::URLRow(GURL("http://google.com")), 630 history::URLRows({history::URLRow(GURL("http://google.com")),
685 history::URLRow(GURL("http://youtube.com"))}), 631 history::URLRow(GURL("http://youtube.com"))}),
686 /*favicon_urls=*/std::set<GURL>()); 632 /*favicon_urls=*/std::set<GURL>());
687 633
688 service()->RemoveObserver(&observer); 634 service()->RemoveObserver(&observer);
689 } 635 }
690 636
691 TEST_F(ContentSuggestionsServiceTest, ShouldForwardFetch) { 637 TEST_F(ContentSuggestionsServiceTest, ShouldForwardFetch) {
692 Category category = Category::FromKnownCategory(KnownCategories::ARTICLES); 638 Category category = Category::FromKnownCategory(KnownCategories::ARTICLES);
693 std::set<std::string> known_suggestions; 639 std::set<std::string> known_suggestions;
694 MockProvider* provider = MakeRegisteredMockProvider(category); 640 MockContentSuggestionsProvider* provider =
641 MakeRegisteredMockProvider(category);
695 provider->FireCategoryStatusChangedWithCurrentStatus(category); 642 provider->FireCategoryStatusChangedWithCurrentStatus(category);
696 EXPECT_CALL(*provider, Fetch(category, known_suggestions, _)); 643 EXPECT_CALL(*provider, Fetch(category, known_suggestions, _));
697 service()->Fetch(category, known_suggestions, FetchDoneCallback()); 644 service()->Fetch(category, known_suggestions, FetchDoneCallback());
698 } 645 }
699 646
700 TEST_F(ContentSuggestionsServiceTest, DismissAndRestoreCategory) { 647 TEST_F(ContentSuggestionsServiceTest, DismissAndRestoreCategory) {
701 // Register a category with one suggestion. 648 // Register a category with one suggestion.
702 Category category = Category::FromKnownCategory(KnownCategories::ARTICLES); 649 Category category = Category::FromKnownCategory(KnownCategories::ARTICLES);
703 MockProvider* provider = MakeRegisteredMockProvider(category); 650 MockContentSuggestionsProvider* provider =
651 MakeRegisteredMockProvider(category);
704 provider->FireCategoryStatusChangedWithCurrentStatus(category); 652 provider->FireCategoryStatusChangedWithCurrentStatus(category);
705 provider->FireSuggestionsChanged(category, CreateSuggestions(category, {42})); 653 provider->FireSuggestionsChanged(category, CreateSuggestions(category, {42}));
706 654
707 EXPECT_THAT(service()->GetCategories(), UnorderedElementsAre(category)); 655 EXPECT_THAT(service()->GetCategories(), UnorderedElementsAre(category));
708 EXPECT_THAT(service()->GetCategoryStatus(category), 656 EXPECT_THAT(service()->GetCategoryStatus(category),
709 Eq(CategoryStatus::AVAILABLE)); 657 Eq(CategoryStatus::AVAILABLE));
710 ExpectThatSuggestionsAre(category, {42}); 658 ExpectThatSuggestionsAre(category, {42});
711 EXPECT_THAT(providers().count(category), Eq(1ul)); 659 EXPECT_THAT(providers().count(category), Eq(1ul));
712 EXPECT_THAT(dismissed_providers(), IsEmpty()); 660 EXPECT_THAT(dismissed_providers(), IsEmpty());
713 661
(...skipping 18 matching lines...) Expand all
732 EXPECT_THAT(providers().count(category), Eq(1ul)); 680 EXPECT_THAT(providers().count(category), Eq(1ul));
733 EXPECT_THAT(dismissed_providers(), IsEmpty()); 681 EXPECT_THAT(dismissed_providers(), IsEmpty());
734 } 682 }
735 683
736 TEST_F(ContentSuggestionsServiceTest, ShouldRestoreDismissedCategories) { 684 TEST_F(ContentSuggestionsServiceTest, ShouldRestoreDismissedCategories) {
737 // Create and register provider. 685 // Create and register provider.
738 Category category1 = Category::FromIDValue(1); 686 Category category1 = Category::FromIDValue(1);
739 Category category2 = Category::FromIDValue(2); 687 Category category2 = Category::FromIDValue(2);
740 688
741 // Setup and verify initial state. 689 // Setup and verify initial state.
742 MockProvider* provider = MakeRegisteredMockProvider({category1, category2}); 690 MockContentSuggestionsProvider* provider =
691 MakeRegisteredMockProvider({category1, category2});
743 provider->FireCategoryStatusChangedWithCurrentStatus(category1); 692 provider->FireCategoryStatusChangedWithCurrentStatus(category1);
744 provider->FireCategoryStatusChangedWithCurrentStatus(category2); 693 provider->FireCategoryStatusChangedWithCurrentStatus(category2);
745 694
746 ASSERT_THAT(service()->GetCategoryStatus(category1), 695 ASSERT_THAT(service()->GetCategoryStatus(category1),
747 Eq(CategoryStatus::AVAILABLE)); 696 Eq(CategoryStatus::AVAILABLE));
748 ASSERT_THAT(service()->GetCategoryStatus(category2), 697 ASSERT_THAT(service()->GetCategoryStatus(category2),
749 Eq(CategoryStatus::AVAILABLE)); 698 Eq(CategoryStatus::AVAILABLE));
750 699
751 // Dismiss all the categories. None should be provided now. 700 // Dismiss all the categories. None should be provided now.
752 service()->DismissCategory(category1); 701 service()->DismissCategory(category1);
(...skipping 26 matching lines...) Expand all
779 728
780 EXPECT_THAT(service()->GetCategoryStatus(category1), 729 EXPECT_THAT(service()->GetCategoryStatus(category1),
781 Eq(CategoryStatus::AVAILABLE)); 730 Eq(CategoryStatus::AVAILABLE));
782 EXPECT_THAT(service()->GetCategoryStatus(category2), 731 EXPECT_THAT(service()->GetCategoryStatus(category2),
783 Eq(CategoryStatus::NOT_PROVIDED)); 732 Eq(CategoryStatus::NOT_PROVIDED));
784 } 733 }
785 734
786 TEST_F(ContentSuggestionsServiceTest, ShouldRestoreDismissalsFromPrefs) { 735 TEST_F(ContentSuggestionsServiceTest, ShouldRestoreDismissalsFromPrefs) {
787 // Register a category with one suggestion. 736 // Register a category with one suggestion.
788 Category category = Category::FromKnownCategory(KnownCategories::ARTICLES); 737 Category category = Category::FromKnownCategory(KnownCategories::ARTICLES);
789 MockProvider* provider = MakeRegisteredMockProvider(category); 738 MockContentSuggestionsProvider* provider =
739 MakeRegisteredMockProvider(category);
790 provider->FireCategoryStatusChangedWithCurrentStatus(category); 740 provider->FireCategoryStatusChangedWithCurrentStatus(category);
791 741
792 // For a regular initialisation, the category is not dismissed. 742 // For a regular initialisation, the category is not dismissed.
793 ASSERT_FALSE(service()->IsCategoryDismissed(category)); 743 ASSERT_FALSE(service()->IsCategoryDismissed(category));
794 744
795 // Dismiss the category. 745 // Dismiss the category.
796 service()->DismissCategory(category); 746 service()->DismissCategory(category);
797 ASSERT_TRUE(service()->IsCategoryDismissed(category)); 747 ASSERT_TRUE(service()->IsCategoryDismissed(category));
798 748
799 // Simulate a Chrome restart. The category should still be dismissed. 749 // Simulate a Chrome restart. The category should still be dismissed.
(...skipping 17 matching lines...) Expand all
817 767
818 auto fake_ranker = base::MakeUnique<FakeCategoryRanker>(); 768 auto fake_ranker = base::MakeUnique<FakeCategoryRanker>();
819 FakeCategoryRanker* raw_fake_ranker = fake_ranker.get(); 769 FakeCategoryRanker* raw_fake_ranker = fake_ranker.get();
820 SetCategoryRanker(std::move(fake_ranker)); 770 SetCategoryRanker(std::move(fake_ranker));
821 771
822 raw_fake_ranker->SetOrder({first_category, second_category}); 772 raw_fake_ranker->SetOrder({first_category, second_category});
823 773
824 // The service is recreated to pick up the new ranker. 774 // The service is recreated to pick up the new ranker.
825 ResetService(); 775 ResetService();
826 776
827 MockProvider* provider = 777 MockContentSuggestionsProvider* provider =
828 MakeRegisteredMockProvider({first_category, second_category}); 778 MakeRegisteredMockProvider({first_category, second_category});
829 provider->FireCategoryStatusChangedWithCurrentStatus(first_category); 779 provider->FireCategoryStatusChangedWithCurrentStatus(first_category);
830 provider->FireCategoryStatusChangedWithCurrentStatus(second_category); 780 provider->FireCategoryStatusChangedWithCurrentStatus(second_category);
831 781
832 EXPECT_THAT(service()->GetCategories(), 782 EXPECT_THAT(service()->GetCategories(),
833 ElementsAre(first_category, second_category)); 783 ElementsAre(first_category, second_category));
834 784
835 // The order to display (in the ranker) changes. 785 // The order to display (in the ranker) changes.
836 raw_fake_ranker->SetOrder({second_category, first_category}); 786 raw_fake_ranker->SetOrder({second_category, first_category});
837 787
838 // Categories order should reflect the new order. 788 // Categories order should reflect the new order.
839 EXPECT_THAT(service()->GetCategories(), 789 EXPECT_THAT(service()->GetCategories(),
840 ElementsAre(second_category, first_category)); 790 ElementsAre(second_category, first_category));
841 } 791 }
842 792
843 TEST_F(ContentSuggestionsServiceTest, 793 TEST_F(ContentSuggestionsServiceTest,
844 ShouldForwardDismissedCategoryToCategoryRanker) { 794 ShouldForwardDismissedCategoryToCategoryRanker) {
845 auto mock_ranker = base::MakeUnique<MockCategoryRanker>(); 795 auto mock_ranker = base::MakeUnique<MockCategoryRanker>();
846 MockCategoryRanker* raw_mock_ranker = mock_ranker.get(); 796 MockCategoryRanker* raw_mock_ranker = mock_ranker.get();
847 SetCategoryRanker(std::move(mock_ranker)); 797 SetCategoryRanker(std::move(mock_ranker));
848 798
849 // The service is recreated to pick up the new ranker. 799 // The service is recreated to pick up the new ranker.
850 ResetService(); 800 ResetService();
851 801
852 Category category = Category::FromKnownCategory(KnownCategories::BOOKMARKS); 802 Category category = Category::FromKnownCategory(KnownCategories::BOOKMARKS);
853 MockProvider* provider = MakeRegisteredMockProvider(category); 803 MockContentSuggestionsProvider* provider =
804 MakeRegisteredMockProvider(category);
854 provider->FireCategoryStatusChangedWithCurrentStatus(category); 805 provider->FireCategoryStatusChangedWithCurrentStatus(category);
855 806
856 EXPECT_CALL(*raw_mock_ranker, OnCategoryDismissed(category)); 807 EXPECT_CALL(*raw_mock_ranker, OnCategoryDismissed(category));
857 service()->DismissCategory(category); 808 service()->DismissCategory(category);
858 } 809 }
859 810
860 } // namespace ntp_snippets 811 } // namespace ntp_snippets
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698