summaryrefslogtreecommitdiff
path: root/library/test/robotest/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegateTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'library/test/robotest/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegateTest.java')
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegateTest.java128
1 files changed, 58 insertions, 70 deletions
diff --git a/library/test/robotest/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegateTest.java b/library/test/robotest/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegateTest.java
index ec3622d..9b99a68 100644
--- a/library/test/robotest/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegateTest.java
+++ b/library/test/robotest/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegateTest.java
@@ -16,105 +16,93 @@
package com.android.setupwizardlib.template;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
+import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.verify;
import static org.robolectric.RuntimeEnvironment.application;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.AbsListView.OnScrollListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
-
-import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
-
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
-@Config(sdk = { Config.OLDEST_SDK, Config.NEWEST_SDK })
-@RunWith(SuwLibRobolectricTestRunner.class)
+@Config(sdk = {Config.OLDEST_SDK, Config.NEWEST_SDK})
+@RunWith(RobolectricTestRunner.class)
public class ListViewScrollHandlingDelegateTest {
- @Mock
- private RequireScrollMixin mRequireScrollMixin;
+ @Mock private RequireScrollMixin requireScrollMixin;
- private ListView mListView;
- private ListViewScrollHandlingDelegate mDelegate;
- private ArgumentCaptor<OnScrollListener> mListenerCaptor;
+ private ListView listView;
+ private ListViewScrollHandlingDelegate delegate;
- @Before
- public void setUp() throws Exception {
- MockitoAnnotations.initMocks(this);
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
- mListView = spy(new TestListView(application));
- mDelegate = new ListViewScrollHandlingDelegate(mRequireScrollMixin, mListView);
+ listView = new TestListView(application);
+ delegate = new ListViewScrollHandlingDelegate(requireScrollMixin, listView);
- mListenerCaptor = ArgumentCaptor.forClass(OnScrollListener.class);
- doNothing().when(mListView).setOnScrollListener(mListenerCaptor.capture());
+ listView.layout(0, 0, 50, 50);
+ }
- mListView.layout(0, 0, 50, 50);
- }
+ @Test
+ public void testRequireScroll() throws Throwable {
+ delegate.startListening();
- @Test
- public void testRequireScroll() throws Throwable {
- mDelegate.startListening();
+ verify(requireScrollMixin).notifyScrollabilityChange(true);
+ }
- verify(mRequireScrollMixin).notifyScrollabilityChange(true);
- }
+ @Test
+ public void testScrolledToBottom() throws Throwable {
+ delegate.startListening();
- @Test
- public void testScrolledToBottom() throws Throwable {
- mDelegate.startListening();
+ verify(requireScrollMixin).notifyScrollabilityChange(true);
- verify(mRequireScrollMixin).notifyScrollabilityChange(true);
+ Shadows.shadowOf(listView).getOnScrollListener().onScroll(listView, 2, 20, 20);
- doReturn(20).when(mListView).getLastVisiblePosition();
- mListenerCaptor.getValue().onScroll(mListView, 2, 20, 20);
+ verify(requireScrollMixin).notifyScrollabilityChange(false);
+ }
- verify(mRequireScrollMixin).notifyScrollabilityChange(false);
- }
+ @Test
+ public void testPageScrollDown() throws Throwable {
+ delegate.pageScrollDown();
+ assertThat(Shadows.shadowOf(listView).getLastSmoothScrollByDistance()).isEqualTo(50);
+ }
- @Test
- public void testPageScrollDown() throws Throwable {
- mDelegate.pageScrollDown();
- verify(mListView).smoothScrollBy(eq(50), anyInt());
- }
+ private static class TestListView extends ListView {
+
+ TestListView(Context context) {
+ super(context);
+ setAdapter(
+ new BaseAdapter() {
+ @Override
+ public int getCount() {
+ return 20;
+ }
+
+ @Override
+ public Object getItem(int position) {
+ return null;
+ }
+
+ @Override
+ public long getItemId(int position) {
+ return position;
+ }
- private static class TestListView extends ListView {
-
- TestListView(Context context) {
- super(context);
- setAdapter(new BaseAdapter() {
- @Override
- public int getCount() {
- return 20;
- }
-
- @Override
- public Object getItem(int position) {
- return null;
- }
-
- @Override
- public long getItemId(int position) {
- return position;
- }
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- return new View(parent.getContext());
- }
- });
- }
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ return new View(parent.getContext());
+ }
+ });
}
+ }
}