| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 chrome.test.runTests(function() { | 5 chrome.test.runTests(function() { |
| 6 'use strict'; | 6 'use strict'; |
| 7 | 7 |
| 8 class MockViewport { | 8 class MockViewport { |
| 9 constructor() { | 9 constructor() { |
| 10 this.zooms = []; | 10 this.zooms = []; |
| 11 this.zoom = 1; | 11 this.zoom = 1; |
| 12 this.browserOnlyZoomChange = false; |
| 12 } | 13 } |
| 13 | 14 |
| 14 setZoom(zoom) { | 15 setZoom(zoom) { |
| 15 this.zooms.push(zoom); | 16 this.zooms.push(zoom); |
| 16 this.zoom = zoom; | 17 this.zoom = zoom; |
| 17 } | 18 } |
| 19 |
| 20 updateZoomFromBrowserChange(oldBrowserZoom) { |
| 21 this.browserOnlyZoomChange = true; |
| 22 } |
| 18 } | 23 } |
| 19 | 24 |
| 20 /** | 25 /** |
| 21 * A mock implementation of the function used by ZoomManager to set the | 26 * A mock implementation of the function used by ZoomManager to set the |
| 22 * browser zoom level. | 27 * browser zoom level. |
| 23 */ | 28 */ |
| 24 class MockBrowserZoomSetter { | 29 class MockBrowserZoomSetter { |
| 25 constructor() { | 30 constructor() { |
| 26 this.zoom = 1; | 31 this.zoom = 1; |
| 27 this.started = false; | 32 this.started = false; |
| (...skipping 18 matching lines...) Expand all Loading... |
| 46 complete() { | 51 complete() { |
| 47 this.resolve_(); | 52 this.resolve_(); |
| 48 this.started = false; | 53 this.started = false; |
| 49 } | 54 } |
| 50 }; | 55 }; |
| 51 | 56 |
| 52 return [ | 57 return [ |
| 53 function testZoomChange() { | 58 function testZoomChange() { |
| 54 let viewport = new MockViewport(); | 59 let viewport = new MockViewport(); |
| 55 let browserZoomSetter = new MockBrowserZoomSetter(); | 60 let browserZoomSetter = new MockBrowserZoomSetter(); |
| 56 let zoomManager = new ZoomManager( | 61 let zoomManager = ZoomManager.create( |
| 57 viewport, browserZoomSetter.setBrowserZoom.bind(browserZoomSetter), | 62 BrowserApi.ZoomBehavior.MANAGE, viewport, |
| 58 1); | 63 browserZoomSetter.setBrowserZoom.bind(browserZoomSetter), 1); |
| 59 viewport.zoom = 2; | 64 viewport.zoom = 2; |
| 60 zoomManager.onPdfZoomChange(); | 65 zoomManager.onPdfZoomChange(); |
| 61 chrome.test.assertEq(2, browserZoomSetter.zoom); | 66 chrome.test.assertEq(2, browserZoomSetter.zoom); |
| 62 chrome.test.assertTrue(browserZoomSetter.started); | 67 chrome.test.assertTrue(browserZoomSetter.started); |
| 63 chrome.test.succeed(); | 68 chrome.test.succeed(); |
| 64 }, | 69 }, |
| 65 | 70 |
| 66 function testBrowserZoomChange() { | 71 function testBrowserZoomChange() { |
| 67 let viewport = new MockViewport(); | 72 let viewport = new MockViewport(); |
| 68 let zoomManager = new ZoomManager(viewport, chrome.test.fail, 1); | 73 let zoomManager = ZoomManager.create( |
| 74 BrowserApi.ZoomBehavior.MANAGE, viewport, chrome.test.fail, 1); |
| 69 zoomManager.onBrowserZoomChange(3); | 75 zoomManager.onBrowserZoomChange(3); |
| 70 chrome.test.assertEq(1, viewport.zooms.length); | 76 chrome.test.assertEq(1, viewport.zooms.length); |
| 71 chrome.test.assertEq(3, viewport.zooms[0]); | 77 chrome.test.assertEq(3, viewport.zooms[0]); |
| 72 chrome.test.assertEq(3, viewport.zoom); | 78 chrome.test.assertEq(3, viewport.zoom); |
| 73 chrome.test.succeed(); | 79 chrome.test.succeed(); |
| 74 }, | 80 }, |
| 75 | 81 |
| 82 function testBrowserZoomChangeEmbedded() { |
| 83 let viewport = new MockViewport(); |
| 84 let zoomManager = ZoomManager.create( |
| 85 BrowserApi.ZoomBehavior.PROPAGATE_PARENT, viewport, |
| 86 function() { return Promise.reject(); }, 1); |
| 87 |
| 88 // Zooming in the browser should not overwrite the viewport's zoom, |
| 89 // but be applied seperately. |
| 90 viewport.zoom = 2; |
| 91 zoomManager.onBrowserZoomChange(3); |
| 92 chrome.test.assertEq(2, viewport.zoom); |
| 93 chrome.test.assertTrue(viewport.browserOnlyZoomChange); |
| 94 |
| 95 chrome.test.succeed(); |
| 96 }, |
| 97 |
| 76 function testSmallZoomChange() { | 98 function testSmallZoomChange() { |
| 77 let viewport = new MockViewport(); | 99 let viewport = new MockViewport(); |
| 78 let browserZoomSetter = new MockBrowserZoomSetter(); | 100 let browserZoomSetter = new MockBrowserZoomSetter(); |
| 79 let zoomManager = new ZoomManager( | 101 let zoomManager = ZoomManager.create( |
| 80 viewport, browserZoomSetter.setBrowserZoom.bind(browserZoomSetter), | 102 BrowserApi.ZoomBehavior.MANAGE, viewport, |
| 81 2); | 103 browserZoomSetter.setBrowserZoom.bind(browserZoomSetter), 2); |
| 82 viewport.zoom = 2.0001; | 104 viewport.zoom = 2.0001; |
| 83 zoomManager.onPdfZoomChange(); | 105 zoomManager.onPdfZoomChange(); |
| 84 chrome.test.assertEq(1, browserZoomSetter.zoom); | 106 chrome.test.assertEq(1, browserZoomSetter.zoom); |
| 85 chrome.test.assertFalse(browserZoomSetter.started); | 107 chrome.test.assertFalse(browserZoomSetter.started); |
| 86 chrome.test.succeed(); | 108 chrome.test.succeed(); |
| 87 }, | 109 }, |
| 88 | 110 |
| 89 function testSmallBrowserZoomChange() { | 111 function testSmallBrowserZoomChange() { |
| 90 let viewport = new MockViewport(); | 112 let viewport = new MockViewport(); |
| 91 let zoomManager = new ZoomManager(viewport, chrome.test.fail, 1); | 113 let zoomManager = ZoomManager.create( |
| 114 BrowserApi.ZoomBehavior.MANAGE, viewport, chrome.test.fail, 1); |
| 92 zoomManager.onBrowserZoomChange(0.999); | 115 zoomManager.onBrowserZoomChange(0.999); |
| 93 chrome.test.assertEq(0, viewport.zooms.length); | 116 chrome.test.assertEq(0, viewport.zooms.length); |
| 94 chrome.test.assertEq(1, viewport.zoom); | 117 chrome.test.assertEq(1, viewport.zoom); |
| 95 chrome.test.succeed(); | 118 chrome.test.succeed(); |
| 96 }, | 119 }, |
| 97 | 120 |
| 98 function testMultiplePdfZoomChanges() { | 121 function testMultiplePdfZoomChanges() { |
| 99 let viewport = new MockViewport(); | 122 let viewport = new MockViewport(); |
| 100 let browserZoomSetter = new MockBrowserZoomSetter(); | 123 let browserZoomSetter = new MockBrowserZoomSetter(); |
| 101 let zoomManager = new ZoomManager( | 124 let zoomManager = ZoomManager.create( |
| 102 viewport, browserZoomSetter.setBrowserZoom.bind(browserZoomSetter), | 125 BrowserApi.ZoomBehavior.MANAGE, viewport, |
| 103 1); | 126 browserZoomSetter.setBrowserZoom.bind(browserZoomSetter), 1); |
| 104 viewport.zoom = 2; | 127 viewport.zoom = 2; |
| 105 zoomManager.onPdfZoomChange(); | 128 zoomManager.onPdfZoomChange(); |
| 106 viewport.zoom = 3; | 129 viewport.zoom = 3; |
| 107 zoomManager.onPdfZoomChange(); | 130 zoomManager.onPdfZoomChange(); |
| 108 chrome.test.assertTrue(browserZoomSetter.started); | 131 chrome.test.assertTrue(browserZoomSetter.started); |
| 109 chrome.test.assertEq(2, browserZoomSetter.zoom); | 132 chrome.test.assertEq(2, browserZoomSetter.zoom); |
| 110 browserZoomSetter.complete(); | 133 browserZoomSetter.complete(); |
| 111 Promise.resolve().then(function() { | 134 Promise.resolve().then(function() { |
| 112 chrome.test.assertTrue(browserZoomSetter.started); | 135 chrome.test.assertTrue(browserZoomSetter.started); |
| 113 chrome.test.assertEq(3, browserZoomSetter.zoom); | 136 chrome.test.assertEq(3, browserZoomSetter.zoom); |
| 114 chrome.test.succeed(); | 137 chrome.test.succeed(); |
| 115 }); | 138 }); |
| 116 }, | 139 }, |
| 117 | 140 |
| 118 function testMultipleBrowserZoomChanges() { | 141 function testMultipleBrowserZoomChanges() { |
| 119 let viewport = new MockViewport(); | 142 let viewport = new MockViewport(); |
| 120 let zoomManager = new ZoomManager(viewport, chrome.test.fail, 1); | 143 let zoomManager = ZoomManager.create( |
| 144 BrowserApi.ZoomBehavior.MANAGE, viewport, chrome.test.fail, 1); |
| 121 zoomManager.onBrowserZoomChange(2); | 145 zoomManager.onBrowserZoomChange(2); |
| 122 zoomManager.onBrowserZoomChange(3); | 146 zoomManager.onBrowserZoomChange(3); |
| 123 chrome.test.assertEq(2, viewport.zooms.length); | 147 chrome.test.assertEq(2, viewport.zooms.length); |
| 124 chrome.test.assertEq(2, viewport.zooms[0]); | 148 chrome.test.assertEq(2, viewport.zooms[0]); |
| 125 chrome.test.assertEq(3, viewport.zooms[1]); | 149 chrome.test.assertEq(3, viewport.zooms[1]); |
| 126 chrome.test.assertEq(3, viewport.zoom); | 150 chrome.test.assertEq(3, viewport.zoom); |
| 127 chrome.test.succeed(); | 151 chrome.test.succeed(); |
| 128 }, | 152 }, |
| 129 ]; | 153 ]; |
| 130 }()); | 154 }()); |
| OLD | NEW |