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

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

Issue 2513453004: [Android NTP] Move suggestion sections into a separate node. (Closed)
Patch Set: sync 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 side-by-side diff with in-line comments
Download patch
Index: chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/InnerNodeTest.java
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/InnerNodeTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/InnerNodeTest.java
index 0a5faae63f6b1f2fb47f75af3033234a8a572ab1..07e9b5e4621062212d94fc4f472df8c2f853d6fb 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/InnerNodeTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/ntp/cards/InnerNodeTest.java
@@ -8,6 +8,7 @@ import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import org.junit.Before;
@@ -20,7 +21,7 @@ import org.robolectric.annotation.Config;
import org.chromium.chrome.browser.ntp.snippets.SnippetArticle;
import org.chromium.testing.local.LocalRobolectricTestRunner;
-import java.util.Arrays;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -31,7 +32,7 @@ import java.util.List;
public class InnerNodeTest {
private static final int[] ITEM_COUNTS = {1, 2, 3, 0, 3, 2, 1};
- private final List<TreeNode> mChildren = Arrays.asList(new TreeNode[ITEM_COUNTS.length]);
+ private final List<TreeNode> mChildren = new ArrayList<>();
@Mock private NodeParent mParent;
private InnerNode mInnerNode;
@@ -42,7 +43,7 @@ public class InnerNodeTest {
for (int i = 0; i < ITEM_COUNTS.length; i++) {
TreeNode child = mock(TreeNode.class);
when(child.getItemCount()).thenReturn(ITEM_COUNTS[i]);
- mChildren.set(i, child);
+ mChildren.add(child);
}
mInnerNode = new InnerNode(mParent) {
@Override
@@ -53,6 +54,14 @@ public class InnerNodeTest {
}
@Test
+ public void testInit() {
+ mInnerNode.init();
+ for (TreeNode child : mChildren) {
+ verify(child).init();
+ }
+ }
+
+ @Test
public void testItemCount() {
assertThat(mInnerNode.getItemCount(), is(12));
}
@@ -103,6 +112,43 @@ public class InnerNodeTest {
}
@Test
+ public void testDidAddChild() {
+ TreeNode child = mock(TreeNode.class);
+ when(child.getItemCount()).thenReturn(23);
+ mChildren.add(3, child);
+ mInnerNode.didAddChild(child);
+
+ // The child should have been initialized and the parent notified about the added items.
+ verify(child).init();
+ verify(mParent).onItemRangeInserted(mInnerNode, 6, 23);
+
+ TreeNode child2 = mock(TreeNode.class);
+ when(child2.getItemCount()).thenReturn(0);
+ mChildren.add(4, child2);
+ mInnerNode.didAddChild(child2);
+ verify(child2).init();
+
+ // The empty child should have been initialized, but there should be no change
+ // notifications.
+ verifyNoMoreInteractions(mParent);
+ }
+
+ @Test
+ public void testWillRemoveChild() {
+ mInnerNode.willRemoveChild(mChildren.get(4));
+ mChildren.remove(4);
+
+ // The parent should have been notified about the removed items.
+ verify(mParent).onItemRangeRemoved(mInnerNode, 6, 3);
+
+ mInnerNode.willRemoveChild(mChildren.get(3));
+ mChildren.remove(3);
+
+ // There should be no change notifications about the empty child.
+ verifyNoMoreInteractions(mParent);
+ }
+
+ @Test
public void testNotifications() {
mInnerNode.onItemRangeInserted(mChildren.get(0), 0, 23);
mInnerNode.onItemRangeChanged(mChildren.get(2), 2, 9000);

Powered by Google App Engine
This is Rietveld 408576698