package org.robolectric.shadows; import android.view.ViewConfiguration; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RuntimeEnvironment; import org.robolectric.TestRunners; import static junit.framework.Assert.assertEquals; import static org.assertj.core.api.Assertions.assertThat; import static org.robolectric.Shadows.shadowOf; @RunWith(TestRunners.MultiApiSelfTest.class) public class ShadowViewConfigurationTest { @Test public void methodsShouldReturnAndroidConstants() { ViewConfiguration viewConfiguration = ViewConfiguration.get(RuntimeEnvironment.application); assertEquals(10, ViewConfiguration.getScrollBarSize()); assertEquals(250, ViewConfiguration.getScrollBarFadeDuration()); assertEquals(300, ViewConfiguration.getScrollDefaultDelay()); assertEquals(12, ViewConfiguration.getFadingEdgeLength()); assertEquals(125, ViewConfiguration.getPressedStateDuration()); assertEquals(500, ViewConfiguration.getLongPressTimeout()); assertEquals(115, ViewConfiguration.getTapTimeout()); assertEquals(500, ViewConfiguration.getJumpTapTimeout()); assertEquals(300, ViewConfiguration.getDoubleTapTimeout()); assertEquals(12, ViewConfiguration.getEdgeSlop()); assertEquals(16, ViewConfiguration.getTouchSlop()); assertEquals(16, ViewConfiguration.getWindowTouchSlop()); assertEquals(50, ViewConfiguration.getMinimumFlingVelocity()); assertEquals(4000, ViewConfiguration.getMaximumFlingVelocity()); assertEquals(320 * 480 * 4, ViewConfiguration.getMaximumDrawingCacheSize()); assertEquals(3000, ViewConfiguration.getZoomControlsTimeout()); assertEquals(500, ViewConfiguration.getGlobalActionKeyTimeout()); assertEquals(0.015f, ViewConfiguration.getScrollFriction()); assertEquals(1f, RuntimeEnvironment.application.getResources().getDisplayMetrics().density); assertEquals(10, viewConfiguration.getScaledScrollBarSize()); assertEquals(12, viewConfiguration.getScaledFadingEdgeLength()); assertEquals(12, viewConfiguration.getScaledEdgeSlop()); assertEquals(16, viewConfiguration.getScaledTouchSlop()); assertEquals(32, viewConfiguration.getScaledPagingTouchSlop()); assertEquals(100, viewConfiguration.getScaledDoubleTapSlop()); assertEquals(16, viewConfiguration.getScaledWindowTouchSlop()); assertEquals(50, viewConfiguration.getScaledMinimumFlingVelocity()); assertEquals(4000, viewConfiguration.getScaledMaximumFlingVelocity()); } @Test public void methodsShouldReturnScaledAndroidConstantsDependingOnPixelDensity() { shadowOf(RuntimeEnvironment.application.getResources()).setDensity(1.5f); ViewConfiguration viewConfiguration = ViewConfiguration.get(RuntimeEnvironment.application); assertEquals(15, viewConfiguration.getScaledScrollBarSize()); assertEquals(18, viewConfiguration.getScaledFadingEdgeLength()); assertEquals(18, viewConfiguration.getScaledEdgeSlop()); assertEquals(24, viewConfiguration.getScaledTouchSlop()); assertEquals(48, viewConfiguration.getScaledPagingTouchSlop()); assertEquals(150, viewConfiguration.getScaledDoubleTapSlop()); assertEquals(24, viewConfiguration.getScaledWindowTouchSlop()); assertEquals(75, viewConfiguration.getScaledMinimumFlingVelocity()); assertEquals(6000, viewConfiguration.getScaledMaximumFlingVelocity()); } @Test public void testHasPermanentMenuKey() throws Exception { ViewConfiguration viewConfiguration = ViewConfiguration.get(RuntimeEnvironment.application); assertThat(viewConfiguration.hasPermanentMenuKey()).isFalse(); ShadowViewConfiguration shadowViewConfiguration = shadowOf(viewConfiguration); shadowViewConfiguration.setHasPermanentMenuKey(true); assertThat(viewConfiguration.hasPermanentMenuKey()).isTrue(); } }