1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "components/ntp_snippets/mock_content_suggestions_provider.h"
6
7 #include <utility>
8
9 #include "base/bind.h"
10 #include "base/strings/utf_string_conversions.h"
11
12 namespace ntp_snippets {
13
MockContentSuggestionsProvider(Observer * observer,const std::vector<Category> & provided_categories)14 MockContentSuggestionsProvider::MockContentSuggestionsProvider(
15 Observer* observer,
16 const std::vector<Category>& provided_categories)
17 : ContentSuggestionsProvider(observer) {
18 SetProvidedCategories(provided_categories);
19 }
20
~MockContentSuggestionsProvider()21 MockContentSuggestionsProvider::~MockContentSuggestionsProvider() {
22 if (destructor_callback_) {
23 std::move(destructor_callback_).Run();
24 }
25 }
26
SetProvidedCategories(const std::vector<Category> & provided_categories)27 void MockContentSuggestionsProvider::SetProvidedCategories(
28 const std::vector<Category>& provided_categories) {
29 statuses_.clear();
30 provided_categories_ = provided_categories;
31 for (Category category : provided_categories) {
32 statuses_[category.id()] = CategoryStatus::AVAILABLE;
33 }
34 }
35
GetCategoryStatus(Category category)36 CategoryStatus MockContentSuggestionsProvider::GetCategoryStatus(
37 Category category) {
38 return statuses_[category.id()];
39 }
40
GetCategoryInfo(Category category)41 CategoryInfo MockContentSuggestionsProvider::GetCategoryInfo(
42 Category category) {
43 return CategoryInfo(base::ASCIIToUTF16("Section title"),
44 ContentSuggestionsCardLayout::FULL_CARD,
45 ContentSuggestionsAdditionalAction::FETCH,
46 /*show_if_empty=*/false,
47 base::ASCIIToUTF16("No suggestions message"));
48 }
49
SetDestructorCallback(DestructorCallback callback)50 void MockContentSuggestionsProvider::SetDestructorCallback(
51 DestructorCallback callback) {
52 destructor_callback_ = std::move(callback);
53 }
54
Fetch(const Category & category,const std::set<std::string> & set,FetchDoneCallback callback)55 void MockContentSuggestionsProvider::Fetch(const Category& category,
56 const std::set<std::string>& set,
57 FetchDoneCallback callback) {
58 FetchMock(category, set, &callback);
59 }
60
FetchSuggestionImage(const ContentSuggestion::ID & id,ImageFetchedCallback callback)61 void MockContentSuggestionsProvider::FetchSuggestionImage(
62 const ContentSuggestion::ID& id,
63 ImageFetchedCallback callback) {
64 FetchSuggestionImageMock(id, callback);
65 }
66
FetchSuggestionImageData(const ContentSuggestion::ID & id,ImageDataFetchedCallback callback)67 void MockContentSuggestionsProvider::FetchSuggestionImageData(
68 const ContentSuggestion::ID& id,
69 ImageDataFetchedCallback callback) {
70 FetchSuggestionImageDataMock(id, &callback);
71 }
72
FireSuggestionsChanged(Category category,std::vector<ContentSuggestion> suggestions)73 void MockContentSuggestionsProvider::FireSuggestionsChanged(
74 Category category,
75 std::vector<ContentSuggestion> suggestions) {
76 observer()->OnNewSuggestions(this, category, std::move(suggestions));
77 }
78
FireCategoryStatusChanged(Category category,CategoryStatus new_status)79 void MockContentSuggestionsProvider::FireCategoryStatusChanged(
80 Category category,
81 CategoryStatus new_status) {
82 statuses_[category.id()] = new_status;
83 observer()->OnCategoryStatusChanged(this, category, new_status);
84 }
85
FireCategoryStatusChangedWithCurrentStatus(Category category)86 void MockContentSuggestionsProvider::FireCategoryStatusChangedWithCurrentStatus(
87 Category category) {
88 observer()->OnCategoryStatusChanged(this, category, statuses_[category.id()]);
89 }
90
FireSuggestionInvalidated(const ContentSuggestion::ID & suggestion_id)91 void MockContentSuggestionsProvider::FireSuggestionInvalidated(
92 const ContentSuggestion::ID& suggestion_id) {
93 observer()->OnSuggestionInvalidated(this, suggestion_id);
94 }
95
GetDismissedSuggestionsForDebugging(Category category,DismissedSuggestionsCallback callback)96 void MockContentSuggestionsProvider::GetDismissedSuggestionsForDebugging(
97 Category category,
98 DismissedSuggestionsCallback callback) {
99 GetDismissedSuggestionsForDebuggingMock(category, callback);
100 }
101
102 } // namespace ntp_snippets
103