| Index: android_webview/javatests/src/org/chromium/android_webview/test/AwLayoutSizerTest.java
|
| diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwLayoutSizerTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwLayoutSizerTest.java
|
| index 5d8b56bf48a088d342214572afa820caa9f8a4d9..357e9226393839c1b8af8c12bee381c494f27bed 100644
|
| --- a/android_webview/javatests/src/org/chromium/android_webview/test/AwLayoutSizerTest.java
|
| +++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwLayoutSizerTest.java
|
| @@ -20,6 +20,7 @@ public class AwLayoutSizerTest extends InstrumentationTestCase {
|
| public int measuredHeight;
|
| public int fixedLayoutWidth;
|
| public int fixedLayoutHeight;
|
| + public boolean heightWrapContent;
|
|
|
| @Override
|
| public void requestLayout() {
|
| @@ -38,6 +39,11 @@ public class AwLayoutSizerTest extends InstrumentationTestCase {
|
| fixedLayoutWidth = widthDip;
|
| fixedLayoutHeight = heightDip;
|
| }
|
| +
|
| + @Override
|
| + public boolean isLayoutParamsHeightWrapContent() {
|
| + return heightWrapContent;
|
| + }
|
| }
|
|
|
| private static final int FIRST_CONTENT_WIDTH = 101;
|
| @@ -382,7 +388,7 @@ public class AwLayoutSizerTest extends InstrumentationTestCase {
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView"})
|
| - public void testViewportWithWrapContentMeasureSpec() {
|
| + public void testViewportWithUnspecifiedMeasureSpec() {
|
| AwLayoutSizer layoutSizer = new AwLayoutSizer();
|
| LayoutSizerDelegate delegate = new LayoutSizerDelegate();
|
| layoutSizer.setDelegate(delegate);
|
| @@ -391,7 +397,6 @@ public class AwLayoutSizerTest extends InstrumentationTestCase {
|
| final int pageScale = 2;
|
| final int dipAndPageScale = (int) (dipScale * pageScale);
|
|
|
| -
|
| int contentWidth = 800;
|
| int contentHeight = 400;
|
| int atMostWidth = contentWidth * dipAndPageScale;
|
| @@ -431,6 +436,41 @@ public class AwLayoutSizerTest extends InstrumentationTestCase {
|
|
|
| @SmallTest
|
| @Feature({"AndroidWebView"})
|
| + public void testViewportWithAtMostMeasureSpec() {
|
| + AwLayoutSizer layoutSizer = new AwLayoutSizer();
|
| + LayoutSizerDelegate delegate = new LayoutSizerDelegate();
|
| + delegate.heightWrapContent = true;
|
| + layoutSizer.setDelegate(delegate);
|
| +
|
| + final float dipScale = 1.5f;
|
| + final int pageScale = 2;
|
| + final int dipAndPageScale = (int) (dipScale * pageScale);
|
| +
|
| + int contentWidth = 800;
|
| + int contentHeight = 400;
|
| + int contentWidthPix = contentWidth * dipAndPageScale;
|
| + int contentHeightPix = contentHeight * dipAndPageScale;
|
| +
|
| + layoutSizer.setDIPScale(dipScale);
|
| + layoutSizer.onContentSizeChanged(contentWidth, contentHeight);
|
| + layoutSizer.onPageScaleChanged(pageScale);
|
| + layoutSizer.onMeasure(MeasureSpec.makeMeasureSpec(contentWidthPix, MeasureSpec.EXACTLY),
|
| + MeasureSpec.makeMeasureSpec(contentHeightPix * 2, MeasureSpec.AT_MOST));
|
| +
|
| + assertTrue(delegate.setMeasuredDimensionCalled);
|
| + int measuredWidth = delegate.measuredWidth & View.MEASURED_SIZE_MASK;
|
| + int measuredHeight = delegate.measuredHeight & View.MEASURED_SIZE_MASK;
|
| +
|
| + int sizeWidth = measuredWidth;
|
| + int sizeHeight = measuredHeight;
|
| + layoutSizer.onSizeChanged(sizeWidth, sizeHeight, 0, 0);
|
| +
|
| + assertEquals(contentWidth, delegate.fixedLayoutWidth);
|
| + assertEquals(AwLayoutSizer.FIXED_LAYOUT_HEIGHT, delegate.fixedLayoutHeight);
|
| + }
|
| +
|
| + @SmallTest
|
| + @Feature({"AndroidWebView"})
|
| public void testFixedLayoutViewportGoesBackToZeroWithWrapContentMeasureSpec() {
|
| AwLayoutSizer layoutSizer = new AwLayoutSizer();
|
| LayoutSizerDelegate delegate = new LayoutSizerDelegate();
|
| @@ -465,6 +505,7 @@ public class AwLayoutSizerTest extends InstrumentationTestCase {
|
| public void testFixedLayoutSizeUpdatedOnPageScaleChangeItNoLayoutRequest() {
|
| AwLayoutSizer layoutSizer = new AwLayoutSizer();
|
| LayoutSizerDelegate delegate = new LayoutSizerDelegate();
|
| + delegate.heightWrapContent = true;
|
| layoutSizer.setDelegate(delegate);
|
| layoutSizer.setDIPScale(DIP_SCALE);
|
|
|
| @@ -514,4 +555,24 @@ public class AwLayoutSizerTest extends InstrumentationTestCase {
|
|
|
| assertEquals(fixedLayoutWidth * 2, delegate.fixedLayoutWidth);
|
| }
|
| +
|
| + @SmallTest
|
| + @Feature({"AndroidWebView"})
|
| + public void testFixedLayoutSizeDoesNotDependOnMeasureSpec() {
|
| + AwLayoutSizer layoutSizer = new AwLayoutSizer();
|
| + LayoutSizerDelegate delegate = new LayoutSizerDelegate();
|
| + delegate.heightWrapContent = false;
|
| + layoutSizer.setDelegate(delegate);
|
| + layoutSizer.setDIPScale(DIP_SCALE);
|
| +
|
| + layoutSizer.onContentSizeChanged(TOO_LARGE_CONTENT_SIZE, TOO_LARGE_CONTENT_SIZE);
|
| + layoutSizer.onPageScaleChanged(INITIAL_PAGE_SCALE);
|
| + layoutSizer.onMeasure(
|
| + MeasureSpec.makeMeasureSpec(AT_MOST_MEASURE_SIZE, MeasureSpec.AT_MOST),
|
| + MeasureSpec.makeMeasureSpec(AT_MOST_MEASURE_SIZE, MeasureSpec.AT_MOST));
|
| + layoutSizer.onSizeChanged(AT_MOST_MEASURE_SIZE, AT_MOST_MEASURE_SIZE, 0, 0);
|
| +
|
| + assertEquals(0, delegate.fixedLayoutWidth);
|
| + assertEquals(0, delegate.fixedLayoutHeight);
|
| + }
|
| }
|
|
|