Fix ScrollerCompat tests.
Tests broke with the Support library refactorings.
Bug: 29570748
Change-Id: I9d8cc308a206974985053af03628d54b5c5b3936
diff --git a/compat/java/android/support/v4/widget/ScrollerCompat.java b/compat/java/android/support/v4/widget/ScrollerCompat.java
index 4c8f80b..0161574 100644
--- a/compat/java/android/support/v4/widget/ScrollerCompat.java
+++ b/compat/java/android/support/v4/widget/ScrollerCompat.java
@@ -32,20 +32,22 @@
*/
public final class ScrollerCompat {
OverScroller mScroller;
+ private final boolean mIsIcsOrNewer;
public static ScrollerCompat create(Context context) {
return create(context, null);
}
public static ScrollerCompat create(Context context, Interpolator interpolator) {
- return new ScrollerCompat(context, interpolator);
+ return new ScrollerCompat(Build.VERSION.SDK_INT >= 14, context, interpolator);
}
/**
- * Private constructer where API version can be provided.
- * Useful for unit testing.
+ * Package protected constructor that allows to specify if API version is newer than ICS.
+ * It is useful for unit testing.
*/
- private ScrollerCompat(Context context, Interpolator interpolator) {
+ ScrollerCompat(boolean isIcsOrNewer, Context context, Interpolator interpolator) {
+ mIsIcsOrNewer = isIcsOrNewer;
mScroller = interpolator != null ?
new OverScroller(context, interpolator) : new OverScroller(context);
}
@@ -102,7 +104,7 @@
* negative.
*/
public float getCurrVelocity() {
- return Build.VERSION.SDK_INT < 14 ? 0 : ScrollerCompatIcs.getCurrVelocity(mScroller);
+ return mIsIcsOrNewer ? ScrollerCompatIcs.getCurrVelocity(mScroller) : 0;
}
/**
diff --git a/compat/tests/java/android/support/v4/widget/GingerbreadScrollerCompatTest.java b/compat/tests/java/android/support/v4/widget/GingerbreadScrollerCompatTest.java
index e947749..b1642f33 100644
--- a/compat/tests/java/android/support/v4/widget/GingerbreadScrollerCompatTest.java
+++ b/compat/tests/java/android/support/v4/widget/GingerbreadScrollerCompatTest.java
@@ -17,6 +17,6 @@
public class GingerbreadScrollerCompatTest extends ScrollerCompatTestBase {
public GingerbreadScrollerCompatTest() {
- super(9);
+ super(false);
}
}
diff --git a/compat/tests/java/android/support/v4/widget/IcsScrollerCompatTest.java b/compat/tests/java/android/support/v4/widget/IcsScrollerCompatTest.java
index 5d8a16d..1516d54 100644
--- a/compat/tests/java/android/support/v4/widget/IcsScrollerCompatTest.java
+++ b/compat/tests/java/android/support/v4/widget/IcsScrollerCompatTest.java
@@ -17,6 +17,6 @@
public class IcsScrollerCompatTest extends ScrollerCompatTestBase {
public IcsScrollerCompatTest() {
- super(14);
+ super(true);
}
}
diff --git a/compat/tests/java/android/support/v4/widget/ScrollerCompatTestBase.java b/compat/tests/java/android/support/v4/widget/ScrollerCompatTestBase.java
index 7b7c9f5..1f27813 100644
--- a/compat/tests/java/android/support/v4/widget/ScrollerCompatTestBase.java
+++ b/compat/tests/java/android/support/v4/widget/ScrollerCompatTestBase.java
@@ -15,26 +15,21 @@
*/
package android.support.v4.widget;
-import android.content.Context;
-import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.util.Log;
-import android.view.animation.AnimationUtils;
-import android.view.animation.Interpolator;
-import android.view.animation.LinearInterpolator;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.runner.AndroidJUnit4;
+import android.test.suitebuilder.annotation.MediumTest;
+import android.util.Log;
+import android.view.animation.Interpolator;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.lang.reflect.InvocationTargetException;
+
@RunWith(AndroidJUnit4.class)
@MediumTest
public abstract class ScrollerCompatTestBase {
@@ -43,22 +38,19 @@
private final String TAG;
- private final int mApiLevel;
+ private final boolean mIsIcsOrNewer;
private ScrollerCompat mScroller;
- public ScrollerCompatTestBase(int apiLevel) {
- mApiLevel = apiLevel;
- TAG = "ScrollerCompatTest api:" + apiLevel;
+ public ScrollerCompatTestBase(boolean isIcsOrNewer) {
+ mIsIcsOrNewer = isIcsOrNewer;
+ TAG = "ScrollerCompatTest ICS or newer:" + isIcsOrNewer;
}
protected void createScroller(Interpolator interpolator)
throws NoSuchMethodException, IllegalAccessException, InvocationTargetException,
InstantiationException {
- Constructor<ScrollerCompat> constructor = ScrollerCompat.class
- .getDeclaredConstructor(int.class, Context.class, Interpolator.class);
- constructor.setAccessible(true);
- mScroller = constructor.newInstance(mApiLevel, InstrumentationRegistry.getContext(),
+ mScroller = new ScrollerCompat(mIsIcsOrNewer, InstrumentationRegistry.getContext(),
interpolator);
}