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

Unified Diff: chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapterTest.java

Issue 2398463005: Revert of 📰 Use the separate button style for the NoArticles status (Closed)
Patch Set: Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
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 dda4635bab6dc2891bb365b2a442734f508e142e..891ca5b649b4673df33f359f92bc43b4779bf301 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
@@ -4,13 +4,16 @@
package org.chromium.chrome.browser.ntp.cards;
+import static org.chromium.base.test.util.Matchers.greaterThanOrEqualTo;
+import static org.chromium.chrome.browser.ntp.cards.ContentSuggestionsTestUtils
+ .createDummySuggestions;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
@@ -22,18 +25,6 @@
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem.OnMenuItemClickListener;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-
-import static org.chromium.base.test.util.Matchers.greaterThanOrEqualTo;
-import static org.chromium.chrome.browser.ntp.cards.ContentSuggestionsTestUtils
- .createDummySuggestions;
-import static org.chromium.chrome.browser.ntp.cards.ContentSuggestionsTestUtils.createInfo;
import org.chromium.base.Callback;
import org.chromium.base.metrics.RecordHistogram;
@@ -57,7 +48,14 @@
import org.chromium.chrome.browser.signin.SigninManager;
import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver;
import org.chromium.testing.local.LocalRobolectricTestRunner;
-
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import java.nio.channels.UnsupportedAddressTypeException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -120,7 +118,9 @@
expect(NewTabPageItem.VIEW_TYPE_HEADER);
if (descriptor.mStatusCard) {
expect(NewTabPageItem.VIEW_TYPE_STATUS);
- expect(NewTabPageItem.VIEW_TYPE_ACTION);
+ if (descriptor.mMoreButton) {
+ expect(NewTabPageItem.VIEW_TYPE_ACTION);
+ }
expect(NewTabPageItem.VIEW_TYPE_PROGRESS);
} else {
for (int i = 1; i <= descriptor.mNumSuggestions; i++) {
@@ -223,11 +223,11 @@
RecordHistogram.disableForTests();
RecordUserAction.disableForTests();
- @CategoryInt
- final int category = KnownCategories.ARTICLES;
mSource = new FakeSuggestionsSource();
- mSource.setStatusForCategory(category, CategoryStatus.INITIALIZING);
- mSource.setInfoForCategory(category, createInfo(category, false, true));
+ mSource.setStatusForCategory(KnownCategories.ARTICLES, CategoryStatus.INITIALIZING);
+ mSource.setInfoForCategory(KnownCategories.ARTICLES,
+ new SuggestionsCategoryInfo("Articles for you",
+ ContentSuggestionsCardLayout.FULL_CARD, false, true));
mAdapter = NewTabPageAdapter.create(new MockNewTabPageManager(mSource), null, null);
}
@@ -246,20 +246,36 @@
@Feature({"Ntp"})
public void testSuggestionLoading() {
assertItemsFor(sectionWithStatusCard());
-
- final int numSuggestions = 3;
- List<SnippetArticle> suggestions = createDummySuggestions(numSuggestions);
+ assertEquals(NewTabPageItem.VIEW_TYPE_ABOVE_THE_FOLD, mAdapter.getItemViewType(0));
+ assertEquals(NewTabPageItem.VIEW_TYPE_HEADER, mAdapter.getItemViewType(1));
+ assertEquals(NewTabPageItem.VIEW_TYPE_STATUS, mAdapter.getItemViewType(2));
+ assertEquals(NewTabPageItem.VIEW_TYPE_PROGRESS, mAdapter.getItemViewType(3));
+ assertEquals(NewTabPageItem.VIEW_TYPE_FOOTER, mAdapter.getItemViewType(4));
+ assertEquals(NewTabPageItem.VIEW_TYPE_SPACING, mAdapter.getItemViewType(5));
+
+ List<SnippetArticle> suggestions = createDummySuggestions(3);
mSource.setStatusForCategory(KnownCategories.ARTICLES, CategoryStatus.AVAILABLE);
mSource.setSuggestionsForCategory(KnownCategories.ARTICLES, suggestions);
- assertItemsFor(section(numSuggestions));
+ int numItems = mAdapter.getItemCount();
+
+ // From the loaded items, cut out aboveTheFold and header from the front,
+ // and footer and bottom spacer from the back.
+ assertEquals(NewTabPageItem.VIEW_TYPE_ABOVE_THE_FOLD, mAdapter.getItemViewType(0));
+ assertEquals(NewTabPageItem.VIEW_TYPE_HEADER, mAdapter.getItemViewType(1));
+ assertArticlesEqual(suggestions, 2, numItems - 2);
+ assertEquals(NewTabPageItem.VIEW_TYPE_FOOTER, mAdapter.getItemViewType(numItems - 2));
+ assertEquals(NewTabPageItem.VIEW_TYPE_SPACING, mAdapter.getItemViewType(numItems - 1));
// The adapter should ignore any new incoming data.
mSource.setSuggestionsForCategory(KnownCategories.ARTICLES,
Arrays.asList(new SnippetArticle[] {new SnippetArticle(0, "foo", "title1", "pub1",
"txt1", "foo", "bar", 0, 0, 0, ContentSuggestionsCardLayout.FULL_CARD)}));
-
- assertItemsFor(section(numSuggestions));
+ assertEquals(NewTabPageItem.VIEW_TYPE_ABOVE_THE_FOLD, mAdapter.getItemViewType(0));
+ assertEquals(NewTabPageItem.VIEW_TYPE_HEADER, mAdapter.getItemViewType(1));
+ assertArticlesEqual(suggestions, 2, numItems - 2);
+ assertEquals(NewTabPageItem.VIEW_TYPE_FOOTER, mAdapter.getItemViewType(numItems - 2));
+ assertEquals(NewTabPageItem.VIEW_TYPE_SPACING, mAdapter.getItemViewType(numItems - 1));
}
/**
@@ -273,20 +289,37 @@
mSource.setSuggestionsForCategory(
KnownCategories.ARTICLES, new ArrayList<SnippetArticle>());
assertItemsFor(sectionWithStatusCard());
+ assertEquals(NewTabPageItem.VIEW_TYPE_ABOVE_THE_FOLD, mAdapter.getItemViewType(0));
+ assertEquals(NewTabPageItem.VIEW_TYPE_HEADER, mAdapter.getItemViewType(1));
+ assertEquals(NewTabPageItem.VIEW_TYPE_STATUS, mAdapter.getItemViewType(2));
+ assertEquals(NewTabPageItem.VIEW_TYPE_PROGRESS, mAdapter.getItemViewType(3));
+ assertEquals(NewTabPageItem.VIEW_TYPE_FOOTER, mAdapter.getItemViewType(4));
+ assertEquals(NewTabPageItem.VIEW_TYPE_SPACING, mAdapter.getItemViewType(5));
// We should load new suggestions when we get notified about them.
- final int numSuggestions = 5;
- List<SnippetArticle> suggestions = createDummySuggestions(numSuggestions);
+ List<SnippetArticle> suggestions = createDummySuggestions(5);
mSource.setStatusForCategory(KnownCategories.ARTICLES, CategoryStatus.AVAILABLE);
mSource.setSuggestionsForCategory(KnownCategories.ARTICLES, suggestions);
- assertItemsFor(section(numSuggestions));
+ int numItems = mAdapter.getItemCount();
+
+ // From the loaded items, cut out aboveTheFold and header from the front,
+ // and footer and bottom spacer from the back.
+ assertEquals(NewTabPageItem.VIEW_TYPE_ABOVE_THE_FOLD, mAdapter.getItemViewType(0));
+ assertEquals(NewTabPageItem.VIEW_TYPE_HEADER, mAdapter.getItemViewType(1));
+ assertArticlesEqual(suggestions, 2, numItems - 2);
+ assertEquals(NewTabPageItem.VIEW_TYPE_FOOTER, mAdapter.getItemViewType(numItems - 2));
+ assertEquals(NewTabPageItem.VIEW_TYPE_SPACING, mAdapter.getItemViewType(numItems - 1));
// The adapter should ignore any new incoming data.
mSource.setSuggestionsForCategory(KnownCategories.ARTICLES,
Arrays.asList(new SnippetArticle[] {new SnippetArticle(0, "foo", "title1", "pub1",
"txt1", "foo", "bar", 0, 0, 0, ContentSuggestionsCardLayout.FULL_CARD)}));
- assertItemsFor(section(numSuggestions));
+ assertEquals(NewTabPageItem.VIEW_TYPE_ABOVE_THE_FOLD, mAdapter.getItemViewType(0));
+ assertEquals(NewTabPageItem.VIEW_TYPE_HEADER, mAdapter.getItemViewType(1));
+ assertArticlesEqual(suggestions, 2, numItems - 2);
+ assertEquals(NewTabPageItem.VIEW_TYPE_FOOTER, mAdapter.getItemViewType(numItems - 2));
+ assertEquals(NewTabPageItem.VIEW_TYPE_SPACING, mAdapter.getItemViewType(numItems - 1));
}
/**
@@ -437,7 +470,6 @@
@Test
@Feature({"Ntp"})
public void testSectionVisibleIfEmpty() {
- @CategoryInt
final int category = 42;
final int sectionIdx = 1; // section 0 is the above-the-fold item, we test the one after.
final List<SnippetArticle> articles =
@@ -447,7 +479,9 @@
// Part 1: VisibleIfEmpty = true
suggestionsSource = new FakeSuggestionsSource();
suggestionsSource.setStatusForCategory(category, CategoryStatus.INITIALIZING);
- suggestionsSource.setInfoForCategory(category, createInfo(category, false, true));
+ suggestionsSource.setInfoForCategory(
+ category, new SuggestionsCategoryInfo(
+ "", ContentSuggestionsCardLayout.MINIMAL_CARD, false, true));
// 1.1 - Initial state
mAdapter =
@@ -471,7 +505,9 @@
// Part 2: VisibleIfEmpty = false
suggestionsSource = new FakeSuggestionsSource();
suggestionsSource.setStatusForCategory(category, CategoryStatus.INITIALIZING);
- suggestionsSource.setInfoForCategory(category, createInfo(category, false, false));
+ suggestionsSource.setInfoForCategory(
+ category, new SuggestionsCategoryInfo(
+ "", ContentSuggestionsCardLayout.MINIMAL_CARD, false, false));
// 2.1 - Initial state
mAdapter =
@@ -492,7 +528,6 @@
@Test
@Feature({"Ntp"})
public void testMoreButton() {
- @CategoryInt
final int category = 42;
final int sectionIdx = 1; // section 0 is the above the fold, we test the one after.
final List<SnippetArticle> articles =
@@ -503,7 +538,9 @@
// Part 1: ShowMoreButton = true
suggestionsSource = new FakeSuggestionsSource();
suggestionsSource.setStatusForCategory(category, CategoryStatus.INITIALIZING);
- suggestionsSource.setInfoForCategory(category, createInfo(category, true, true));
+ suggestionsSource.setInfoForCategory(
+ category, new SuggestionsCategoryInfo(
+ "", ContentSuggestionsCardLayout.MINIMAL_CARD, true, true));
// 1.1 - Initial state.
mAdapter =
@@ -527,7 +564,9 @@
// Part 1: ShowMoreButton = false
suggestionsSource = new FakeSuggestionsSource();
suggestionsSource.setStatusForCategory(category, CategoryStatus.INITIALIZING);
- suggestionsSource.setInfoForCategory(category, createInfo(category, false, true));
+ suggestionsSource.setInfoForCategory(
+ category, new SuggestionsCategoryInfo(
+ "", ContentSuggestionsCardLayout.MINIMAL_CARD, false, true));
// 2.1 - Initial state.
mAdapter =
@@ -586,7 +625,9 @@
int dynamicCategory1 = 1010;
List<SnippetArticle> dynamics1 = createDummySuggestions(5);
- mSource.setInfoForCategory(dynamicCategory1, createInfo(dynamicCategory1, true, false));
+ mSource.setInfoForCategory(
+ dynamicCategory1, new SuggestionsCategoryInfo("Dynamic 1",
+ ContentSuggestionsCardLayout.MINIMAL_CARD, true, false));
mSource.setStatusForCategory(dynamicCategory1, CategoryStatus.AVAILABLE);
mSource.setSuggestionsForCategory(dynamicCategory1, dynamics1);
mAdapter =
@@ -595,7 +636,9 @@
int dynamicCategory2 = 1011;
List<SnippetArticle> dynamics2 = createDummySuggestions(11);
- mSource.setInfoForCategory(dynamicCategory2, createInfo(dynamicCategory1, false, false));
+ mSource.setInfoForCategory(
+ dynamicCategory2, new SuggestionsCategoryInfo("Dynamic 2",
+ ContentSuggestionsCardLayout.MINIMAL_CARD, false, false));
mSource.setStatusForCategory(dynamicCategory2, CategoryStatus.AVAILABLE);
mSource.setSuggestionsForCategory(dynamicCategory2, dynamics2);
mAdapter =
@@ -712,7 +755,6 @@
verify(adapter).notifyItemRemoved(2);
verify(adapter).notifyItemInserted(2);
verify(adapter).notifyItemInserted(3);
- verify(adapter).notifyItemInserted(4);
// Adapter content:
// Idx | Item
@@ -720,19 +762,16 @@
// 0 | Above-the-fold
// 1 | Header
// 2 | Status
- // 3 | Action
- // 4 | Progress Indicator
- // 5 | Footer
- // 6 | Spacer
+ // 3 | Progress Indicator
+ // 4 | Footer
+ // 5 | Spacer
final int newSuggestionCount = 7;
- final int changedCount = 3; // status, action and progress will be replaced by articles.
suggestionsSource.setSuggestionsForCategory(
KnownCategories.ARTICLES, createDummySuggestions(newSuggestionCount));
adapter.onNewSuggestions(KnownCategories.ARTICLES);
- verify(adapter).notifyItemRangeChanged(2, changedCount);
- verify(adapter).notifyItemRangeInserted(
- 2 + changedCount, newSuggestionCount - changedCount);
+ verify(adapter).notifyItemRangeChanged(2, 2); // status and progress replaced by articles.
+ verify(adapter).notifyItemRangeInserted(4, newSuggestionCount - 2);
// Adapter content:
// Idx | Item
@@ -746,8 +785,8 @@
suggestionsSource.setSuggestionsForCategory(
KnownCategories.ARTICLES, createDummySuggestions(0));
adapter.onCategoryStatusChanged(KnownCategories.ARTICLES, CategoryStatus.SIGNED_OUT);
- verify(adapter, times(2)).notifyItemRangeChanged(2, changedCount);
- verify(adapter).notifyItemRangeRemoved(2 + changedCount, newSuggestionCount - changedCount);
+ verify(adapter, times(2)).notifyItemRangeChanged(2, 2);
+ verify(adapter).notifyItemRangeRemoved(4, newSuggestionCount - 2);
}
@Test
@@ -758,19 +797,18 @@
NewTabPageAdapter adapter = NewTabPageAdapter.create(ntpManager, null, null);
assertEquals(5, adapter.getGroups().size());
- ItemGroup signinPromoGroup = adapter.getGroup(5);
+ ItemGroup signinPromoGroup = adapter.getGroup(4);
// Adapter content:
- // Idx | Item | Group Index
- // ----|--------------------|-------------
- // 0 | Above-the-fold | 0
- // 1 | Header | 1
- // 2 | Status | 1
- // 3 | Action | 1
- // 4 | Progress Indicator | 1
- // 5 | Sign in promo | 2
- // 6 | Footer | 3
- // 7 | Spacer | 4
+ // Idx | Item
+ // ----|----------------
+ // 0 | Above-the-fold
+ // 1 | Header
+ // 2 | Status
+ // 3 | Progress Indicator
+ // 4 | Sign in promo
+ // 5 | Footer
+ // 6 | Spacer
assertEquals(1, signinPromoGroup.getItems().size());
assertEquals(NewTabPageItem.VIEW_TYPE_PROMO, signinPromoGroup.getItems().get(0).getType());
@@ -790,10 +828,9 @@
.setNewTabPageSigninPromoDismissed(false);
MockNewTabPageManager ntpManager = new MockNewTabPageManager(mSource);
NewTabPageAdapter adapter = NewTabPageAdapter.create(ntpManager, null, null);
- final int signInPromoIndex = 5;
assertEquals(5, adapter.getGroups().size());
- ItemGroup signinPromoGroup = adapter.getGroup(signInPromoIndex);
+ ItemGroup signinPromoGroup = adapter.getGroup(4);
// Adapter content:
// Idx | Item
@@ -801,15 +838,14 @@
// 0 | Above-the-fold
// 1 | Header
// 2 | Status
- // 3 | Action
- // 4 | Progress Indicator
- // 5 | Sign in promo
- // 6 | Footer
- // 7 | Spacer
+ // 3 | Progress Indicator
+ // 4 | Sign in promo
+ // 5 | Footer
+ // 6 | Spacer
assertEquals(NewTabPageItem.VIEW_TYPE_PROMO, signinPromoGroup.getItems().get(0).getType());
- adapter.dismissItem(signInPromoIndex);
+ adapter.dismissItem(4);
assertTrue(signinPromoGroup.getItems().isEmpty());
assertTrue(ChromePreferenceManager.getInstance(RuntimeEnvironment.application)
.getNewTabPageSigninPromoDismissed());
@@ -817,7 +853,7 @@
adapter = NewTabPageAdapter.create(ntpManager, null, null);
assertEquals(5, adapter.getGroups().size());
// The items below the signin promo move up, footer is now at the position of the promo.
- assertEquals(NewTabPageItem.VIEW_TYPE_FOOTER, adapter.getItemViewType(signInPromoIndex));
+ assertEquals(NewTabPageItem.VIEW_TYPE_FOOTER, adapter.getItemViewType(4));
}
/** Registers the category with hasMoreButton=false and showIfEmpty=true*/
@@ -827,7 +863,9 @@
// AVAILABLE.
suggestionsSource.setStatusForCategory(category, CategoryStatus.AVAILABLE);
// Important: showIfEmpty flag to true.
- suggestionsSource.setInfoForCategory(category, createInfo(category, false, true));
+ suggestionsSource.setInfoForCategory(
+ category, new SuggestionsCategoryInfo(
+ "", ContentSuggestionsCardLayout.FULL_CARD, false, true));
suggestionsSource.setSuggestionsForCategory(
category, createDummySuggestions(suggestionCount));
}
@@ -996,7 +1034,11 @@
@Override
public void closeContextMenu() {
- throw new UnsupportedOperationException();
+ throw new UnsupportedAddressTypeException();
+ }
+
+ public void setSuggestionsSource(SuggestionsSource suggestionsSource) {
+ mSuggestionsSource = suggestionsSource;
}
@Override

Powered by Google App Engine
This is Rietveld 408576698