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

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

Issue 2396523002: Unify NewTabPageItem and ItemGroup into a single tree-structured interface. (Closed)
Patch Set: review 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 unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 package org.chromium.chrome.browser.ntp.cards;
6
7 import static org.hamcrest.CoreMatchers.is;
8 import static org.junit.Assert.assertThat;
9 import static org.mockito.Mockito.mock;
10 import static org.mockito.Mockito.verify;
11 import static org.mockito.Mockito.when;
12
13 import org.junit.Before;
14 import org.junit.Test;
15 import org.junit.runner.RunWith;
16 import org.mockito.Mock;
17 import org.mockito.MockitoAnnotations;
18 import org.robolectric.annotation.Config;
19
20 import org.chromium.chrome.browser.ntp.snippets.SnippetArticle;
21 import org.chromium.testing.local.LocalRobolectricTestRunner;
22
23 import java.util.Arrays;
24 import java.util.List;
25
26 /**
27 * JUnit tests for {@link InnerNode}.
28 */
29 @RunWith(LocalRobolectricTestRunner.class)
30 @Config(manifest = Config.NONE)
31 public class InnerNodeTest {
32
33 private static final int[] ITEM_COUNTS = {1, 2, 3, 0, 3, 2, 1};
34 private final List<TreeNode> mChildren = Arrays.asList(new TreeNode[ITEM_COU NTS.length]);
35 @Mock private NodeParent mParent;
36 private InnerNode mInnerNode;
37
38 @Before
39 public void setUp() {
40 MockitoAnnotations.initMocks(this);
41
42 for (int i = 0; i < ITEM_COUNTS.length; i++) {
43 TreeNode child = mock(TreeNode.class);
44 when(child.getItemCount()).thenReturn(ITEM_COUNTS[i]);
45 mChildren.set(i, child);
46 }
47 mInnerNode = new InnerNode(mParent) {
48 @Override
49 protected List<TreeNode> getChildren() {
50 return mChildren;
51 }
52 };
53 }
54
55 @Test
56 public void testItemCount() {
57 assertThat(mInnerNode.getItemCount(), is(12));
58 }
59
60 @Test
61 public void testGetItemViewType() {
62 when(mChildren.get(0).getItemViewType(0)).thenReturn(42);
63 when(mChildren.get(2).getItemViewType(2)).thenReturn(23);
64 when(mChildren.get(4).getItemViewType(0)).thenReturn(4711);
65 when(mChildren.get(6).getItemViewType(0)).thenReturn(1729);
66
67 assertThat(mInnerNode.getItemViewType(0), is(42));
68 assertThat(mInnerNode.getItemViewType(5), is(23));
69 assertThat(mInnerNode.getItemViewType(6), is(4711));
70 assertThat(mInnerNode.getItemViewType(11), is(1729));
71 }
72
73 @Test
74 public void testBindViewHolder() {
75 NewTabPageViewHolder holder = mock(NewTabPageViewHolder.class);
76 mInnerNode.onBindViewHolder(holder, 0);
77 mInnerNode.onBindViewHolder(holder, 5);
78 mInnerNode.onBindViewHolder(holder, 6);
79 mInnerNode.onBindViewHolder(holder, 11);
80
81 verify(mChildren.get(0)).onBindViewHolder(holder, 0);
82 verify(mChildren.get(2)).onBindViewHolder(holder, 2);
83 verify(mChildren.get(4)).onBindViewHolder(holder, 0);
84 verify(mChildren.get(6)).onBindViewHolder(holder, 0);
85 }
86
87 @Test
88 public void testGetSuggestion() {
89 SnippetArticle article1 = mock(SnippetArticle.class);
90 SnippetArticle article2 = mock(SnippetArticle.class);
91 SnippetArticle article3 = mock(SnippetArticle.class);
92 SnippetArticle article4 = mock(SnippetArticle.class);
93
94 when(mChildren.get(0).getSuggestionAt(0)).thenReturn(article1);
95 when(mChildren.get(2).getSuggestionAt(2)).thenReturn(article2);
96 when(mChildren.get(4).getSuggestionAt(0)).thenReturn(article3);
97 when(mChildren.get(6).getSuggestionAt(0)).thenReturn(article4);
98
99 assertThat(mInnerNode.getSuggestionAt(0), is(article1));
100 assertThat(mInnerNode.getSuggestionAt(5), is(article2));
101 assertThat(mInnerNode.getSuggestionAt(6), is(article3));
102 assertThat(mInnerNode.getSuggestionAt(11), is(article4));
103 }
104
105 @Test
106 public void testNotifications() {
107 mInnerNode.onItemRangeInserted(mChildren.get(0), 0, 23);
108 mInnerNode.onItemRangeChanged(mChildren.get(2), 2, 9000);
109 mInnerNode.onItemRangeChanged(mChildren.get(4), 0, 6502);
110 mInnerNode.onItemRangeRemoved(mChildren.get(6), 0, 8086);
111
112 verify(mParent).onItemRangeInserted(mInnerNode, 0, 23);
113 verify(mParent).onItemRangeChanged(mInnerNode, 5, 9000);
114 verify(mParent).onItemRangeChanged(mInnerNode, 6, 6502);
115 verify(mParent).onItemRangeRemoved(mInnerNode, 11, 8086);
116 }
117 }
118
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698