Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(46)

Unified Diff: android_webview/javatests/src/org/chromium/android_webview/test/AwScrollOffsetManagerTest.java

Issue 20990009: Handle root layer fling Java-side in android_webview. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix findbugs Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: android_webview/javatests/src/org/chromium/android_webview/test/AwScrollOffsetManagerTest.java
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwScrollOffsetManagerTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwScrollOffsetManagerTest.java
index 74891a4a66f3a08abf98a2db5d2f8f9c04a81a85..c39477430362e7a3ec14663f886758414a1295b4 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/AwScrollOffsetManagerTest.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwScrollOffsetManagerTest.java
@@ -4,8 +4,10 @@
package org.chromium.android_webview.test;
+import android.content.Context;
import android.view.View;
import android.view.View.MeasureSpec;
+import android.widget.OverScroller;
import android.test.InstrumentationTestCase;
import android.test.suitebuilder.annotation.SmallTest;
@@ -21,6 +23,7 @@ public class AwScrollOffsetManagerTest extends InstrumentationTestCase {
private int mScrollY;
private int mNativeScrollX;
private int mNativeScrollY;
+ private int mInvalidateCount;
public int getOverScrollDeltaX() {
return mOverScrollDeltaX;
@@ -50,6 +53,10 @@ public class AwScrollOffsetManagerTest extends InstrumentationTestCase {
return mNativeScrollY;
}
+ public int getInvalidateCount() {
+ return mInvalidateCount;
+ }
+
@Override
public void overScrollContainerViewBy(int deltaX, int deltaY, int scrollX, int scrollY,
int scrollRangeX, int scrollRangeY, boolean isTouchEvent) {
@@ -79,6 +86,11 @@ public class AwScrollOffsetManagerTest extends InstrumentationTestCase {
public int getContainerViewScrollY() {
return mScrollY;
}
+
+ @Override
+ public void invalidate() {
+ mInvalidateCount += 1;
+ }
}
private void simulateScrolling(AwScrollOffsetManager offsetManager,
@@ -98,7 +110,8 @@ public class AwScrollOffsetManagerTest extends InstrumentationTestCase {
@Feature({"AndroidWebView"})
public void testWhenContentSizeMatchesView() {
TestScrollOffsetManagerDelegate delegate = new TestScrollOffsetManagerDelegate();
- AwScrollOffsetManager offsetManager = new AwScrollOffsetManager(delegate);
+ OverScroller scroller = new OverScroller(getInstrumentation().getContext());
+ AwScrollOffsetManager offsetManager = new AwScrollOffsetManager(delegate, scroller);
final int width = 132;
final int height = 212;
@@ -150,7 +163,8 @@ public class AwScrollOffsetManagerTest extends InstrumentationTestCase {
@Feature({"AndroidWebView"})
public void testScrollRangeAndMaxOffset() {
TestScrollOffsetManagerDelegate delegate = new TestScrollOffsetManagerDelegate();
- AwScrollOffsetManager offsetManager = new AwScrollOffsetManager(delegate);
+ OverScroller scroller = new OverScroller(getInstrumentation().getContext());
+ AwScrollOffsetManager offsetManager = new AwScrollOffsetManager(delegate, scroller);
offsetManager.setContentSize(CONTENT_WIDTH, CONTENT_HEIGHT);
offsetManager.setContainerViewSize(VIEW_WIDTH, VIEW_HEIGHT);
@@ -207,7 +221,8 @@ public class AwScrollOffsetManagerTest extends InstrumentationTestCase {
return overrideScrollY;
}
};
- AwScrollOffsetManager offsetManager = new AwScrollOffsetManager(delegate);
+ OverScroller scroller = new OverScroller(getInstrumentation().getContext());
+ AwScrollOffsetManager offsetManager = new AwScrollOffsetManager(delegate, scroller);
offsetManager.setContentSize(CONTENT_WIDTH, CONTENT_HEIGHT);
offsetManager.setContainerViewSize(VIEW_WIDTH, VIEW_HEIGHT);
@@ -233,7 +248,8 @@ public class AwScrollOffsetManagerTest extends InstrumentationTestCase {
return overrideScrollY;
}
};
- AwScrollOffsetManager offsetManager = new AwScrollOffsetManager(delegate);
+ OverScroller scroller = new OverScroller(getInstrumentation().getContext());
+ AwScrollOffsetManager offsetManager = new AwScrollOffsetManager(delegate, scroller);
offsetManager.setContentSize(CONTENT_WIDTH, CONTENT_HEIGHT);
offsetManager.setContainerViewSize(VIEW_WIDTH, VIEW_HEIGHT);
@@ -247,7 +263,8 @@ public class AwScrollOffsetManagerTest extends InstrumentationTestCase {
@Feature({"AndroidWebView"})
public void testScrollContainerViewTo() {
TestScrollOffsetManagerDelegate delegate = new TestScrollOffsetManagerDelegate();
- AwScrollOffsetManager offsetManager = new AwScrollOffsetManager(delegate);
+ OverScroller scroller = new OverScroller(getInstrumentation().getContext());
+ AwScrollOffsetManager offsetManager = new AwScrollOffsetManager(delegate, scroller);
final int scrollX = 31;
final int scrollY = 41;
@@ -269,7 +286,8 @@ public class AwScrollOffsetManagerTest extends InstrumentationTestCase {
@Feature({"AndroidWebView"})
public void testOnContainerViewOverScrolled() {
TestScrollOffsetManagerDelegate delegate = new TestScrollOffsetManagerDelegate();
- AwScrollOffsetManager offsetManager = new AwScrollOffsetManager(delegate);
+ OverScroller scroller = new OverScroller(getInstrumentation().getContext());
+ AwScrollOffsetManager offsetManager = new AwScrollOffsetManager(delegate, scroller);
final int scrollX = 31;
final int scrollY = 41;
@@ -293,7 +311,8 @@ public class AwScrollOffsetManagerTest extends InstrumentationTestCase {
@Feature({"AndroidWebView"})
public void testDefersScrollUntilTouchEnd() {
TestScrollOffsetManagerDelegate delegate = new TestScrollOffsetManagerDelegate();
- AwScrollOffsetManager offsetManager = new AwScrollOffsetManager(delegate);
+ OverScroller scroller = new OverScroller(getInstrumentation().getContext());
+ AwScrollOffsetManager offsetManager = new AwScrollOffsetManager(delegate, scroller);
final int scrollX = 31;
final int scrollY = 41;
@@ -314,4 +333,22 @@ public class AwScrollOffsetManagerTest extends InstrumentationTestCase {
assertEquals(scrollX, delegate.getNativeScrollX());
assertEquals(scrollY, delegate.getNativeScrollY());
}
+
+ @SmallTest
+ @Feature({"AndroidWebView"})
+ public void testFlingScroll() {
+ TestScrollOffsetManagerDelegate delegate = new TestScrollOffsetManagerDelegate();
+ OverScroller scroller = new OverScroller(getInstrumentation().getContext());
+ AwScrollOffsetManager offsetManager = new AwScrollOffsetManager(delegate, scroller);
+
+ offsetManager.flingScroll(0, 101);
+ assertTrue(!scroller.isFinished());
+ assertTrue(delegate.getInvalidateCount() == 1);
+ assertEquals(101, (int) scroller.getCurrVelocity());
+
+ offsetManager.flingScroll(111, 0);
+ assertTrue(!scroller.isFinished());
+ assertTrue(delegate.getInvalidateCount() == 2);
+ assertEquals(111, (int) scroller.getCurrVelocity());
+ }
}

Powered by Google App Engine
This is Rietveld 408576698