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

Side by Side Diff: android_webview/javatests/src/org/chromium/android_webview/test/ContentViewZoomTest.java

Issue 14234002: [Android WebView] Never turn off viewport and fixed layout (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Jonathan's comment addressed Created 7 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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.app.Activity; 7 import android.app.Activity;
8 import android.content.pm.ActivityInfo; 8 import android.content.pm.ActivityInfo;
9 import android.test.FlakyTest; 9 import android.test.FlakyTest;
10 import android.test.suitebuilder.annotation.SmallTest; 10 import android.test.suitebuilder.annotation.SmallTest;
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 t.printStackTrace(); 187 t.printStackTrace();
188 fail("Failed to query canZoomIn/Out: " + t.toString()); 188 fail("Failed to query canZoomIn/Out: " + t.toString());
189 return false; 189 return false;
190 } 190 }
191 } 191 }
192 }, TEST_TIMEOUT_MS, CHECK_INTERVAL_MS); 192 }, TEST_TIMEOUT_MS, CHECK_INTERVAL_MS);
193 } 193 }
194 194
195 private void runMagnificationTest(boolean supportZoom) throws Throwable { 195 private void runMagnificationTest(boolean supportZoom) throws Throwable {
196 getContentSettingsOnUiThread(mAwContents).setUseWideViewPort(true); 196 getContentSettingsOnUiThread(mAwContents).setUseWideViewPort(true);
197 mAwContents.getSettings().setEnableFixedLayoutMode(true);
198 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), 197 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(),
199 getZoomableHtml(), "text/html", false); 198 getZoomableHtml(), "text/html", false);
200 // It takes some time for scaling to settle down. 199 // It takes some time for scaling to settle down.
201 waitUntilCanNotZoomOut(); 200 waitUntilCanNotZoomOut();
202 getContentSettingsOnUiThread(mAwContents).setSupportZoom(supportZoom); 201 getContentSettingsOnUiThread(mAwContents).setSupportZoom(supportZoom);
203 assertTrue("Should be able to zoom in", canZoomInOnUiThread()); 202 assertTrue("Should be able to zoom in", canZoomInOnUiThread());
204 assertFalse("Should not be able to zoom out", canZoomOutOnUiThread()); 203 assertFalse("Should not be able to zoom out", canZoomOutOnUiThread());
205 204
206 while (canZoomInOnUiThread()) { 205 while (canZoomInOnUiThread()) {
207 assertTrue(zoomInOnUiThreadAndWait()); 206 assertTrue(zoomInOnUiThreadAndWait());
(...skipping 26 matching lines...) Expand all
234 @FlakyTest 233 @FlakyTest
235 public void testMagnificationWithZoomSupportOff() throws Throwable { 234 public void testMagnificationWithZoomSupportOff() throws Throwable {
236 runMagnificationTest(false); 235 runMagnificationTest(false);
237 } 236 }
238 237
239 @SmallTest 238 @SmallTest
240 @Feature({"AndroidWebView"}) 239 @Feature({"AndroidWebView"})
241 public void testZoomUsingMultiTouch() throws Throwable { 240 public void testZoomUsingMultiTouch() throws Throwable {
242 ContentSettings webSettings = getContentSettingsOnUiThread(mAwContents); 241 ContentSettings webSettings = getContentSettingsOnUiThread(mAwContents);
243 webSettings.setUseWideViewPort(true); 242 webSettings.setUseWideViewPort(true);
244 mAwContents.getSettings().setEnableFixedLayoutMode(true);
245 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), 243 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(),
246 getZoomableHtml(), "text/html", false); 244 getZoomableHtml(), "text/html", false);
247 245
248 assertTrue(webSettings.supportZoom()); 246 assertTrue(webSettings.supportZoom());
249 assertFalse(webSettings.getBuiltInZoomControls()); 247 assertFalse(webSettings.getBuiltInZoomControls());
250 assertFalse(isMultiTouchZoomSupportedOnUiThread()); 248 assertFalse(isMultiTouchZoomSupportedOnUiThread());
251 249
252 getContentSettingsOnUiThread(mAwContents).setBuiltInZoomControls(true); 250 getContentSettingsOnUiThread(mAwContents).setBuiltInZoomControls(true);
253 assertTrue(isMultiTouchZoomSupportedOnUiThread()); 251 assertTrue(isMultiTouchZoomSupportedOnUiThread());
254 252
255 getContentSettingsOnUiThread(mAwContents).setSupportZoom(false); 253 getContentSettingsOnUiThread(mAwContents).setSupportZoom(false);
256 assertFalse(isMultiTouchZoomSupportedOnUiThread()); 254 assertFalse(isMultiTouchZoomSupportedOnUiThread());
257 } 255 }
258 256
259 /** 257 /**
260 * @SmallTest 258 * @SmallTest
261 * @Feature({"AndroidWebView"}) 259 * @Feature({"AndroidWebView"})
262 * BUG 153522 260 * BUG 153522
263 */ 261 */
264 @FlakyTest 262 @FlakyTest
265 public void testZoomControls() throws Throwable { 263 public void testZoomControls() throws Throwable {
266 ContentSettings webSettings = getContentSettingsOnUiThread(mAwContents); 264 ContentSettings webSettings = getContentSettingsOnUiThread(mAwContents);
267 webSettings.setUseWideViewPort(true); 265 webSettings.setUseWideViewPort(true);
268 mAwContents.getSettings().setEnableFixedLayoutMode(true);
269 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), 266 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(),
270 getZoomableHtml(), "text/html", false); 267 getZoomableHtml(), "text/html", false);
271 268
272 assertTrue(webSettings.supportZoom()); 269 assertTrue(webSettings.supportZoom());
273 webSettings.setBuiltInZoomControls(true); 270 webSettings.setBuiltInZoomControls(true);
274 webSettings.setDisplayZoomControls(false); 271 webSettings.setDisplayZoomControls(false);
275 272
276 // With DisplayZoomControls set to false, attempts to display zoom 273 // With DisplayZoomControls set to false, attempts to display zoom
277 // controls must be ignored. 274 // controls must be ignored.
278 assertNull(getZoomControlsOnUiThread()); 275 assertNull(getZoomControlsOnUiThread());
279 invokeZoomPickerOnUiThread(); 276 invokeZoomPickerOnUiThread();
280 assertNull(getZoomControlsOnUiThread()); 277 assertNull(getZoomControlsOnUiThread());
281 278
282 webSettings.setDisplayZoomControls(true); 279 webSettings.setDisplayZoomControls(true);
283 assertNull(getZoomControlsOnUiThread()); 280 assertNull(getZoomControlsOnUiThread());
284 invokeZoomPickerOnUiThread(); 281 invokeZoomPickerOnUiThread();
285 View zoomControls = getZoomControlsOnUiThread(); 282 View zoomControls = getZoomControlsOnUiThread();
286 assertEquals(View.VISIBLE, zoomControls.getVisibility()); 283 assertEquals(View.VISIBLE, zoomControls.getVisibility());
287 } 284 }
288 285
289 @SmallTest 286 @SmallTest
290 @Feature({"AndroidWebView"}) 287 @Feature({"AndroidWebView"})
291 public void testZoomControlsOnNonZoomableContent() throws Throwable { 288 public void testZoomControlsOnNonZoomableContent() throws Throwable {
292 ContentSettings webSettings = getContentSettingsOnUiThread(mAwContents); 289 ContentSettings webSettings = getContentSettingsOnUiThread(mAwContents);
293 webSettings.setUseWideViewPort(true); 290 webSettings.setUseWideViewPort(true);
294 mAwContents.getSettings().setEnableFixedLayoutMode(true);
295 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), 291 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(),
296 getNonZoomableHtml(), "text/html", false); 292 getNonZoomableHtml(), "text/html", false);
297 293
298 // ContentView must update itself according to the viewport setup. 294 // ContentView must update itself according to the viewport setup.
299 waitUntilCanNotZoom(); 295 waitUntilCanNotZoom();
300 296
301 assertTrue(webSettings.supportZoom()); 297 assertTrue(webSettings.supportZoom());
302 webSettings.setBuiltInZoomControls(true); 298 webSettings.setBuiltInZoomControls(true);
303 webSettings.setDisplayZoomControls(true); 299 webSettings.setDisplayZoomControls(true);
304 assertNull(getZoomControlsOnUiThread()); 300 assertNull(getZoomControlsOnUiThread());
305 invokeZoomPickerOnUiThread(); 301 invokeZoomPickerOnUiThread();
306 View zoomControls = getZoomControlsOnUiThread(); 302 View zoomControls = getZoomControlsOnUiThread();
307 assertEquals(View.GONE, zoomControls.getVisibility()); 303 assertEquals(View.GONE, zoomControls.getVisibility());
308 } 304 }
309 305
310 /** 306 /**
311 * @SmallTest 307 * @SmallTest
312 * @Feature({"AndroidWebView"}) 308 * @Feature({"AndroidWebView"})
313 * BUG 153523 309 * BUG 153523
314 */ 310 */
315 @DisabledTest 311 @DisabledTest
316 public void testZoomControlsOnOrientationChange() throws Throwable { 312 public void testZoomControlsOnOrientationChange() throws Throwable {
317 ContentSettings webSettings = getContentSettingsOnUiThread(mAwContents); 313 ContentSettings webSettings = getContentSettingsOnUiThread(mAwContents);
318 webSettings.setUseWideViewPort(true); 314 webSettings.setUseWideViewPort(true);
319 mAwContents.getSettings().setEnableFixedLayoutMode(true);
320 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), 315 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(),
321 getZoomableHtml(), "text/html", false); 316 getZoomableHtml(), "text/html", false);
322 317
323 assertTrue(webSettings.supportZoom()); 318 assertTrue(webSettings.supportZoom());
324 webSettings.setBuiltInZoomControls(true); 319 webSettings.setBuiltInZoomControls(true);
325 webSettings.setDisplayZoomControls(true); 320 webSettings.setDisplayZoomControls(true);
326 invokeZoomPickerOnUiThread(); 321 invokeZoomPickerOnUiThread();
327 322
328 // Now force an orientation change, and try to display the zoom picker 323 // Now force an orientation change, and try to display the zoom picker
329 // again. Make sure that we don't crash when the ZoomPicker registers 324 // again. Make sure that we don't crash when the ZoomPicker registers
330 // it's receiver. 325 // it's receiver.
331 326
332 Activity activity = getActivity(); 327 Activity activity = getActivity();
333 int orientation = activity.getRequestedOrientation(); 328 int orientation = activity.getRequestedOrientation();
334 activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAI T); 329 activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAI T);
335 activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCA PE); 330 activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCA PE);
336 activity.setRequestedOrientation(orientation); 331 activity.setRequestedOrientation(orientation);
337 invokeZoomPickerOnUiThread(); 332 invokeZoomPickerOnUiThread();
338 333
339 // We may crash shortly (as the zoom picker has a short delay in it befo re 334 // We may crash shortly (as the zoom picker has a short delay in it befo re
340 // it tries to register it's BroadcastReceiver), so sleep to verify we d on't. 335 // it tries to register it's BroadcastReceiver), so sleep to verify we d on't.
341 // The delay is encoded in ZoomButtonsController#ZOOM_CONTROLS_TIMEOUT, 336 // The delay is encoded in ZoomButtonsController#ZOOM_CONTROLS_TIMEOUT,
342 // if that changes we may need to update this test. 337 // if that changes we may need to update this test.
343 Thread.sleep(ViewConfiguration.getZoomControlsTimeout()); 338 Thread.sleep(ViewConfiguration.getZoomControlsTimeout());
344 } 339 }
345 } 340 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698