OLD | NEW |
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 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 } catch (Throwable t) { | 186 } catch (Throwable t) { |
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 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), | 197 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), |
197 getZoomableHtml(), "text/html", false); | 198 getZoomableHtml(), "text/html", false); |
198 // It takes some time for scaling to settle down. | 199 // It takes some time for scaling to settle down. |
199 waitUntilCanNotZoomOut(); | 200 waitUntilCanNotZoomOut(); |
200 getContentSettingsOnUiThread(mAwContents).setSupportZoom(supportZoom); | 201 getContentSettingsOnUiThread(mAwContents).setSupportZoom(supportZoom); |
201 assertTrue("Should be able to zoom in", canZoomInOnUiThread()); | 202 assertTrue("Should be able to zoom in", canZoomInOnUiThread()); |
202 assertFalse("Should not be able to zoom out", canZoomOutOnUiThread()); | 203 assertFalse("Should not be able to zoom out", canZoomOutOnUiThread()); |
203 | 204 |
204 while (canZoomInOnUiThread()) { | 205 while (canZoomInOnUiThread()) { |
205 assertTrue(zoomInOnUiThreadAndWait()); | 206 assertTrue(zoomInOnUiThreadAndWait()); |
(...skipping 25 matching lines...) Expand all Loading... |
231 */ | 232 */ |
232 @FlakyTest | 233 @FlakyTest |
233 public void testMagnificationWithZoomSupportOff() throws Throwable { | 234 public void testMagnificationWithZoomSupportOff() throws Throwable { |
234 runMagnificationTest(false); | 235 runMagnificationTest(false); |
235 } | 236 } |
236 | 237 |
237 @SmallTest | 238 @SmallTest |
238 @Feature({"AndroidWebView"}) | 239 @Feature({"AndroidWebView"}) |
239 public void testZoomUsingMultiTouch() throws Throwable { | 240 public void testZoomUsingMultiTouch() throws Throwable { |
240 ContentSettings webSettings = getContentSettingsOnUiThread(mAwContents); | 241 ContentSettings webSettings = getContentSettingsOnUiThread(mAwContents); |
| 242 webSettings.setUseWideViewPort(true); |
241 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), | 243 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), |
242 getZoomableHtml(), "text/html", false); | 244 getZoomableHtml(), "text/html", false); |
243 | 245 |
244 assertTrue(webSettings.supportZoom()); | 246 assertTrue(webSettings.supportZoom()); |
245 assertFalse(webSettings.getBuiltInZoomControls()); | 247 assertFalse(webSettings.getBuiltInZoomControls()); |
246 assertFalse(isMultiTouchZoomSupportedOnUiThread()); | 248 assertFalse(isMultiTouchZoomSupportedOnUiThread()); |
247 | 249 |
248 getContentSettingsOnUiThread(mAwContents).setBuiltInZoomControls(true); | 250 getContentSettingsOnUiThread(mAwContents).setBuiltInZoomControls(true); |
249 assertTrue(isMultiTouchZoomSupportedOnUiThread()); | 251 assertTrue(isMultiTouchZoomSupportedOnUiThread()); |
250 | 252 |
251 getContentSettingsOnUiThread(mAwContents).setSupportZoom(false); | 253 getContentSettingsOnUiThread(mAwContents).setSupportZoom(false); |
252 assertFalse(isMultiTouchZoomSupportedOnUiThread()); | 254 assertFalse(isMultiTouchZoomSupportedOnUiThread()); |
253 } | 255 } |
254 | 256 |
255 /** | 257 /** |
256 * @SmallTest | 258 * @SmallTest |
257 * @Feature({"AndroidWebView"}) | 259 * @Feature({"AndroidWebView"}) |
258 * BUG 153522 | 260 * BUG 153522 |
259 */ | 261 */ |
260 @FlakyTest | 262 @FlakyTest |
261 public void testZoomControls() throws Throwable { | 263 public void testZoomControls() throws Throwable { |
262 ContentSettings webSettings = getContentSettingsOnUiThread(mAwContents); | 264 ContentSettings webSettings = getContentSettingsOnUiThread(mAwContents); |
| 265 webSettings.setUseWideViewPort(true); |
263 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), | 266 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), |
264 getZoomableHtml(), "text/html", false); | 267 getZoomableHtml(), "text/html", false); |
265 | 268 |
266 assertTrue(webSettings.supportZoom()); | 269 assertTrue(webSettings.supportZoom()); |
267 webSettings.setBuiltInZoomControls(true); | 270 webSettings.setBuiltInZoomControls(true); |
268 webSettings.setDisplayZoomControls(false); | 271 webSettings.setDisplayZoomControls(false); |
269 | 272 |
270 // With DisplayZoomControls set to false, attempts to display zoom | 273 // With DisplayZoomControls set to false, attempts to display zoom |
271 // controls must be ignored. | 274 // controls must be ignored. |
272 assertNull(getZoomControlsOnUiThread()); | 275 assertNull(getZoomControlsOnUiThread()); |
273 invokeZoomPickerOnUiThread(); | 276 invokeZoomPickerOnUiThread(); |
274 assertNull(getZoomControlsOnUiThread()); | 277 assertNull(getZoomControlsOnUiThread()); |
275 | 278 |
276 webSettings.setDisplayZoomControls(true); | 279 webSettings.setDisplayZoomControls(true); |
277 assertNull(getZoomControlsOnUiThread()); | 280 assertNull(getZoomControlsOnUiThread()); |
278 invokeZoomPickerOnUiThread(); | 281 invokeZoomPickerOnUiThread(); |
279 View zoomControls = getZoomControlsOnUiThread(); | 282 View zoomControls = getZoomControlsOnUiThread(); |
280 assertEquals(View.VISIBLE, zoomControls.getVisibility()); | 283 assertEquals(View.VISIBLE, zoomControls.getVisibility()); |
281 } | 284 } |
282 | 285 |
283 @SmallTest | 286 @SmallTest |
284 @Feature({"AndroidWebView"}) | 287 @Feature({"AndroidWebView"}) |
285 public void testZoomControlsOnNonZoomableContent() throws Throwable { | 288 public void testZoomControlsOnNonZoomableContent() throws Throwable { |
286 ContentSettings webSettings = getContentSettingsOnUiThread(mAwContents); | 289 ContentSettings webSettings = getContentSettingsOnUiThread(mAwContents); |
| 290 webSettings.setUseWideViewPort(true); |
287 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), | 291 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), |
288 getNonZoomableHtml(), "text/html", false); | 292 getNonZoomableHtml(), "text/html", false); |
289 | 293 |
290 // ContentView must update itself according to the viewport setup. | 294 // ContentView must update itself according to the viewport setup. |
291 waitUntilCanNotZoom(); | 295 waitUntilCanNotZoom(); |
292 | 296 |
293 assertTrue(webSettings.supportZoom()); | 297 assertTrue(webSettings.supportZoom()); |
294 webSettings.setBuiltInZoomControls(true); | 298 webSettings.setBuiltInZoomControls(true); |
295 webSettings.setDisplayZoomControls(true); | 299 webSettings.setDisplayZoomControls(true); |
296 assertNull(getZoomControlsOnUiThread()); | 300 assertNull(getZoomControlsOnUiThread()); |
297 invokeZoomPickerOnUiThread(); | 301 invokeZoomPickerOnUiThread(); |
298 View zoomControls = getZoomControlsOnUiThread(); | 302 View zoomControls = getZoomControlsOnUiThread(); |
299 assertEquals(View.GONE, zoomControls.getVisibility()); | 303 assertEquals(View.GONE, zoomControls.getVisibility()); |
300 } | 304 } |
301 | 305 |
302 /** | 306 /** |
303 * @SmallTest | 307 * @SmallTest |
304 * @Feature({"AndroidWebView"}) | 308 * @Feature({"AndroidWebView"}) |
305 * BUG 153523 | 309 * BUG 153523 |
306 */ | 310 */ |
307 @DisabledTest | 311 @DisabledTest |
308 public void testZoomControlsOnOrientationChange() throws Throwable { | 312 public void testZoomControlsOnOrientationChange() throws Throwable { |
309 ContentSettings webSettings = getContentSettingsOnUiThread(mAwContents); | 313 ContentSettings webSettings = getContentSettingsOnUiThread(mAwContents); |
| 314 webSettings.setUseWideViewPort(true); |
310 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), | 315 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), |
311 getZoomableHtml(), "text/html", false); | 316 getZoomableHtml(), "text/html", false); |
312 | 317 |
313 assertTrue(webSettings.supportZoom()); | 318 assertTrue(webSettings.supportZoom()); |
314 webSettings.setBuiltInZoomControls(true); | 319 webSettings.setBuiltInZoomControls(true); |
315 webSettings.setDisplayZoomControls(true); | 320 webSettings.setDisplayZoomControls(true); |
316 invokeZoomPickerOnUiThread(); | 321 invokeZoomPickerOnUiThread(); |
317 | 322 |
318 // 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 |
319 // 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 |
320 // it's receiver. | 325 // it's receiver. |
321 | 326 |
322 Activity activity = getActivity(); | 327 Activity activity = getActivity(); |
323 int orientation = activity.getRequestedOrientation(); | 328 int orientation = activity.getRequestedOrientation(); |
324 activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAI
T); | 329 activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAI
T); |
325 activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCA
PE); | 330 activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCA
PE); |
326 activity.setRequestedOrientation(orientation); | 331 activity.setRequestedOrientation(orientation); |
327 invokeZoomPickerOnUiThread(); | 332 invokeZoomPickerOnUiThread(); |
328 | 333 |
329 // 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 |
330 // 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. |
331 // The delay is encoded in ZoomButtonsController#ZOOM_CONTROLS_TIMEOUT, | 336 // The delay is encoded in ZoomButtonsController#ZOOM_CONTROLS_TIMEOUT, |
332 // if that changes we may need to update this test. | 337 // if that changes we may need to update this test. |
333 Thread.sleep(ViewConfiguration.getZoomControlsTimeout()); | 338 Thread.sleep(ViewConfiguration.getZoomControlsTimeout()); |
334 } | 339 } |
335 } | 340 } |
OLD | NEW |