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

Unified Diff: android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.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/AwSettingsTest.java
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java
index ed6b10b1c3656c705f9d1e0486a675bb92bce5a8..ea0f68a74bb3ef083d756ac2311d9ff09a8baba1 100644
--- a/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java
+++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java
@@ -1355,6 +1355,127 @@ public class AwSettingsTest extends AwTestBase {
private int mOnScaleChangedCallCount;
}
+ class AwSettingsForceZeroLayoutHeightTestHelper extends AwSettingsTestHelper<Boolean> {
+
+ AwSettingsForceZeroLayoutHeightTestHelper(
+ AwTestContainerView containerView,
+ TestAwContentsClient contentViewClient,
+ boolean withViewPortTag) throws Throwable {
+ super(containerView, contentViewClient, true);
+ mWithViewPortTag = withViewPortTag;
+ mAwSettings.setUseWideViewPort(true);
+ }
+
+ @Override
+ protected Boolean getAlteredValue() {
+ return ENABLED;
+ }
+
+ @Override
+ protected Boolean getInitialValue() {
+ return DISABLED;
+ }
+
+ @Override
+ protected Boolean getCurrentValue() {
+ return mAwSettings.getForceZeroLayoutHeight();
+ }
+
+ @Override
+ protected void setCurrentValue(Boolean value) {
+ mAwSettings.setForceZeroLayoutHeight(value);
+ }
+
+ @Override
+ protected void doEnsureSettingHasValue(Boolean value) throws Throwable {
+ loadDataSync(getData());
+ int height = Integer.parseInt(getTitleOnUiThread());
+ if (value) {
+ assertEquals(0, height);
+ } else {
+ assertTrue("Div should be at least 50px high, was: " + height, height >= 50);
+ }
+ }
+
+ private String getData() {
+ return "<html><head>" +
+ (mWithViewPortTag ? "<meta name='viewport' content='height=3000' />" : "") +
+ " <script type='text/javascript'> " +
+ " window.addEventListener('load', function(event) { " +
+ " document.title = document.getElementById('testDiv').clientHeight; " +
+ " }); " +
+ " </script> " +
+ "</head>" +
+ "<body> " +
+ " <div style='height:50px;'>test</div> " +
+ " <div id='testDiv' style='height:100%;'></div> " +
+ "</body></html>";
+ }
+
+ private final boolean mWithViewPortTag;
+ }
+
+ class AwSettingsZeroLayoutHeightDisablesViewportQuirkTestHelper extends
+ AwSettingsTestHelper<Boolean> {
+
+ AwSettingsZeroLayoutHeightDisablesViewportQuirkTestHelper(
+ AwTestContainerView containerView,
+ TestAwContentsClient contentViewClient) throws Throwable {
+ super(containerView, contentViewClient, true);
+ mAwSettings.setUseWideViewPort(true);
+ mAwSettings.setForceZeroLayoutHeight(true);
+ }
+
+ @Override
+ protected Boolean getAlteredValue() {
+ return ENABLED;
+ }
+
+ @Override
+ protected Boolean getInitialValue() {
+ return DISABLED;
+ }
+
+ @Override
+ protected Boolean getCurrentValue() {
+ return mAwSettings.getZeroLayoutHeightDisablesViewportQuirk();
+ }
+
+ @Override
+ protected void setCurrentValue(Boolean value) {
+ mAwSettings.setZeroLayoutHeightDisablesViewportQuirk(value);
+ }
+
+ @Override
+ protected void doEnsureSettingHasValue(Boolean value) throws Throwable {
+ DeviceDisplayInfo deviceInfo = DeviceDisplayInfo.create(mContext);
+ int displayWidth = (int) (deviceInfo.getDisplayWidth() / deviceInfo.getDIPScale());
+
+ loadDataSync(getData());
+ int width = Integer.parseInt(getTitleOnUiThread());
+ if (value) {
+ assertEquals(displayWidth, width);
+ } else {
+ assertEquals(3000, width);
+ }
+ }
+
+ private String getData() {
+ return "<html><head>" +
+ "<meta name='viewport' content='width=3000' />" +
+ " <script type='text/javascript'> " +
+ " window.addEventListener('load', function(event) { " +
+ " document.title = document.documentElement.clientWidth; " +
+ " }); " +
+ " </script> " +
+ "</head>" +
+ "<body> " +
+ " <div style='height:50px;'>test</div> " +
+ " <div id='testDiv' style='height:100%;'></div> " +
+ "</body></html>";
+ }
+ }
+
// The test verifies that JavaScript is disabled upon WebView
// creation without accessing AwSettings. If the test passes,
// it means that WebView-specific web preferences configuration
@@ -2484,6 +2605,39 @@ public class AwSettingsTest extends AwTestBase {
@SmallTest
@Feature({"AndroidWebView", "Preferences"})
+ public void testForceZeroLayoutHeightWithTwoViews() throws Throwable {
+ ViewPair views = createViews();
+ runPerViewSettingsTest(
+ new AwSettingsForceZeroLayoutHeightTestHelper(
+ views.getContainer0(), views.getClient0(), false),
+ new AwSettingsForceZeroLayoutHeightTestHelper(
+ views.getContainer1(), views.getClient1(), false));
+ }
+
+ @SmallTest
+ @Feature({"AndroidWebView", "Preferences"})
+ public void testForceZeroLayoutHeightViewportTagWithTwoViews() throws Throwable {
+ ViewPair views = createViews();
+ runPerViewSettingsTest(
+ new AwSettingsForceZeroLayoutHeightTestHelper(
+ views.getContainer0(), views.getClient0(), true),
+ new AwSettingsForceZeroLayoutHeightTestHelper(
+ views.getContainer1(), views.getClient1(), true));
+ }
+
+ @SmallTest
+ @Feature({"AndroidWebView", "Preferences"})
+ public void testZeroLayoutHeightDisablesViewportQuirkWithTwoViews() throws Throwable {
+ ViewPair views = createViews();
+ runPerViewSettingsTest(
+ new AwSettingsZeroLayoutHeightDisablesViewportQuirkTestHelper(
+ views.getContainer0(), views.getClient0()),
+ new AwSettingsZeroLayoutHeightDisablesViewportQuirkTestHelper(
+ views.getContainer1(), views.getClient1()));
+ }
+
+ @SmallTest
+ @Feature({"AndroidWebView", "Preferences"})
public void testLoadWithOverviewModeWithTwoViews() throws Throwable {
ViewPair views = createViews();
runPerViewSettingsTest(

Powered by Google App Engine
This is Rietveld 408576698