| Index: chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapterTest.java
|
| diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapterTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapterTest.java
|
| index 2c50fc0f4a55d03021ed395b261f7c54f20603fa..6b3fa15eb6d7e0026734706529e1c04517e3cb14 100644
|
| --- a/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapterTest.java
|
| +++ b/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapterTest.java
|
| @@ -67,6 +67,7 @@
|
| import org.chromium.chrome.browser.signin.SigninManager;
|
| import org.chromium.chrome.browser.signin.SigninManager.SignInAllowedObserver;
|
| import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver;
|
| +import org.chromium.chrome.browser.suggestions.SuggestionsMetricsReporter;
|
| import org.chromium.testing.local.LocalRobolectricTestRunner;
|
|
|
| import java.util.ArrayList;
|
| @@ -210,6 +211,8 @@ public void setUp() {
|
| new CategoryInfoBuilder(category).showIfEmpty().build());
|
|
|
| when(mNewTabPageManager.getSuggestionsSource()).thenReturn(mSource);
|
| + when(mNewTabPageManager.getSuggestionsMetricsReporter())
|
| + .thenReturn(mock(SuggestionsMetricsReporter.class));
|
| when(mNewTabPageManager.isCurrentPage()).thenReturn(true);
|
|
|
| reloadNtp();
|
| @@ -232,7 +235,8 @@ public void testSuggestionLoading() {
|
| assertItemsFor(sectionWithStatusCard().withProgress());
|
|
|
| final int numSuggestions = 3;
|
| - List<SnippetArticle> suggestions = createDummySuggestions(numSuggestions);
|
| + List<SnippetArticle> suggestions =
|
| + createDummySuggestions(numSuggestions, KnownCategories.ARTICLES);
|
| mSource.setStatusForCategory(KnownCategories.ARTICLES, CategoryStatus.AVAILABLE);
|
| mSource.setSuggestionsForCategory(KnownCategories.ARTICLES, suggestions);
|
|
|
| @@ -245,16 +249,18 @@ public void testSuggestionLoading() {
|
| @Test
|
| @Feature({"Ntp"})
|
| public void testSuggestionLoadingInitiallyEmpty() {
|
| + final int category = KnownCategories.ARTICLES;
|
| +
|
| // If we don't get anything, we should be in the same situation as the initial one.
|
| - mSource.setSuggestionsForCategory(
|
| - KnownCategories.ARTICLES, new ArrayList<SnippetArticle>());
|
| + mSource.setSuggestionsForCategory(category, new ArrayList<SnippetArticle>());
|
| assertItemsFor(sectionWithStatusCard().withProgress());
|
|
|
| // We should load new suggestions when we get notified about them.
|
| final int numSuggestions = 5;
|
| - List<SnippetArticle> suggestions = createDummySuggestions(numSuggestions);
|
| - mSource.setStatusForCategory(KnownCategories.ARTICLES, CategoryStatus.AVAILABLE);
|
| - mSource.setSuggestionsForCategory(KnownCategories.ARTICLES, suggestions);
|
| +
|
| + List<SnippetArticle> suggestions = createDummySuggestions(numSuggestions, category);
|
| + mSource.setStatusForCategory(category, CategoryStatus.AVAILABLE);
|
| + mSource.setSuggestionsForCategory(category, suggestions);
|
|
|
| assertItemsFor(section(numSuggestions));
|
| }
|
| @@ -265,7 +271,7 @@ public void testSuggestionLoadingInitiallyEmpty() {
|
| @Test
|
| @Feature({"Ntp"})
|
| public void testSuggestionClearing() {
|
| - List<SnippetArticle> suggestions = createDummySuggestions(4);
|
| + List<SnippetArticle> suggestions = createDummySuggestions(4, KnownCategories.ARTICLES);
|
| mSource.setStatusForCategory(KnownCategories.ARTICLES, CategoryStatus.AVAILABLE);
|
| mSource.setSuggestionsForCategory(KnownCategories.ARTICLES, suggestions);
|
| assertItemsFor(section(4));
|
| @@ -281,7 +287,7 @@ public void testSuggestionClearing() {
|
| assertItemsFor(sectionWithStatusCard());
|
|
|
| // The adapter should now be waiting for new suggestions.
|
| - suggestions = createDummySuggestions(6);
|
| + suggestions = createDummySuggestions(6, KnownCategories.ARTICLES);
|
| mSource.setStatusForCategory(KnownCategories.ARTICLES, CategoryStatus.AVAILABLE);
|
| mSource.setSuggestionsForCategory(KnownCategories.ARTICLES, suggestions);
|
| assertItemsFor(section(6));
|
| @@ -293,7 +299,7 @@ public void testSuggestionClearing() {
|
| @Test
|
| @Feature({"Ntp"})
|
| public void testSuggestionLoadingBlock() {
|
| - List<SnippetArticle> suggestions = createDummySuggestions(3);
|
| + List<SnippetArticle> suggestions = createDummySuggestions(3, KnownCategories.ARTICLES);
|
|
|
| // By default, status is INITIALIZING, so we can load suggestions.
|
| mSource.setStatusForCategory(KnownCategories.ARTICLES, CategoryStatus.AVAILABLE);
|
| @@ -301,8 +307,8 @@ public void testSuggestionLoadingBlock() {
|
| assertItemsFor(section(3));
|
|
|
| // Add another snippet.
|
| - suggestions.add(new SnippetArticle(0, "https://site.com/url1", "title1", "pub1", "txt1",
|
| - "https://site.com/url1", 0, 0, 0));
|
| + suggestions.add(new SnippetArticle(KnownCategories.ARTICLES, "https://site.com/url1",
|
| + "title1", "pub1", "txt1", "https://site.com/url1", 0, 0));
|
|
|
| // When snippets are disabled, we should not be able to load them.
|
| mSource.setStatusForCategory(KnownCategories.ARTICLES, CategoryStatus.SIGNED_OUT);
|
| @@ -350,7 +356,7 @@ public void testProgressIndicatorDisplay() {
|
| @Test
|
| @Feature({"Ntp"})
|
| public void testSectionClearingWhenUnavailable() {
|
| - List<SnippetArticle> snippets = createDummySuggestions(5);
|
| + List<SnippetArticle> snippets = createDummySuggestions(5, KnownCategories.ARTICLES);
|
| mSource.setStatusForCategory(KnownCategories.ARTICLES, CategoryStatus.AVAILABLE);
|
| mSource.setSuggestionsForCategory(KnownCategories.ARTICLES, snippets);
|
| assertItemsFor(section(5));
|
| @@ -382,7 +388,7 @@ public void testSectionClearingWhenUnavailable() {
|
| @Test
|
| @Feature({"Ntp"})
|
| public void testUIUntouchedWhenNotProvided() {
|
| - List<SnippetArticle> snippets = createDummySuggestions(4);
|
| + List<SnippetArticle> snippets = createDummySuggestions(4, KnownCategories.ARTICLES);
|
| mSource.setStatusForCategory(KnownCategories.ARTICLES, CategoryStatus.AVAILABLE);
|
| mSource.setSuggestionsForCategory(KnownCategories.ARTICLES, snippets);
|
| assertItemsFor(section(4));
|
| @@ -402,11 +408,11 @@ public void testUIUntouchedWhenNotProvided() {
|
| @Test
|
| @Feature({"Ntp"})
|
| public void testUIUpdatesOnNewSuggestionsWhenOtherSectionSeen() {
|
| - List<SnippetArticle> snippets = createDummySuggestions(4);
|
| + List<SnippetArticle> snippets = createDummySuggestions(4, KnownCategories.ARTICLES);
|
| mSource.setStatusForCategory(KnownCategories.ARTICLES, CategoryStatus.AVAILABLE);
|
| mSource.setSuggestionsForCategory(KnownCategories.ARTICLES, snippets);
|
|
|
| - List<SnippetArticle> bookmarks = createDummySuggestions(2);
|
| + List<SnippetArticle> bookmarks = createDummySuggestions(2, KnownCategories.BOOKMARKS);
|
| mSource.setStatusForCategory(KnownCategories.BOOKMARKS, CategoryStatus.AVAILABLE);
|
| mSource.setInfoForCategory(KnownCategories.BOOKMARKS,
|
| new CategoryInfoBuilder(KnownCategories.BOOKMARKS).showIfEmpty().build());
|
| @@ -419,7 +425,7 @@ public void testUIUpdatesOnNewSuggestionsWhenOtherSectionSeen() {
|
| .getSectionForTesting(KnownCategories.BOOKMARKS)
|
| .childSeen(2);
|
|
|
| - List<SnippetArticle> newSnippets = createDummySuggestions(3);
|
| + List<SnippetArticle> newSnippets = createDummySuggestions(3, KnownCategories.ARTICLES);
|
| mSource.setSuggestionsForCategory(KnownCategories.ARTICLES, newSnippets);
|
| assertItemsFor(section(3), section(2));
|
|
|
| @@ -434,12 +440,11 @@ public void testUIUpdatesOnNewSuggestionsWhenOtherSectionSeen() {
|
| @Test
|
| @Feature({"Ntp"})
|
| public void testUIUpdatesOnNewSuggestionsWhenFirstOfOtherSectionIsSeen() {
|
| - List<SnippetArticle> snippets = createDummySuggestions(4);
|
| - SnippetArticle earlier = snippets.get(0);
|
| + List<SnippetArticle> snippets = createDummySuggestions(4, KnownCategories.ARTICLES);
|
| mSource.setStatusForCategory(KnownCategories.ARTICLES, CategoryStatus.AVAILABLE);
|
| mSource.setSuggestionsForCategory(KnownCategories.ARTICLES, snippets);
|
|
|
| - List<SnippetArticle> bookmarks = createDummySuggestions(1);
|
| + List<SnippetArticle> bookmarks = createDummySuggestions(1, KnownCategories.BOOKMARKS);
|
| mSource.setStatusForCategory(KnownCategories.BOOKMARKS, CategoryStatus.AVAILABLE);
|
| mSource.setInfoForCategory(KnownCategories.BOOKMARKS,
|
| new CategoryInfoBuilder(KnownCategories.BOOKMARKS).showIfEmpty().build());
|
| @@ -452,7 +457,7 @@ public void testUIUpdatesOnNewSuggestionsWhenFirstOfOtherSectionIsSeen() {
|
| .getSectionForTesting(KnownCategories.BOOKMARKS)
|
| .childSeen(1);
|
|
|
| - List<SnippetArticle> newSnippets = createDummySuggestions(3);
|
| + List<SnippetArticle> newSnippets = createDummySuggestions(3, KnownCategories.ARTICLES);
|
| SnippetArticle newer = newSnippets.get(0);
|
|
|
| mSource.setSuggestionsForCategory(KnownCategories.ARTICLES, newSnippets);
|
| @@ -481,7 +486,8 @@ public void testSectionVisibleIfEmpty() {
|
| assertItemsFor(sectionWithStatusCard().withProgress());
|
|
|
| // 1.2 - With suggestions
|
| - List<SnippetArticle> articles = Collections.unmodifiableList(createDummySuggestions(3));
|
| + List<SnippetArticle> articles =
|
| + Collections.unmodifiableList(createDummySuggestions(3, category));
|
| suggestionsSource.setStatusForCategory(category, CategoryStatus.AVAILABLE);
|
| suggestionsSource.setSuggestionsForCategory(category, articles);
|
| assertItemsFor(section(3));
|
| @@ -536,7 +542,8 @@ public void testMoreButton() {
|
| assertItemsFor(sectionWithStatusCard().withActionButton().withProgress());
|
|
|
| // 1.2 - With suggestions.
|
| - List<SnippetArticle> articles = Collections.unmodifiableList(createDummySuggestions(3));
|
| + List<SnippetArticle> articles =
|
| + Collections.unmodifiableList(createDummySuggestions(3, category));
|
| suggestionsSource.setStatusForCategory(category, CategoryStatus.AVAILABLE);
|
| suggestionsSource.setSuggestionsForCategory(category, articles);
|
| assertItemsFor(section(3).withActionButton());
|
| @@ -581,7 +588,7 @@ public void testMoreButton() {
|
| @Test
|
| @Feature({"Ntp"})
|
| public void testSuggestionInvalidated() {
|
| - List<SnippetArticle> articles = createDummySuggestions(3);
|
| + List<SnippetArticle> articles = createDummySuggestions(3, KnownCategories.ARTICLES);
|
| mSource.setStatusForCategory(KnownCategories.ARTICLES, CategoryStatus.AVAILABLE);
|
| mSource.setSuggestionsForCategory(KnownCategories.ARTICLES, articles);
|
| assertItemsFor(section(3));
|
| @@ -598,13 +605,13 @@ public void testSuggestionInvalidated() {
|
| @Test
|
| @Feature({"Ntp"})
|
| public void testDynamicCategories() {
|
| - List<SnippetArticle> articles = createDummySuggestions(3);
|
| + List<SnippetArticle> articles = createDummySuggestions(3, KnownCategories.ARTICLES);
|
| mSource.setStatusForCategory(KnownCategories.ARTICLES, CategoryStatus.AVAILABLE);
|
| mSource.setSuggestionsForCategory(KnownCategories.ARTICLES, articles);
|
| assertItemsFor(section(3));
|
|
|
| int dynamicCategory1 = 1010;
|
| - List<SnippetArticle> dynamics1 = createDummySuggestions(5);
|
| + List<SnippetArticle> dynamics1 = createDummySuggestions(5, KnownCategories.ARTICLES);
|
| mSource.setInfoForCategory(dynamicCategory1, new CategoryInfoBuilder(dynamicCategory1)
|
| .withViewAllAction()
|
| .build());
|
| @@ -615,7 +622,7 @@ public void testDynamicCategories() {
|
| assertItemsFor(section(3), section(5).withActionButton());
|
|
|
| int dynamicCategory2 = 1011;
|
| - List<SnippetArticle> dynamics2 = createDummySuggestions(11);
|
| + List<SnippetArticle> dynamics2 = createDummySuggestions(11, KnownCategories.ARTICLES);
|
| mSource.setInfoForCategory(dynamicCategory2,
|
| new CategoryInfoBuilder(dynamicCategory1).build());
|
| mSource.setStatusForCategory(dynamicCategory2, CategoryStatus.AVAILABLE);
|
| @@ -752,8 +759,8 @@ public void testChangeNotifications() {
|
|
|
| final int newSuggestionCount = 7;
|
| reset(dataObserver);
|
| - suggestionsSource.setSuggestionsForCategory(
|
| - KnownCategories.ARTICLES, createDummySuggestions(newSuggestionCount));
|
| + suggestionsSource.setSuggestionsForCategory(KnownCategories.ARTICLES,
|
| + createDummySuggestions(newSuggestionCount, KnownCategories.ARTICLES));
|
| verify(dataObserver).onItemRangeInserted(2, newSuggestionCount);
|
| verify(dataObserver).onItemRangeChanged(5 + newSuggestionCount, 1, null); // Spacer refresh
|
| verify(dataObserver, times(2)).onItemRangeRemoved(2 + newSuggestionCount, 1);
|
| @@ -772,7 +779,7 @@ public void testChangeNotifications() {
|
| verifyNoMoreInteractions(dataObserver);
|
| reset(dataObserver);
|
| suggestionsSource.setSuggestionsForCategory(
|
| - KnownCategories.ARTICLES, createDummySuggestions(0));
|
| + KnownCategories.ARTICLES, createDummySuggestions(0, KnownCategories.ARTICLES));
|
| mAdapter.getSectionListForTesting().onCategoryStatusChanged(
|
| KnownCategories.ARTICLES, CategoryStatus.SIGNED_OUT);
|
| verify(dataObserver).onItemRangeRemoved(2, newSuggestionCount);
|
| @@ -946,7 +953,8 @@ public void testAllDismissedVisibility() {
|
| // Prepare some suggestions. They should not load because the category is dismissed on
|
| // the current NTP.
|
| mSource.setStatusForCategory(KnownCategories.ARTICLES, CategoryStatus.AVAILABLE);
|
| - mSource.setSuggestionsForCategory(KnownCategories.ARTICLES, createDummySuggestions(1));
|
| + mSource.setSuggestionsForCategory(
|
| + KnownCategories.ARTICLES, createDummySuggestions(1, KnownCategories.ARTICLES));
|
| mSource.setInfoForCategory(KnownCategories.ARTICLES,
|
| new CategoryInfoBuilder(KnownCategories.ARTICLES).build());
|
| assertEquals(4, mAdapter.getItemCount()); // TODO(dgn): rewrite with section descriptors.
|
|
|