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

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

Issue 418883002: Simplify wrap_contents mode. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix findbugs Created 6 years, 4 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/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 4ef786bfbb93e227de15ea778446edf9b9623cf6..18e06ebb9116efd5bf3810e65345dcb29b0ae4cf 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
@@ -12,14 +12,16 @@ import android.view.View.MeasureSpec;
import org.chromium.android_webview.AwLayoutSizer;
import org.chromium.base.test.util.Feature;
+/**
+ * Unittests for the AwLayoutSizer class.
+ */
public class AwLayoutSizerTest extends InstrumentationTestCase {
static class LayoutSizerDelegate implements AwLayoutSizer.Delegate {
public int requestLayoutCallCount;
public boolean setMeasuredDimensionCalled;
public int measuredWidth;
public int measuredHeight;
- public int fixedLayoutWidth;
- public int fixedLayoutHeight;
+ public boolean forceZeroHeight;
public boolean heightWrapContent;
@Override
@@ -35,9 +37,8 @@ public class AwLayoutSizerTest extends InstrumentationTestCase {
}
@Override
- public void setFixedLayoutSize(int widthDip, int heightDip) {
- fixedLayoutWidth = widthDip;
- fixedLayoutHeight = heightDip;
+ public void setForceZeroLayoutHeight(boolean forceZeroHeight) {
+ this.forceZeroHeight = forceZeroHeight;
}
@Override
@@ -347,16 +348,6 @@ public class AwLayoutSizerTest extends InstrumentationTestCase {
MeasureSpec.makeMeasureSpec(measuredHeight, MeasureSpec.EXACTLY));
assertEquals(measuredWidth, delegate.measuredWidth & View.MEASURED_SIZE_MASK);
assertEquals(measuredHeight, delegate.measuredHeight & View.MEASURED_SIZE_MASK);
-
- layoutSizer.onSizeChanged(measuredWidth, measuredHeight, 0, 0);
-
- assertEquals(0, delegate.fixedLayoutWidth);
- assertEquals(0, delegate.fixedLayoutHeight);
-
- layoutSizer.onPageScaleChanged(2.0f);
-
- assertEquals(0, delegate.fixedLayoutWidth);
- assertEquals(0, delegate.fixedLayoutHeight);
}
@SmallTest
@@ -388,54 +379,6 @@ public class AwLayoutSizerTest extends InstrumentationTestCase {
@SmallTest
@Feature({"AndroidWebView"})
- public void testViewportWithUnspecifiedMeasureSpec() {
- AwLayoutSizer layoutSizer = new AwLayoutSizer();
- LayoutSizerDelegate delegate = new LayoutSizerDelegate();
- 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 atMostWidth = contentWidth * dipAndPageScale;
- int atMostHeight = contentHeight * dipAndPageScale;
-
- layoutSizer.setDIPScale(dipScale);
- layoutSizer.onContentSizeChanged(contentWidth, contentHeight);
- layoutSizer.onPageScaleChanged(pageScale);
- layoutSizer.onMeasure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
- MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
-
- 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);
-
- sizeWidth = measuredWidth * 2;
- sizeHeight = measuredHeight * 2;
- layoutSizer.onSizeChanged(sizeWidth, sizeHeight, 0, 0);
-
- assertEquals(sizeWidth / dipAndPageScale, delegate.fixedLayoutWidth);
- assertEquals(AwLayoutSizer.FIXED_LAYOUT_HEIGHT, delegate.fixedLayoutHeight);
-
- sizeWidth = measuredWidth / 2;
- sizeHeight = measuredHeight / 2;
- layoutSizer.onSizeChanged(sizeWidth, sizeHeight, 0, 0);
-
- assertEquals(sizeWidth / dipAndPageScale, delegate.fixedLayoutWidth);
- assertEquals(AwLayoutSizer.FIXED_LAYOUT_HEIGHT, delegate.fixedLayoutHeight);
- }
-
- @SmallTest
- @Feature({"AndroidWebView"})
public void testViewportWithAtMostMeasureSpec() {
AwLayoutSizer layoutSizer = new AwLayoutSizer();
LayoutSizerDelegate delegate = new LayoutSizerDelegate();
@@ -451,6 +394,8 @@ public class AwLayoutSizerTest extends InstrumentationTestCase {
int contentWidthPix = contentWidth * dipAndPageScale;
int contentHeightPix = contentHeight * dipAndPageScale;
+ assertFalse(delegate.forceZeroHeight);
+
layoutSizer.setDIPScale(dipScale);
layoutSizer.onContentSizeChanged(contentWidth, contentHeight);
layoutSizer.onPageScaleChanged(pageScale);
@@ -458,54 +403,21 @@ public class AwLayoutSizerTest extends InstrumentationTestCase {
MeasureSpec.makeMeasureSpec(contentHeightPix * 2, MeasureSpec.AT_MOST));
assertTrue(delegate.setMeasuredDimensionCalled);
+ assertFalse(delegate.forceZeroHeight);
+
int measuredWidth = delegate.measuredWidth & View.MEASURED_SIZE_MASK;
int measuredHeight = delegate.measuredHeight & View.MEASURED_SIZE_MASK;
+ layoutSizer.onSizeChanged(measuredWidth, measuredHeight, 0, 0);
- 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();
- layoutSizer.setDelegate(delegate);
- layoutSizer.setDIPScale(DIP_SCALE);
-
- layoutSizer.onContentSizeChanged(FIRST_CONTENT_WIDTH, FIRST_CONTENT_HEIGHT);
- layoutSizer.onPageScaleChanged(INITIAL_PAGE_SCALE);
- layoutSizer.onMeasure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
- MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
- layoutSizer.onSizeChanged((int) (FIRST_CONTENT_WIDTH * DIP_SCALE),
- (int) (FIRST_CONTENT_HEIGHT * DIP_SCALE), 0, 0);
-
- assertTrue(delegate.fixedLayoutWidth != 0);
- assertEquals(AwLayoutSizer.FIXED_LAYOUT_HEIGHT, delegate.fixedLayoutHeight);
-
- layoutSizer.onContentSizeChanged(FIRST_CONTENT_WIDTH, AwLayoutSizer.FIXED_LAYOUT_HEIGHT);
- layoutSizer.onSizeChanged((int) (FIRST_CONTENT_WIDTH * DIP_SCALE),
- (int) (FIRST_CONTENT_HEIGHT * DIP_SCALE), 0, 0);
- assertTrue(delegate.fixedLayoutWidth != 0);
- assertEquals(0, delegate.fixedLayoutHeight);
-
- layoutSizer.onContentSizeChanged(FIRST_CONTENT_WIDTH, 0);
- layoutSizer.onSizeChanged((int) (FIRST_CONTENT_WIDTH * DIP_SCALE),
- (int) (FIRST_CONTENT_HEIGHT * DIP_SCALE), 0, 0);
- assertTrue(delegate.fixedLayoutWidth != 0);
- assertEquals(0, delegate.fixedLayoutHeight);
+ assertTrue(delegate.forceZeroHeight);
}
@SmallTest
@Feature({"AndroidWebView"})
- public void testFixedLayoutSizeUpdatedOnPageScaleChangeItNoLayoutRequest() {
+ public void testFixedLayoutSizeDependsOnHeightWrapContent() {
AwLayoutSizer layoutSizer = new AwLayoutSizer();
LayoutSizerDelegate delegate = new LayoutSizerDelegate();
- delegate.heightWrapContent = true;
+ delegate.heightWrapContent = false;
layoutSizer.setDelegate(delegate);
layoutSizer.setDIPScale(DIP_SCALE);
@@ -516,44 +428,12 @@ public class AwLayoutSizerTest extends InstrumentationTestCase {
MeasureSpec.makeMeasureSpec(AT_MOST_MEASURE_SIZE, MeasureSpec.AT_MOST));
layoutSizer.onSizeChanged(AT_MOST_MEASURE_SIZE, AT_MOST_MEASURE_SIZE, 0, 0);
- assertTrue(delegate.fixedLayoutWidth != 0);
- final int fixedLayoutWidth = delegate.fixedLayoutWidth;
- final int requestLayoutCallCount = delegate.requestLayoutCallCount;
- layoutSizer.onPageScaleChanged(INITIAL_PAGE_SCALE * 2f);
- assertEquals(requestLayoutCallCount, delegate.requestLayoutCallCount);
- assertEquals(fixedLayoutWidth / 2, delegate.fixedLayoutWidth);
- }
-
- @SmallTest
- @Feature({"AndroidWebView"})
- public void testFixedLayoutSizeUpdatedIfNoSizeChangeAfterLayoutRequested() {
- AwLayoutSizer layoutSizer = new AwLayoutSizer();
- LayoutSizerDelegate delegate = new LayoutSizerDelegate();
- layoutSizer.setDelegate(delegate);
- layoutSizer.setDIPScale(DIP_SCALE);
-
- layoutSizer.onContentSizeChanged(FIRST_CONTENT_WIDTH, FIRST_CONTENT_HEIGHT);
- layoutSizer.onPageScaleChanged(INITIAL_PAGE_SCALE);
- layoutSizer.onMeasure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
- MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
-
- layoutSizer.onSizeChanged((int) (FIRST_CONTENT_WIDTH * DIP_SCALE),
- (int) (FIRST_CONTENT_HEIGHT * DIP_SCALE), 0, 0);
-
- assertTrue(delegate.fixedLayoutWidth != 0);
- final int fixedLayoutWidth = delegate.fixedLayoutWidth;
- final int requestLayoutCallCount = delegate.requestLayoutCallCount;
- layoutSizer.onPageScaleChanged(INITIAL_PAGE_SCALE * 0.5f);
- assertEquals(requestLayoutCallCount + 1, delegate.requestLayoutCallCount);
- assertEquals(fixedLayoutWidth, delegate.fixedLayoutWidth);
+ assertFalse(delegate.forceZeroHeight);
- // onMeasure and onLayoutChange should always be called as a result of the AwLayoutSizer
- // calling Delegate.requestLayout.
- layoutSizer.onMeasure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
- MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
- layoutSizer.onLayoutChange();
+ delegate.heightWrapContent = true;
+ layoutSizer.onSizeChanged(AT_MOST_MEASURE_SIZE, AT_MOST_MEASURE_SIZE, 0, 0);
- assertEquals(fixedLayoutWidth * 2, delegate.fixedLayoutWidth);
+ assertTrue(delegate.forceZeroHeight);
}
@SmallTest
@@ -572,7 +452,12 @@ public class AwLayoutSizerTest extends InstrumentationTestCase {
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);
+ assertFalse(delegate.forceZeroHeight);
+
+ layoutSizer.onMeasure(
+ MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
+ MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
+ layoutSizer.onSizeChanged(AT_MOST_MEASURE_SIZE, AT_MOST_MEASURE_SIZE, 0, 0);
+ assertFalse(delegate.forceZeroHeight);
}
}

Powered by Google App Engine
This is Rietveld 408576698