OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.chrome.browser.ntp.cards; | 5 package org.chromium.chrome.browser.ntp.cards; |
6 | 6 |
7 import static org.hamcrest.CoreMatchers.is; | 7 import static org.hamcrest.CoreMatchers.is; |
8 import static org.junit.Assert.assertThat; | 8 import static org.junit.Assert.assertThat; |
9 import static org.junit.Assert.fail; | 9 import static org.junit.Assert.fail; |
10 import static org.mockito.ArgumentMatchers.eq; | 10 import static org.mockito.ArgumentMatchers.eq; |
11 import static org.mockito.Mockito.mock; | 11 import static org.mockito.Mockito.mock; |
12 import static org.mockito.Mockito.reset; | 12 import static org.mockito.Mockito.reset; |
13 import static org.mockito.Mockito.spy; | 13 import static org.mockito.Mockito.spy; |
14 import static org.mockito.Mockito.verify; | 14 import static org.mockito.Mockito.verify; |
15 import static org.mockito.Mockito.verifyNoMoreInteractions; | 15 import static org.mockito.Mockito.verifyNoMoreInteractions; |
16 import static org.mockito.Mockito.verifyZeroInteractions; | 16 import static org.mockito.Mockito.verifyZeroInteractions; |
17 import static org.mockito.Mockito.when; | 17 import static org.mockito.Mockito.when; |
18 | 18 |
19 import android.support.annotation.Nullable; | 19 import android.support.annotation.Nullable; |
20 | 20 |
21 import org.junit.Before; | 21 import org.junit.Before; |
22 import org.junit.Test; | 22 import org.junit.Test; |
23 import org.junit.runner.RunWith; | 23 import org.junit.runner.RunWith; |
24 import org.mockito.Mock; | 24 import org.mockito.Mock; |
25 import org.mockito.MockitoAnnotations; | 25 import org.mockito.MockitoAnnotations; |
26 import org.robolectric.annotation.Config; | 26 import org.robolectric.annotation.Config; |
27 | 27 |
28 import org.chromium.chrome.browser.ntp.cards.NewTabPageViewHolder.PartialBindCal
lback; | 28 import org.chromium.chrome.browser.ntp.cards.NewTabPageViewHolder.PartialBindCal
lback; |
29 import org.chromium.chrome.browser.ntp.snippets.SnippetArticle; | |
30 import org.chromium.testing.local.LocalRobolectricTestRunner; | 29 import org.chromium.testing.local.LocalRobolectricTestRunner; |
31 | 30 |
32 import java.util.ArrayList; | 31 import java.util.ArrayList; |
33 import java.util.List; | 32 import java.util.List; |
34 | 33 |
35 /** | 34 /** |
36 * JUnit tests for {@link InnerNode}. | 35 * JUnit tests for {@link InnerNode}. |
37 */ | 36 */ |
38 @RunWith(LocalRobolectricTestRunner.class) | 37 @RunWith(LocalRobolectricTestRunner.class) |
39 @Config(manifest = Config.NONE) | 38 @Config(manifest = Config.NONE) |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 mInnerNode.onBindViewHolder(holder, 6); | 83 mInnerNode.onBindViewHolder(holder, 6); |
85 mInnerNode.onBindViewHolder(holder, 11); | 84 mInnerNode.onBindViewHolder(holder, 11); |
86 | 85 |
87 verify(mChildren.get(0)).onBindViewHolder(holder, 0); | 86 verify(mChildren.get(0)).onBindViewHolder(holder, 0); |
88 verify(mChildren.get(2)).onBindViewHolder(holder, 2); | 87 verify(mChildren.get(2)).onBindViewHolder(holder, 2); |
89 verify(mChildren.get(4)).onBindViewHolder(holder, 0); | 88 verify(mChildren.get(4)).onBindViewHolder(holder, 0); |
90 verify(mChildren.get(6)).onBindViewHolder(holder, 0); | 89 verify(mChildren.get(6)).onBindViewHolder(holder, 0); |
91 } | 90 } |
92 | 91 |
93 @Test | 92 @Test |
94 public void testGetSuggestion() { | |
95 SnippetArticle article1 = mock(SnippetArticle.class); | |
96 SnippetArticle article2 = mock(SnippetArticle.class); | |
97 SnippetArticle article3 = mock(SnippetArticle.class); | |
98 SnippetArticle article4 = mock(SnippetArticle.class); | |
99 | |
100 when(mChildren.get(0).getSuggestionAt(0)).thenReturn(article1); | |
101 when(mChildren.get(2).getSuggestionAt(2)).thenReturn(article2); | |
102 when(mChildren.get(4).getSuggestionAt(0)).thenReturn(article3); | |
103 when(mChildren.get(6).getSuggestionAt(0)).thenReturn(article4); | |
104 | |
105 assertThat(mInnerNode.getSuggestionAt(0), is(article1)); | |
106 assertThat(mInnerNode.getSuggestionAt(5), is(article2)); | |
107 assertThat(mInnerNode.getSuggestionAt(6), is(article3)); | |
108 assertThat(mInnerNode.getSuggestionAt(11), is(article4)); | |
109 } | |
110 | |
111 @Test | |
112 public void testAddChild() { | 93 public void testAddChild() { |
113 final int itemCountBefore = mInnerNode.getItemCount(); | 94 final int itemCountBefore = mInnerNode.getItemCount(); |
114 | 95 |
115 TreeNode child = makeDummyNode(23); | 96 TreeNode child = makeDummyNode(23); |
116 mInnerNode.addChild(child); | 97 mInnerNode.addChild(child); |
117 | 98 |
118 // The child should have been initialized and the parent hierarchy notif
ied about it. | 99 // The child should have been initialized and the parent hierarchy notif
ied about it. |
119 verify(child).setParent(eq(mInnerNode)); | 100 verify(child).setParent(eq(mInnerNode)); |
120 verify(mParent).onItemRangeInserted(mInnerNode, itemCountBefore, 23); | 101 verify(mParent).onItemRangeInserted(mInnerNode, itemCountBefore, 23); |
121 | 102 |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
239 mNextExpectedItemCount = null; | 220 mNextExpectedItemCount = null; |
240 } | 221 } |
241 } | 222 } |
242 | 223 |
243 private static TreeNode makeDummyNode(int itemCount) { | 224 private static TreeNode makeDummyNode(int itemCount) { |
244 TreeNode node = mock(TreeNode.class); | 225 TreeNode node = mock(TreeNode.class); |
245 when(node.getItemCount()).thenReturn(itemCount); | 226 when(node.getItemCount()).thenReturn(itemCount); |
246 return node; | 227 return node; |
247 } | 228 } |
248 } | 229 } |
OLD | NEW |