| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.android_webview.test; | 5 package org.chromium.android_webview.test; |
| 6 | 6 |
| 7 import android.content.Context; | 7 import android.content.Context; |
| 8 import android.test.suitebuilder.annotation.SmallTest; | 8 import android.test.suitebuilder.annotation.SmallTest; |
| 9 import android.util.Log; | 9 import android.util.Log; |
| 10 import android.view.Gravity; | 10 import android.view.Gravity; |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 " background-color: blue; " + | 120 " background-color: blue; " + |
| 121 " } " + | 121 " } " + |
| 122 "</style> "; | 122 "</style> "; |
| 123 private static final String TEST_PAGE_COMMON_CONTENT = "<div>test div</div>
"; | 123 private static final String TEST_PAGE_COMMON_CONTENT = "<div>test div</div>
"; |
| 124 | 124 |
| 125 private String makeTestPage(String onscrollObserver, String firstFrameObserv
er, | 125 private String makeTestPage(String onscrollObserver, String firstFrameObserv
er, |
| 126 String extraContent) { | 126 String extraContent) { |
| 127 String content = TEST_PAGE_COMMON_CONTENT + extraContent; | 127 String content = TEST_PAGE_COMMON_CONTENT + extraContent; |
| 128 if (onscrollObserver != null) { | 128 if (onscrollObserver != null) { |
| 129 content += | 129 content += |
| 130 "<script> " + | 130 "<script> " + |
| 131 " window.onscroll = function(oEvent) { " + | 131 " window.onscroll = function(oEvent) { " + |
| 132 " " + onscrollObserver + ".notifyJava(); " + | 132 " " + onscrollObserver + ".notifyJava(); " + |
| 133 " } " + | 133 " } " + |
| 134 "</script>"; | 134 "</script>"; |
| 135 } | 135 } |
| 136 if (firstFrameObserver != null) { | 136 if (firstFrameObserver != null) { |
| 137 content += | 137 content += |
| 138 "<script> " + | 138 "<script> " + |
| 139 " window.framesToIgnore = 10; " + | 139 " window.framesToIgnore = 10; " + |
| 140 " window.onAnimationFrame = function(timestamp) { " + | 140 " window.onAnimationFrame = function(timestamp) { " + |
| 141 " if (window.framesToIgnore == 0) { " + | 141 " if (window.framesToIgnore == 0) { " + |
| 142 " " + firstFrameObserver + ".notifyJava(); " + | 142 " " + firstFrameObserver + ".notifyJava(); " + |
| 143 " } else {" + | 143 " } else {" + |
| 144 " window.framesToIgnore -= 1; " + | 144 " window.framesToIgnore -= 1; " + |
| 145 " window.requestAnimationFrame(window.onAnimationFrame); " + | 145 " window.requestAnimationFrame(window.onAnimationFrame
); " + |
| 146 " } " + | 146 " } " + |
| 147 " }; " + | 147 " }; " + |
| 148 " window.requestAnimationFrame(window.onAnimationFrame); " + | 148 " window.requestAnimationFrame(window.onAnimationFrame); "
+ |
| 149 "</script>"; | 149 "</script>"; |
| 150 } | 150 } |
| 151 return CommonResources.makeHtmlPageFrom(TEST_PAGE_COMMON_HEADERS, conten
t); | 151 return CommonResources.makeHtmlPageFrom(TEST_PAGE_COMMON_HEADERS, conten
t); |
| 152 } | 152 } |
| 153 | 153 |
| 154 private void scrollToOnMainSync(final View view, final int xPix, final int y
Pix) { | 154 private void scrollToOnMainSync(final View view, final int xPix, final int y
Pix) { |
| 155 getInstrumentation().runOnMainSync(new Runnable() { | 155 getInstrumentation().runOnMainSync(new Runnable() { |
| 156 @Override | 156 @Override |
| 157 public void run() { | 157 public void run() { |
| 158 view.scrollTo(xPix, yPix); | 158 view.scrollTo(xPix, yPix); |
| 159 } | 159 } |
| (...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 636 final int scrollToCallCount = onScrollToCallbackHelper.getCallCount(); | 636 final int scrollToCallCount = onScrollToCallbackHelper.getCallCount(); |
| 637 | 637 |
| 638 getInstrumentation().runOnMainSync(new Runnable() { | 638 getInstrumentation().runOnMainSync(new Runnable() { |
| 639 @Override | 639 @Override |
| 640 public void run() { | 640 public void run() { |
| 641 testContainerView.getAwContents().pageDown(true); | 641 testContainerView.getAwContents().pageDown(true); |
| 642 } | 642 } |
| 643 }); | 643 }); |
| 644 | 644 |
| 645 // Wait for the animation to hit the bottom of the page. | 645 // Wait for the animation to hit the bottom of the page. |
| 646 for (int i = 1; ; ++i) { | 646 for (int i = 1;; ++i) { |
| 647 onScrollToCallbackHelper.waitForCallback(scrollToCallCount, i); | 647 onScrollToCallbackHelper.waitForCallback(scrollToCallCount, i); |
| 648 if (checkScrollOnMainSync(testContainerView, 0, maxScrollYPix)) | 648 if (checkScrollOnMainSync(testContainerView, 0, maxScrollYPix)) |
| 649 break; | 649 break; |
| 650 } | 650 } |
| 651 } | 651 } |
| 652 | 652 |
| 653 @SmallTest | 653 @SmallTest |
| 654 @Feature({"AndroidWebView"}) | 654 @Feature({"AndroidWebView"}) |
| 655 public void testPageUp() throws Throwable { | 655 public void testPageUp() throws Throwable { |
| 656 final TestAwContentsClient contentsClient = new TestAwContentsClient(); | 656 final TestAwContentsClient contentsClient = new TestAwContentsClient(); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 674 final int scrollToCallCount = onScrollToCallbackHelper.getCallCount(); | 674 final int scrollToCallCount = onScrollToCallbackHelper.getCallCount(); |
| 675 | 675 |
| 676 getInstrumentation().runOnMainSync(new Runnable() { | 676 getInstrumentation().runOnMainSync(new Runnable() { |
| 677 @Override | 677 @Override |
| 678 public void run() { | 678 public void run() { |
| 679 testContainerView.getAwContents().pageUp(true); | 679 testContainerView.getAwContents().pageUp(true); |
| 680 } | 680 } |
| 681 }); | 681 }); |
| 682 | 682 |
| 683 // Wait for the animation to hit the bottom of the page. | 683 // Wait for the animation to hit the bottom of the page. |
| 684 for (int i = 1; ; ++i) { | 684 for (int i = 1;; ++i) { |
| 685 onScrollToCallbackHelper.waitForCallback(scrollToCallCount, i); | 685 onScrollToCallbackHelper.waitForCallback(scrollToCallCount, i); |
| 686 if (checkScrollOnMainSync(testContainerView, 0, 0)) | 686 if (checkScrollOnMainSync(testContainerView, 0, 0)) |
| 687 break; | 687 break; |
| 688 } | 688 } |
| 689 } | 689 } |
| 690 | 690 |
| 691 private static class TestGestureStateListener implements ContentViewCore.Ges
tureStateListener { | 691 private static class TestGestureStateListener implements ContentViewCore.Ges
tureStateListener { |
| 692 private CallbackHelper mOnScrollUpdateGestureConsumedHelper = new Callba
ckHelper(); | 692 private CallbackHelper mOnScrollUpdateGestureConsumedHelper = new Callba
ckHelper(); |
| 693 | 693 |
| 694 public CallbackHelper getOnScrollUpdateGestureConsumedHelper() { | 694 public CallbackHelper getOnScrollUpdateGestureConsumedHelper() { |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 754 | 754 |
| 755 final int callCount = onScrollUpdateGestureConsumedHelper.getCallCount()
; | 755 final int callCount = onScrollUpdateGestureConsumedHelper.getCallCount()
; |
| 756 AwTestTouchUtils.dragCompleteView(testContainerView, | 756 AwTestTouchUtils.dragCompleteView(testContainerView, |
| 757 0, -targetScrollXPix, // these need to be negative as we're scro
lling down. | 757 0, -targetScrollXPix, // these need to be negative as we're scro
lling down. |
| 758 0, -targetScrollYPix, | 758 0, -targetScrollYPix, |
| 759 dragSteps, | 759 dragSteps, |
| 760 null /* completionLatch */); | 760 null /* completionLatch */); |
| 761 onScrollUpdateGestureConsumedHelper.waitForCallback(callCount); | 761 onScrollUpdateGestureConsumedHelper.waitForCallback(callCount); |
| 762 } | 762 } |
| 763 } | 763 } |
| OLD | NEW |