diff options
author | paulmeyer <paulmeyer@chromium.org> | 2015-04-01 12:33:48 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-01 19:34:35 +0000 |
commit | 65703af8f934586ad67700ced9fa8483c0f849d7 (patch) | |
tree | 25c1721bc66583f92c6d3f7b9e1d6be53ee393d5 /chrome/test | |
parent | 5872a39886df9e509a271acfa1d7944338c7eb48 (diff) | |
download | chromium_src-65703af8f934586ad67700ced9fa8483c0f849d7.zip chromium_src-65703af8f934586ad67700ced9fa8483c0f849d7.tar.gz chromium_src-65703af8f934586ad67700ced9fa8483c0f849d7.tar.bz2 |
This CL exposes zoom modes to the <webview> API.
The new api is proposed here: https://docs.google.com/a/google.com/document/d/1hIexgq7HvYbqTp19HklW6DcKW-5sgocmnCqUHDKsYo0/edit?usp=sharing
BUG=472674
Review URL: https://codereview.chromium.org/1047793003
Cr-Commit-Position: refs/heads/master@{#323300}
Diffstat (limited to 'chrome/test')
-rw-r--r-- | chrome/test/data/extensions/platform_apps/web_view/shim/main.js | 106 |
1 files changed, 103 insertions, 3 deletions
diff --git a/chrome/test/data/extensions/platform_apps/web_view/shim/main.js b/chrome/test/data/extensions/platform_apps/web_view/shim/main.js index 31d1c37..0b116a8 100644 --- a/chrome/test/data/extensions/platform_apps/web_view/shim/main.js +++ b/chrome/test/data/extensions/platform_apps/web_view/shim/main.js @@ -2043,7 +2043,7 @@ function testLoadDataAPI() { embedder.test.succeed(); }); }); - } + }; var loadstopListener1 = function(e) { webview.removeEventListener('loadstop', loadstopListener1); @@ -2055,7 +2055,7 @@ function testLoadDataAPI() { "BhIHRlc3QuPGJyPgogIDxpbWcgc3JjPSJ0ZXN0LmJtcCI+PGJyPgo8L2h0bWw+Cg==", embedder.testImageBaseURL, embedder.virtualURL); - } + }; webview.addEventListener('loadstop', loadstopListener1); document.body.appendChild(webview); @@ -2104,6 +2104,103 @@ function testResizeEvents() { document.body.appendChild(webview); }; +function testPerOriginZoomMode() { + var webview1 = new WebView(); + var webview2 = new WebView(); + webview1.src = 'about:blank'; + webview2.src = 'about:blank'; + + webview1.addEventListener('loadstop', function(e) { + document.body.appendChild(webview2); + }); + webview2.addEventListener('loadstop', function(e) { + webview1.getZoomMode(function(zoomMode) { + // Check that |webview1| is in 'per-origin' mode and zoom it. Check that + // both webviews zoomed. + embedder.test.assertEq(zoomMode, 'per-origin'); + webview1.setZoom(3.14, function() { + webview1.getZoom(function(zoom) { + embedder.test.assertEq(zoom, 3.14); + webview2.getZoom(function(zoom) { + embedder.test.assertEq(zoom, 3.14); + embedder.test.succeed(); + }); + }); + }); + }); + }); + + document.body.appendChild(webview1); +} + +function testPerViewZoomMode() { + var webview1 = new WebView(); + var webview2 = new WebView(); + webview1.src = 'about:blank'; + webview2.src = 'about:blank'; + + webview1.addEventListener('loadstop', function(e) { + document.body.appendChild(webview2); + }); + webview2.addEventListener('loadstop', function(e) { + // Set |webview2| to 'per-view' mode and zoom it. Make sure that the + // zoom did not affect |webview1|. + webview2.setZoomMode('per-view', function() { + webview2.getZoomMode(function(zoomMode) { + embedder.test.assertEq(zoomMode, 'per-view'); + webview2.setZoom(0.45, function() { + webview1.getZoom(function(zoom) { + embedder.test.assertFalse(zoom == 0.45); + webview2.getZoom(function(zoom) { + embedder.test.assertEq(zoom, 0.45); + embedder.test.succeed(); + }); + }); + }); + }); + }); + }); + + document.body.appendChild(webview1); +} + +function testDisabledZoomMode() { + var webview = new WebView(); + webview.src = 'about:blank'; + + var zoomchanged = false; + var zoomchangeListener = function(e) { + // TODO (paulmeyer): This is currently broken because ZoomObservers do not + // get the correct new zoom level when changing the zoom mode to + // 'disabled'. Will add back in after http://crbug.com/472621 is fixed. + //embedder.test.assertEq(e.newZoomFactor, 1); + zoomchanged = true; + }; + + webview.addEventListener('loadstop', function(e) { + // Set |webview| to 'disabled' mode and check that + // zooming is actually disabled. Also check that the + // "zoomchange" event pick up changes from changing the + // zoom mode. + webview.addEventListener('zoomchange', zoomchangeListener); + webview.setZoomMode('disabled', function() { + webview.getZoomMode(function(zoomMode) { + embedder.test.assertEq(zoomMode, 'disabled'); + webview.removeEventListener('zoomchange', zoomchangeListener); + webview.setZoom(1.39, function() { + webview.getZoom(function(zoom) { + embedder.test.assertEq(zoom, 1); + embedder.test.assertTrue(zoomchanged); + embedder.test.succeed(); + }); + }); + }); + }); + }); + + document.body.appendChild(webview); +} + embedder.test.testList = { 'testAllowTransparencyAttribute': testAllowTransparencyAttribute, 'testAutosizeHeight': testAutosizeHeight, @@ -2182,7 +2279,10 @@ embedder.test.testList = { 'testFindAPI': testFindAPI, 'testFindAPI_findupdate': testFindAPI, 'testLoadDataAPI': testLoadDataAPI, - 'testResizeEvents': testResizeEvents + 'testResizeEvents': testResizeEvents, + 'testPerOriginZoomMode': testPerOriginZoomMode, + 'testPerViewZoomMode': testPerViewZoomMode, + 'testDisabledZoomMode': testDisabledZoomMode, }; onload = function() { |