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: chrome/browser/ntp_snippets/download_suggestions_provider_unittest.cc

Issue 2568033005: [NTP::SectionOrder] Replace CategoryFactory with a category ranker. (Closed)
Patch Set: rebase. Created 4 years 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 "chrome/browser/ntp_snippets/download_suggestions_provider.h" 5 #include "chrome/browser/ntp_snippets/download_suggestions_provider.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/observer_list.h" 10 #include "base/observer_list.h"
11 #include "base/strings/string_number_conversions.h" 11 #include "base/strings/string_number_conversions.h"
12 #include "chrome/browser/ntp_snippets/fake_download_item.h" 12 #include "chrome/browser/ntp_snippets/fake_download_item.h"
13 #include "components/ntp_snippets/category.h" 13 #include "components/ntp_snippets/category.h"
14 #include "components/ntp_snippets/category_factory.h"
15 #include "components/ntp_snippets/mock_content_suggestions_provider_observer.h" 14 #include "components/ntp_snippets/mock_content_suggestions_provider_observer.h"
16 #include "components/ntp_snippets/offline_pages/offline_pages_test_utils.h" 15 #include "components/ntp_snippets/offline_pages/offline_pages_test_utils.h"
17 #include "components/offline_pages/core/client_namespace_constants.h" 16 #include "components/offline_pages/core/client_namespace_constants.h"
18 #include "components/prefs/testing_pref_service.h" 17 #include "components/prefs/testing_pref_service.h"
19 #include "content/public/test/mock_download_item.h" 18 #include "content/public/test/mock_download_item.h"
20 #include "content/public/test/mock_download_manager.h" 19 #include "content/public/test/mock_download_manager.h"
21 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
22 21
23 using content::DownloadItem; 22 using content::DownloadItem;
24 using content::MockDownloadManager; 23 using content::MockDownloadManager;
25 using ntp_snippets::Category; 24 using ntp_snippets::Category;
26 using ntp_snippets::CategoryFactory;
27 using ntp_snippets::ContentSuggestion; 25 using ntp_snippets::ContentSuggestion;
28 using ntp_snippets::ContentSuggestionsProvider; 26 using ntp_snippets::ContentSuggestionsProvider;
29 using ntp_snippets::MockContentSuggestionsProviderObserver; 27 using ntp_snippets::MockContentSuggestionsProviderObserver;
30 using ntp_snippets::test::CaptureDismissedSuggestions; 28 using ntp_snippets::test::CaptureDismissedSuggestions;
31 using ntp_snippets::test::FakeOfflinePageModel; 29 using ntp_snippets::test::FakeOfflinePageModel;
32 using ntp_snippets::CategoryStatus; 30 using ntp_snippets::CategoryStatus;
33 using offline_pages::ClientId; 31 using offline_pages::ClientId;
34 using offline_pages::OfflinePageItem; 32 using offline_pages::OfflinePageItem;
35 using test::FakeDownloadItem; 33 using test::FakeDownloadItem;
36 using testing::_; 34 using testing::_;
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 248
251 void IgnoreOnSuggestionInvalidated() { 249 void IgnoreOnSuggestionInvalidated() {
252 EXPECT_CALL(observer_, OnSuggestionInvalidated(_, _)).Times(AnyNumber()); 250 EXPECT_CALL(observer_, OnSuggestionInvalidated(_, _)).Times(AnyNumber());
253 } 251 }
254 252
255 DownloadSuggestionsProvider* CreateProvider(bool show_assets, 253 DownloadSuggestionsProvider* CreateProvider(bool show_assets,
256 bool show_offline_pages) { 254 bool show_offline_pages) {
257 DCHECK(!provider_); 255 DCHECK(!provider_);
258 DCHECK(show_assets || show_offline_pages); 256 DCHECK(show_assets || show_offline_pages);
259 provider_ = base::MakeUnique<DownloadSuggestionsProvider>( 257 provider_ = base::MakeUnique<DownloadSuggestionsProvider>(
260 &observer_, &category_factory_, 258 &observer_, show_offline_pages ? &offline_pages_model_ : nullptr,
261 show_offline_pages ? &offline_pages_model_ : nullptr,
262 show_assets ? &downloads_manager_ : nullptr, pref_service(), 259 show_assets ? &downloads_manager_ : nullptr, pref_service(),
263 /*download_manager_ui_enabled=*/false); 260 /*download_manager_ui_enabled=*/false);
264 return provider_.get(); 261 return provider_.get();
265 } 262 }
266 263
267 void DestroyProvider() { provider_.reset(); } 264 void DestroyProvider() { provider_.reset(); }
268 265
269 Category downloads_category() { 266 Category downloads_category() {
270 return category_factory_.FromKnownCategory( 267 return Category::FromKnownCategory(
271 ntp_snippets::KnownCategories::DOWNLOADS); 268 ntp_snippets::KnownCategories::DOWNLOADS);
272 } 269 }
273 270
274 void FireOfflinePageModelLoaded() { 271 void FireOfflinePageModelLoaded() {
275 DCHECK(provider_); 272 DCHECK(provider_);
276 provider_->OfflinePageModelLoaded(&offline_pages_model_); 273 provider_->OfflinePageModelLoaded(&offline_pages_model_);
277 } 274 }
278 275
279 void AddOfflinePage(const offline_pages::OfflinePageItem& added_page) { 276 void AddOfflinePage(const offline_pages::OfflinePageItem& added_page) {
280 DCHECK(provider_); 277 DCHECK(provider_);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 return &downloads_manager_; 319 return &downloads_manager_;
323 } 320 }
324 FakeOfflinePageModel* offline_pages_model() { return &offline_pages_model_; } 321 FakeOfflinePageModel* offline_pages_model() { return &offline_pages_model_; }
325 MockContentSuggestionsProviderObserver* observer() { return &observer_; } 322 MockContentSuggestionsProviderObserver* observer() { return &observer_; }
326 TestingPrefServiceSimple* pref_service() { return pref_service_.get(); } 323 TestingPrefServiceSimple* pref_service() { return pref_service_.get(); }
327 324
328 private: 325 private:
329 ObservedMockDownloadManager downloads_manager_; 326 ObservedMockDownloadManager downloads_manager_;
330 FakeOfflinePageModel offline_pages_model_; 327 FakeOfflinePageModel offline_pages_model_;
331 StrictMock<MockContentSuggestionsProviderObserver> observer_; 328 StrictMock<MockContentSuggestionsProviderObserver> observer_;
332 CategoryFactory category_factory_;
333 std::unique_ptr<TestingPrefServiceSimple> pref_service_; 329 std::unique_ptr<TestingPrefServiceSimple> pref_service_;
334 // Last so that the dependencies are deleted after the provider. 330 // Last so that the dependencies are deleted after the provider.
335 std::unique_ptr<DownloadSuggestionsProvider> provider_; 331 std::unique_ptr<DownloadSuggestionsProvider> provider_;
336 332
337 DISALLOW_COPY_AND_ASSIGN(DownloadSuggestionsProviderTest); 333 DISALLOW_COPY_AND_ASSIGN(DownloadSuggestionsProviderTest);
338 }; 334 };
339 335
340 TEST_F(DownloadSuggestionsProviderTest, 336 TEST_F(DownloadSuggestionsProviderTest,
341 ShouldConvertOfflinePagesToSuggestions) { 337 ShouldConvertOfflinePagesToSuggestions) {
342 IgnoreOnCategoryStatusChangedToAvailable(); 338 IgnoreOnCategoryStatusChangedToAvailable();
(...skipping 660 matching lines...) Expand 10 before | Expand all | Expand 10 after
1003 EXPECT_THAT(GetDismissedSuggestions(), SizeIs(kMaxDismissedIdCount)); 999 EXPECT_THAT(GetDismissedSuggestions(), SizeIs(kMaxDismissedIdCount));
1004 DestroyProvider(); 1000 DestroyProvider();
1005 // The oldest dismissed suggestion must become undismissed now. This is a 1001 // The oldest dismissed suggestion must become undismissed now. This is a
1006 // temporary workaround and not what we want in long term. This test must be 1002 // temporary workaround and not what we want in long term. This test must be
1007 // removed once we start pruning dismissed asset downloads on startup. 1003 // removed once we start pruning dismissed asset downloads on startup.
1008 EXPECT_CALL(*observer(), 1004 EXPECT_CALL(*observer(),
1009 OnNewSuggestions(_, downloads_category(), 1005 OnNewSuggestions(_, downloads_category(),
1010 ElementsAre(HasUrl("http://download.com/0")))); 1006 ElementsAre(HasUrl("http://download.com/0"))));
1011 CreateProvider(/*show_assets=*/true, /*show_offline_pages=*/false); 1007 CreateProvider(/*show_assets=*/true, /*show_offline_pages=*/false);
1012 } 1008 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698