summaryrefslogtreecommitdiff
path: root/library/test/robotest/src/com/android/setupwizardlib/template/RequireScrollMixinTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'library/test/robotest/src/com/android/setupwizardlib/template/RequireScrollMixinTest.java')
-rw-r--r--library/test/robotest/src/com/android/setupwizardlib/template/RequireScrollMixinTest.java246
1 files changed, 123 insertions, 123 deletions
diff --git a/library/test/robotest/src/com/android/setupwizardlib/template/RequireScrollMixinTest.java b/library/test/robotest/src/com/android/setupwizardlib/template/RequireScrollMixinTest.java
index c641449..fe45d5f 100644
--- a/library/test/robotest/src/com/android/setupwizardlib/template/RequireScrollMixinTest.java
+++ b/library/test/robotest/src/com/android/setupwizardlib/template/RequireScrollMixinTest.java
@@ -16,13 +16,10 @@
package com.android.setupwizardlib.template;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
+import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth.assertWithMessage;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
@@ -33,135 +30,138 @@ import android.annotation.SuppressLint;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
-
+import com.android.setupwizardlib.GlifLayout;
import com.android.setupwizardlib.TemplateLayout;
-import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner;
import com.android.setupwizardlib.template.RequireScrollMixin.OnRequireScrollStateChangedListener;
import com.android.setupwizardlib.template.RequireScrollMixin.ScrollHandlingDelegate;
import com.android.setupwizardlib.view.NavigationBar;
-
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
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 RequireScrollMixinTest {
- @Mock
- private TemplateLayout mTemplateLayout;
-
- @Mock
- private ScrollHandlingDelegate mDelegate;
-
- private RequireScrollMixin mRequireScrollMixin;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- doReturn(application).when(mTemplateLayout).getContext();
- mRequireScrollMixin = new RequireScrollMixin(mTemplateLayout);
- mRequireScrollMixin.setScrollHandlingDelegate(mDelegate);
- }
-
- @Test
- public void testRequireScroll() {
- mRequireScrollMixin.requireScroll();
-
- verify(mDelegate).startListening();
- }
-
- @Test
- public void testScrollStateChangedListener() {
- OnRequireScrollStateChangedListener listener =
- mock(OnRequireScrollStateChangedListener.class);
- mRequireScrollMixin.setOnRequireScrollStateChangedListener(listener);
- assertFalse("Scrolling should not be required initially",
- mRequireScrollMixin.isScrollingRequired());
-
- mRequireScrollMixin.notifyScrollabilityChange(true);
- verify(listener).onRequireScrollStateChanged(true);
- assertTrue("Scrolling should be required when there is more content below the fold",
- mRequireScrollMixin.isScrollingRequired());
-
- mRequireScrollMixin.notifyScrollabilityChange(false);
- verify(listener).onRequireScrollStateChanged(false);
- assertFalse("Scrolling should not be required after scrolling to bottom",
- mRequireScrollMixin.isScrollingRequired());
-
- // Once the user has scrolled to the bottom, they should not be forced to scroll down again
- mRequireScrollMixin.notifyScrollabilityChange(true);
- verifyNoMoreInteractions(listener);
-
- assertFalse("Scrolling should not be required after scrolling to bottom once",
- mRequireScrollMixin.isScrollingRequired());
-
- assertSame(listener, mRequireScrollMixin.getOnRequireScrollStateChangedListener());
- }
-
- @Test
- public void testCreateOnClickListener() {
- OnClickListener wrappedListener = mock(OnClickListener.class);
- final OnClickListener onClickListener =
- mRequireScrollMixin.createOnClickListener(wrappedListener);
-
- mRequireScrollMixin.notifyScrollabilityChange(true);
- onClickListener.onClick(null);
-
- verify(wrappedListener, never()).onClick(any(View.class));
- verify(mDelegate).pageScrollDown();
-
- mRequireScrollMixin.notifyScrollabilityChange(false);
- onClickListener.onClick(null);
-
- verify(wrappedListener).onClick(any(View.class));
- }
-
- @Test
- public void testRequireScrollWithNavigationBar() {
- final NavigationBar navigationBar = new NavigationBar(application);
- mRequireScrollMixin.requireScrollWithNavigationBar(navigationBar);
-
- mRequireScrollMixin.notifyScrollabilityChange(true);
- assertEquals("More button should be visible",
- View.VISIBLE, navigationBar.getMoreButton().getVisibility());
- assertEquals("Next button should be hidden",
- View.GONE, navigationBar.getNextButton().getVisibility());
-
- navigationBar.getMoreButton().performClick();
- verify(mDelegate).pageScrollDown();
-
- mRequireScrollMixin.notifyScrollabilityChange(false);
- assertEquals("More button should be hidden",
- View.GONE, navigationBar.getMoreButton().getVisibility());
- assertEquals("Next button should be visible",
- View.VISIBLE, navigationBar.getNextButton().getVisibility());
- }
-
- @SuppressLint("SetTextI18n") // It's OK for testing
- @Test
- public void testRequireScrollWithButton() {
- final Button button = new Button(application);
- button.setText("OriginalLabel");
- OnClickListener wrappedListener = mock(OnClickListener.class);
- mRequireScrollMixin.requireScrollWithButton(
- button, "TestMoreLabel", wrappedListener);
-
- assertEquals("Button label should be kept initially", "OriginalLabel", button.getText());
-
- mRequireScrollMixin.notifyScrollabilityChange(true);
- assertEquals("TestMoreLabel", button.getText());
- button.performClick();
- verify(wrappedListener, never()).onClick(eq(button));
- verify(mDelegate).pageScrollDown();
-
- mRequireScrollMixin.notifyScrollabilityChange(false);
- assertEquals("OriginalLabel", button.getText());
- button.performClick();
- verify(wrappedListener).onClick(eq(button));
- }
+ @Mock private ScrollHandlingDelegate delegate;
+
+ private RequireScrollMixin requireScrollMixin;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ TemplateLayout templateLayout = new GlifLayout(application);
+ requireScrollMixin = new RequireScrollMixin(templateLayout);
+ requireScrollMixin.setScrollHandlingDelegate(delegate);
+ }
+
+ @Test
+ public void testRequireScroll() {
+ requireScrollMixin.requireScroll();
+
+ verify(delegate).startListening();
+ }
+
+ @Test
+ public void testScrollStateChangedListener() {
+ OnRequireScrollStateChangedListener listener = mock(OnRequireScrollStateChangedListener.class);
+ requireScrollMixin.setOnRequireScrollStateChangedListener(listener);
+ assertWithMessage("Scrolling should not be required initially")
+ .that(requireScrollMixin.isScrollingRequired())
+ .isFalse();
+
+ requireScrollMixin.notifyScrollabilityChange(true);
+ verify(listener).onRequireScrollStateChanged(true);
+ assertWithMessage("Scrolling should be required when there is more content below the fold")
+ .that(requireScrollMixin.isScrollingRequired())
+ .isTrue();
+
+ requireScrollMixin.notifyScrollabilityChange(false);
+ verify(listener).onRequireScrollStateChanged(false);
+ assertWithMessage("Scrolling should not be required after scrolling to bottom")
+ .that(requireScrollMixin.isScrollingRequired())
+ .isFalse();
+
+ // Once the user has scrolled to the bottom, they should not be forced to scroll down again
+ requireScrollMixin.notifyScrollabilityChange(true);
+ verifyNoMoreInteractions(listener);
+
+ assertWithMessage("Scrolling should not be required after scrolling to bottom once")
+ .that(requireScrollMixin.isScrollingRequired())
+ .isFalse();
+
+ assertThat(requireScrollMixin.getOnRequireScrollStateChangedListener()).isSameAs(listener);
+ }
+
+ @Test
+ public void testCreateOnClickListener() {
+ OnClickListener wrappedListener = mock(OnClickListener.class);
+ final OnClickListener onClickListener =
+ requireScrollMixin.createOnClickListener(wrappedListener);
+
+ requireScrollMixin.notifyScrollabilityChange(true);
+ onClickListener.onClick(null);
+
+ verify(wrappedListener, never()).onClick(any(View.class));
+ verify(delegate).pageScrollDown();
+
+ requireScrollMixin.notifyScrollabilityChange(false);
+ onClickListener.onClick(null);
+
+ verify(wrappedListener).onClick(any(View.class));
+ }
+
+ @Test
+ public void testRequireScrollWithNavigationBar() {
+ final NavigationBar navigationBar = new NavigationBar(application);
+ requireScrollMixin.requireScrollWithNavigationBar(navigationBar);
+
+ requireScrollMixin.notifyScrollabilityChange(true);
+ assertWithMessage("More button should be visible")
+ .that(navigationBar.getMoreButton().getVisibility())
+ .isEqualTo(View.VISIBLE);
+ assertWithMessage("Next button should be hidden")
+ .that(navigationBar.getNextButton().getVisibility())
+ .isEqualTo(View.GONE);
+
+ navigationBar.getMoreButton().performClick();
+ verify(delegate).pageScrollDown();
+
+ requireScrollMixin.notifyScrollabilityChange(false);
+ assertWithMessage("More button should be hidden")
+ .that(navigationBar.getMoreButton().getVisibility())
+ .isEqualTo(View.GONE);
+ assertWithMessage("Next button should be visible")
+ .that(navigationBar.getNextButton().getVisibility())
+ .isEqualTo(View.VISIBLE);
+ }
+
+ @SuppressLint("SetTextI18n") // It's OK for testing
+ @Test
+ public void testRequireScrollWithButton() {
+ final Button button = new Button(application);
+ button.setText("OriginalLabel");
+ OnClickListener wrappedListener = mock(OnClickListener.class);
+ requireScrollMixin.requireScrollWithButton(button, "TestMoreLabel", wrappedListener);
+
+ assertWithMessage("Button label should be kept initially")
+ .that(button.getText().toString())
+ .isEqualTo("OriginalLabel");
+
+ requireScrollMixin.notifyScrollabilityChange(true);
+ assertThat(button.getText().toString()).isEqualTo("TestMoreLabel");
+ button.performClick();
+ verify(wrappedListener, never()).onClick(eq(button));
+ verify(delegate).pageScrollDown();
+
+ requireScrollMixin.notifyScrollabilityChange(false);
+ assertThat(button.getText().toString()).isEqualTo("OriginalLabel");
+ button.performClick();
+ verify(wrappedListener).onClick(eq(button));
+ }
}