| 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 9a43670be3724ec50e037d1b25b742d0e09e57ba..c2e8c066bf5fc05525ec5b7766231e08af757b21 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
|
| @@ -5,6 +5,8 @@
|
| package org.chromium.chrome.browser.ntp.cards;
|
|
|
| import static org.junit.Assert.assertEquals;
|
| +import static org.junit.Assert.assertFalse;
|
| +import static org.junit.Assert.assertTrue;
|
| import static org.mockito.Matchers.any;
|
| import static org.mockito.Mockito.doAnswer;
|
| import static org.mockito.Mockito.mock;
|
| @@ -66,11 +68,12 @@ public void testSnippetLoading() {
|
| NewTabPageAdapter ntpa =
|
| new NewTabPageAdapter(mNewTabPageManager, null, mSnippetsBridge, null);
|
|
|
| - assertEquals(4, ntpa.getItemCount());
|
| + assertEquals(5, ntpa.getItemCount());
|
| assertEquals(NewTabPageListItem.VIEW_TYPE_ABOVE_THE_FOLD, ntpa.getItemViewType(0));
|
| assertEquals(NewTabPageListItem.VIEW_TYPE_HEADER, ntpa.getItemViewType(1));
|
| assertEquals(NewTabPageListItem.VIEW_TYPE_STATUS, ntpa.getItemViewType(2));
|
| - assertEquals(NewTabPageListItem.VIEW_TYPE_SPACING, ntpa.getItemViewType(3));
|
| + assertEquals(NewTabPageListItem.VIEW_TYPE_PROGRESS, ntpa.getItemViewType(3));
|
| + assertEquals(NewTabPageListItem.VIEW_TYPE_SPACING, ntpa.getItemViewType(4));
|
|
|
| List<SnippetArticleListItem> snippets = createDummySnippets();
|
| mSnippetsObserver.onSnippetsReceived(snippets);
|
| @@ -101,11 +104,12 @@ public void testSnippetLoadingInitiallyEmpty() {
|
|
|
| // If we don't get anything, we should be in the same situation as the initial one.
|
| mSnippetsObserver.onSnippetsReceived(new ArrayList<SnippetArticleListItem>());
|
| - assertEquals(4, ntpa.getItemCount());
|
| + assertEquals(5, ntpa.getItemCount());
|
| assertEquals(NewTabPageListItem.VIEW_TYPE_ABOVE_THE_FOLD, ntpa.getItemViewType(0));
|
| assertEquals(NewTabPageListItem.VIEW_TYPE_HEADER, ntpa.getItemViewType(1));
|
| assertEquals(NewTabPageListItem.VIEW_TYPE_STATUS, ntpa.getItemViewType(2));
|
| - assertEquals(NewTabPageListItem.VIEW_TYPE_SPACING, ntpa.getItemViewType(3));
|
| + assertEquals(NewTabPageListItem.VIEW_TYPE_PROGRESS, ntpa.getItemViewType(3));
|
| + assertEquals(NewTabPageListItem.VIEW_TYPE_SPACING, ntpa.getItemViewType(4));
|
|
|
| // We should load new snippets when we get notified about them.
|
| List<SnippetArticleListItem> snippets = createDummySnippets();
|
| @@ -145,7 +149,7 @@ public void testSnippetClearing() {
|
| // When snippets are disabled, we clear them and we should go back to
|
| // the situation with the status card.
|
| mSnippetsObserver.onCategoryStatusChanged(CategoryStatus.SIGNED_OUT);
|
| - assertEquals(4, ntpa.getItemCount());
|
| + assertEquals(5, ntpa.getItemCount());
|
|
|
| // The adapter should now be waiting for new snippets.
|
| mSnippetsObserver.onCategoryStatusChanged(CategoryStatus.AVAILABLE);
|
| @@ -177,7 +181,7 @@ public void testSnippetLoadingBlock() {
|
| // When snippets are disabled, we should not be able to load them
|
| mSnippetsObserver.onCategoryStatusChanged(CategoryStatus.SIGNED_OUT);
|
| mSnippetsObserver.onSnippetsReceived(snippets);
|
| - assertEquals(4, ntpa.getItemCount());
|
| + assertEquals(5, ntpa.getItemCount());
|
|
|
| // INITIALIZING lets us load snippets still.
|
| mSnippetsObserver.onCategoryStatusChanged(CategoryStatus.INITIALIZING);
|
| @@ -190,6 +194,39 @@ public void testSnippetLoadingBlock() {
|
| assertEquals(3 + snippets.size(), ntpa.getItemCount());
|
| }
|
|
|
| + /**
|
| + * Tests how the loading indicator reacts to status changes.
|
| + */
|
| + @Test
|
| + @Feature({"Ntp"})
|
| + public void testProgressIndicatorDisplay() {
|
| + NewTabPageAdapter ntpa =
|
| + new NewTabPageAdapter(mNewTabPageManager, null, mSnippetsBridge, null);
|
| + int progressPos = ntpa.getBottomSpacerPosition() - 1;
|
| + ProgressListItem progress = (ProgressListItem) ntpa.getItemsForTesting().get(progressPos);
|
| +
|
| + mSnippetsObserver.onCategoryStatusChanged(CategoryStatus.INITIALIZING);
|
| + assertTrue(progress.isVisible());
|
| +
|
| + mSnippetsObserver.onCategoryStatusChanged(CategoryStatus.AVAILABLE);
|
| + assertFalse(progress.isVisible());
|
| +
|
| + mSnippetsObserver.onCategoryStatusChanged(CategoryStatus.AVAILABLE_LOADING);
|
| + assertTrue(progress.isVisible());
|
| +
|
| + mSnippetsObserver.onCategoryStatusChanged(CategoryStatus.NOT_PROVIDED);
|
| + assertFalse(progress.isVisible());
|
| +
|
| + mSnippetsObserver.onCategoryStatusChanged(CategoryStatus.CATEGORY_EXPLICITLY_DISABLED);
|
| + assertFalse(progress.isVisible());
|
| +
|
| + mSnippetsObserver.onCategoryStatusChanged(CategoryStatus.SIGNED_OUT);
|
| + assertFalse(progress.isVisible());
|
| +
|
| + mSnippetsObserver.onCategoryStatusChanged(CategoryStatus.LOADING_ERROR);
|
| + assertFalse(progress.isVisible());
|
| + }
|
| +
|
| private List<SnippetArticleListItem> createDummySnippets() {
|
| List<SnippetArticleListItem> snippets = new ArrayList<>();
|
| snippets.add(new SnippetArticleListItem("https://site.com/url1", "title1", "pub1", "txt1",
|
|
|