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

Side by Side Diff: chrome/test/data/pdf/zoom_manager_test.js

Issue 2503633002: Propagate browser zoom changes to embedded PDFs. (Closed)
Patch Set: Use American spelling of behaviour. Created 4 years 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
« no previous file with comments | « chrome/browser/resources/pdf/zoom_manager.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 }());
OLDNEW
« no previous file with comments | « chrome/browser/resources/pdf/zoom_manager.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698