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

Side by Side Diff: chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/SuggestionsSectionTest.java

Issue 2623993007: 🏠 Extract the ContentSuggestionManager interface from NTP (Closed)
Patch Set: aaaand rebase again 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
« no previous file with comments | « chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/SectionListTest.java ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 package org.chromium.chrome.browser.ntp.cards; 5 package org.chromium.chrome.browser.ntp.cards;
6 6
7 import static org.junit.Assert.assertEquals; 7 import static org.junit.Assert.assertEquals;
8 import static org.junit.Assert.assertFalse; 8 import static org.junit.Assert.assertFalse;
9 import static org.junit.Assert.assertNotNull; 9 import static org.junit.Assert.assertNotNull;
10 import static org.junit.Assert.assertNull; 10 import static org.junit.Assert.assertNull;
(...skipping 15 matching lines...) Expand all
26 import org.junit.Test; 26 import org.junit.Test;
27 import org.junit.runner.RunWith; 27 import org.junit.runner.RunWith;
28 import org.mockito.Mock; 28 import org.mockito.Mock;
29 import org.mockito.MockitoAnnotations; 29 import org.mockito.MockitoAnnotations;
30 import org.robolectric.annotation.Config; 30 import org.robolectric.annotation.Config;
31 31
32 import org.chromium.base.Callback; 32 import org.chromium.base.Callback;
33 import org.chromium.base.test.util.Feature; 33 import org.chromium.base.test.util.Feature;
34 import org.chromium.chrome.browser.ChromeFeatureList; 34 import org.chromium.chrome.browser.ChromeFeatureList;
35 import org.chromium.chrome.browser.EnableFeatures; 35 import org.chromium.chrome.browser.EnableFeatures;
36 import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager;
37 import org.chromium.chrome.browser.ntp.cards.ContentSuggestionsTestUtils.Categor yInfoBuilder; 36 import org.chromium.chrome.browser.ntp.cards.ContentSuggestionsTestUtils.Categor yInfoBuilder;
38 import org.chromium.chrome.browser.ntp.snippets.CategoryStatus; 37 import org.chromium.chrome.browser.ntp.snippets.CategoryStatus;
39 import org.chromium.chrome.browser.ntp.snippets.SnippetArticle; 38 import org.chromium.chrome.browser.ntp.snippets.SnippetArticle;
40 import org.chromium.chrome.browser.ntp.snippets.SuggestionsSource; 39 import org.chromium.chrome.browser.ntp.snippets.SuggestionsSource;
41 import org.chromium.chrome.browser.offlinepages.OfflinePageItem; 40 import org.chromium.chrome.browser.offlinepages.OfflinePageItem;
42 import org.chromium.chrome.browser.suggestions.SuggestionsMetricsReporter; 41 import org.chromium.chrome.browser.suggestions.SuggestionsMetricsReporter;
42 import org.chromium.chrome.browser.suggestions.SuggestionsNavigationDelegate;
43 import org.chromium.chrome.browser.suggestions.SuggestionsRanker; 43 import org.chromium.chrome.browser.suggestions.SuggestionsRanker;
44 import org.chromium.chrome.browser.suggestions.SuggestionsUiDelegate;
44 import org.chromium.testing.local.LocalRobolectricTestRunner; 45 import org.chromium.testing.local.LocalRobolectricTestRunner;
45 46
46 import java.util.Arrays; 47 import java.util.Arrays;
47 import java.util.HashMap; 48 import java.util.HashMap;
48 import java.util.List; 49 import java.util.List;
49 50
50 /** 51 /**
51 * Unit tests for {@link SuggestionsSection}. 52 * Unit tests for {@link SuggestionsSection}.
52 */ 53 */
53 @RunWith(LocalRobolectricTestRunner.class) 54 @RunWith(LocalRobolectricTestRunner.class)
54 @Config(manifest = Config.NONE) 55 @Config(manifest = Config.NONE)
55 public class SuggestionsSectionTest { 56 public class SuggestionsSectionTest {
56 @Mock 57 @Mock
57 private SuggestionsSection.Delegate mDelegate; 58 private SuggestionsSection.Delegate mDelegate;
58 @Mock 59 @Mock
59 private NodeParent mParent; 60 private NodeParent mParent;
60 @Mock private NewTabPageManager mManager; 61 @Mock
62 private SuggestionsUiDelegate mUiDelegate;
61 private FakeOfflinePageBridge mBridge; 63 private FakeOfflinePageBridge mBridge;
62 64
63 @Before 65 @Before
64 public void setUp() { 66 public void setUp() {
65 MockitoAnnotations.initMocks(this); 67 MockitoAnnotations.initMocks(this);
66 mBridge = new FakeOfflinePageBridge(); 68 mBridge = new FakeOfflinePageBridge();
67 69
68 // Set empty variation params for the test. 70 // Set empty variation params for the test.
69 CardsVariationParameters.setTestVariationParams(new HashMap<String, Stri ng>()); 71 CardsVariationParameters.setTestVariationParams(new HashMap<String, Stri ng>());
70 } 72 }
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 } 460 }
459 461
460 private SuggestionsSection createSectionWithReloadAction(boolean hasReloadAc tion) { 462 private SuggestionsSection createSectionWithReloadAction(boolean hasReloadAc tion) {
461 CategoryInfoBuilder builder = new CategoryInfoBuilder(42).showIfEmpty(); 463 CategoryInfoBuilder builder = new CategoryInfoBuilder(42).showIfEmpty();
462 if (hasReloadAction) builder.withReloadAction(); 464 if (hasReloadAction) builder.withReloadAction();
463 return createSection(builder.build()); 465 return createSection(builder.build());
464 } 466 }
465 467
466 private SuggestionsSection createSection(SuggestionsCategoryInfo info) { 468 private SuggestionsSection createSection(SuggestionsCategoryInfo info) {
467 SuggestionsSection section = new SuggestionsSection( 469 SuggestionsSection section = new SuggestionsSection(
468 mDelegate, mManager, mock(SuggestionsRanker.class), mBridge, inf o); 470 mDelegate, mUiDelegate, mock(SuggestionsRanker.class), mBridge, info);
469 section.setParent(mParent); 471 section.setParent(mParent);
470 return section; 472 return section;
471 } 473 }
472 474
473 private OfflinePageItem createOfflinePageItem(String url, long offlineId) { 475 private OfflinePageItem createOfflinePageItem(String url, long offlineId) {
474 return new OfflinePageItem(url, offlineId, "", "", "", 0, 0, 0, 0); 476 return new OfflinePageItem(url, offlineId, "", "", "", 0, 0, 0, 0);
475 } 477 }
476 478
477 private static void verifyAction(SuggestionsSection section, @ActionItem.Act ion int action) { 479 private static void verifyAction(SuggestionsSection section, @ActionItem.Act ion int action) {
478 SuggestionsSource suggestionsSource = mock(SuggestionsSource.class); 480 SuggestionsSource suggestionsSource = mock(SuggestionsSource.class);
479 NewTabPageManager manager = mock(NewTabPageManager.class); 481 SuggestionsUiDelegate manager = mock(SuggestionsUiDelegate.class);
482 SuggestionsNavigationDelegate navDelegate = mock(SuggestionsNavigationDe legate.class);
480 when(manager.getSuggestionsSource()).thenReturn(suggestionsSource); 483 when(manager.getSuggestionsSource()).thenReturn(suggestionsSource);
481 when(manager.getSuggestionsMetricsReporter()) 484 when(manager.getNavigationDelegate()).thenReturn(navDelegate);
482 .thenReturn(mock(SuggestionsMetricsReporter.class)); 485 when(manager.getMetricsReporter()).thenReturn(mock(SuggestionsMetricsRep orter.class));
483 486
484 if (action != ActionItem.ACTION_NONE) { 487 if (action != ActionItem.ACTION_NONE) {
485 section.getActionItem().performAction(manager); 488 section.getActionItem().performAction(manager);
486 } 489 }
487 490
488 verify(section.getCategoryInfo(), 491 verify(section.getCategoryInfo(),
489 (action == ActionItem.ACTION_VIEW_ALL ? times(1) : never())) 492 (action == ActionItem.ACTION_VIEW_ALL ? times(1) : never()))
490 .performViewAllAction(manager); 493 .performViewAllAction(navDelegate);
491 verify(suggestionsSource, 494 verify(suggestionsSource,
492 action == ActionItem.ACTION_RELOAD || action == ActionItem.ACTIO N_FETCH_MORE 495 action == ActionItem.ACTION_RELOAD || action == ActionItem.ACTIO N_FETCH_MORE
493 ? times(1) 496 ? times(1)
494 : never()) 497 : never())
495 .fetchSuggestions(anyInt(), any(String[].class)); 498 .fetchSuggestions(anyInt(), any(String[].class));
496 } 499 }
497 } 500 }
OLDNEW
« no previous file with comments | « chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/SectionListTest.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698