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

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

Issue 1026223002: OOP PDF: Do not call setZoom in response to an onZoomChange event. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
« 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
(Empty)
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
3 // found in the LICENSE file.
4
5 chrome.test.runTests(function() {
6 'use strict';
7
8 class MockViewport {
9 constructor() {
10 this.zooms = [];
11 this.zoom = 1;
12 }
13
14 setZoom(zoom) {
15 this.zooms.push(zoom);
16 this.zoom = zoom;
17 }
18 }
19
20 /**
21 * A mock implementation of the function used by ZoomManager to set the
22 * browser zoom level.
23 */
24 class MockBrowserZoomSetter {
25 constructor() {
26 this.zoom = 1;
27 this.started = false;
28 }
29
30 /**
31 * The function implementing setBrowserZoomFunction.
32 */
33 setBrowserZoom(zoom) {
34 chrome.test.assertFalse(this.started);
35
36 this.zoom = zoom;
37 this.started = true;
38 return new Promise(function(resolve, reject) {
39 this.resolve_ = resolve;
40 }.bind(this));
41 }
42
43 /**
44 * Resolves the promise returned by a call to setBrowserZoom.
45 */
46 complete() {
47 this.resolve_();
48 this.started = false;
49 }
50 };
51
52 return [
53 function testZoomChange() {
54 let viewport = new MockViewport();
55 let browserZoomSetter = new MockBrowserZoomSetter();
56 let zoomManager = new ZoomManager(
57 viewport, browserZoomSetter.setBrowserZoom.bind(browserZoomSetter));
58 viewport.zoom = 2;
59 zoomManager.onPdfZoomChange();
60 chrome.test.assertEq(2, browserZoomSetter.zoom);
61 chrome.test.assertTrue(browserZoomSetter.started);
62 chrome.test.succeed();
63 },
64
65 function testZoomChangedBeforeConstruction() {
66 let viewport = new MockViewport();
67 viewport.zoom = 2;
68 let browserZoomSetter = new MockBrowserZoomSetter();
69 let zoomManager = new ZoomManager(
70 viewport, browserZoomSetter.setBrowserZoom.bind(browserZoomSetter));
71 chrome.test.assertEq(2, browserZoomSetter.zoom);
72 chrome.test.assertTrue(browserZoomSetter.started);
73 chrome.test.succeed();
74 },
75
76 function testBrowserZoomChange() {
77 let viewport = new MockViewport();
78 let zoomManager = new ZoomManager(viewport, Promise.resolve.bind(Promise),
79 chrome.test.fail);
80 zoomManager.onBrowserZoomChange(3);
81 chrome.test.assertEq(1, viewport.zooms.length);
82 chrome.test.assertEq(3, viewport.zooms[0]);
83 chrome.test.assertEq(3, viewport.zoom);
84 chrome.test.succeed();
85 },
86
87 function testSmallZoomChange() {
88 let viewport = new MockViewport();
89 let browserZoomSetter = new MockBrowserZoomSetter();
90 let zoomManager = new ZoomManager(
91 viewport, browserZoomSetter.setBrowserZoom.bind(browserZoomSetter));
92 viewport.zoom = 1.0001;
93 zoomManager.onPdfZoomChange();
94 chrome.test.assertEq(1, browserZoomSetter.zoom);
95 chrome.test.assertFalse(browserZoomSetter.started);
96 chrome.test.succeed();
97 },
98
99 function testSmallBrowserZoomChange() {
100 let viewport = new MockViewport();
101 let zoomManager = new ZoomManager(viewport, Promise.resolve.bind(Promise),
102 chrome.test.fail);
103 zoomManager.onBrowserZoomChange(0.999);
104 chrome.test.assertEq(0, viewport.zooms.length);
105 chrome.test.assertEq(1, viewport.zoom);
106 chrome.test.succeed();
107 },
108
109 function testMultiplePdfZoomChanges() {
110 let viewport = new MockViewport();
111 let browserZoomSetter = new MockBrowserZoomSetter();
112 let zoomManager = new ZoomManager(
113 viewport, browserZoomSetter.setBrowserZoom.bind(browserZoomSetter));
114 viewport.zoom = 2;
115 zoomManager.onPdfZoomChange();
116 viewport.zoom = 3;
117 zoomManager.onPdfZoomChange();
118 chrome.test.assertTrue(browserZoomSetter.started);
119 chrome.test.assertEq(2, browserZoomSetter.zoom);
120 browserZoomSetter.complete();
121 Promise.resolve().then(function() {
122 chrome.test.assertTrue(browserZoomSetter.started);
123 chrome.test.assertEq(3, browserZoomSetter.zoom);
124 chrome.test.succeed();
125 });
126 },
127
128 function testMultipleBrowserZoomChanges() {
129 let viewport = new MockViewport();
130 let zoomManager = new ZoomManager(viewport, Promise.resolve.bind(Promise),
131 chrome.test.fail);
132 zoomManager.onBrowserZoomChange(2);
133 zoomManager.onBrowserZoomChange(3);
134 chrome.test.assertEq(2, viewport.zooms.length);
135 chrome.test.assertEq(2, viewport.zooms[0]);
136 chrome.test.assertEq(3, viewport.zooms[1]);
137 chrome.test.assertEq(3, viewport.zoom);
138 chrome.test.succeed();
139 },
140 ];
141 }());
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