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

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, 9 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
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 class MockBrowserZoomChanger {
raymes 2015/04/09 03:40:01 Please add a comment for this class. And comments
Sam McNally 2015/04/09 08:24:41 Done.
21 constructor() {
22 this.zoom = 1;
23 this.started = false;
24 }
25
26 changeZoom(zoom) {
27 chrome.test.assertFalse(this.started);
28
29 this.zoom = zoom;
30 this.started = true;
31 return new Promise(function(resolve, reject) {
32 this.resolve_ = resolve;
33 }.bind(this));
34 }
35
36 complete() {
37 this.resolve_();
38 this.started = false;
39 }
40 };
41
42 return [
43 function testZoomChange() {
44 let viewport = new MockViewport();
45 let browserZoomChanger = new MockBrowserZoomChanger();
46 let zoomManager = new ZoomManager(
47 viewport, browserZoomChanger.changeZoom.bind(browserZoomChanger));
48 viewport.zoom = 2;
49 zoomManager.onPdfZoomChange();
50 chrome.test.assertEq(2, browserZoomChanger.zoom);
51 chrome.test.assertTrue(browserZoomChanger.started);
52 chrome.test.succeed();
53 },
54
55 function testZoomChangedBeforeConstruction() {
56 let viewport = new MockViewport();
57 viewport.zoom = 2;
58 let browserZoomChanger = new MockBrowserZoomChanger();
59 let zoomManager = new ZoomManager(
60 viewport, browserZoomChanger.changeZoom.bind(browserZoomChanger));
61 chrome.test.assertEq(2, browserZoomChanger.zoom);
62 chrome.test.assertTrue(browserZoomChanger.started);
63 chrome.test.succeed();
64 },
65
66 function testBrowserZoomChange() {
67 let viewport = new MockViewport();
68 let zoomManager = new ZoomManager(viewport, Promise.resolve.bind(Promise),
69 chrome.test.fail);
70 zoomManager.onBrowserZoomChange(3);
71 chrome.test.assertEq(1, viewport.zooms.length);
72 chrome.test.assertEq(3, viewport.zooms[0]);
73 chrome.test.assertEq(3, viewport.zoom);
74 chrome.test.succeed();
75 },
76
77 function testSmallZoomChange() {
78 let viewport = new MockViewport();
79 let browserZoomChanger = new MockBrowserZoomChanger();
80 let zoomManager = new ZoomManager(
81 viewport, browserZoomChanger.changeZoom.bind(browserZoomChanger));
82 viewport.zoom = 1.0001;
83 zoomManager.onPdfZoomChange();
84 chrome.test.assertEq(1, browserZoomChanger.zoom);
85 chrome.test.assertFalse(browserZoomChanger.started);
86 chrome.test.succeed();
87 },
88
89 function testSmallBrowserZoomChange() {
90 let viewport = new MockViewport();
91 let zoomManager = new ZoomManager(viewport, Promise.resolve.bind(Promise),
92 chrome.test.fail);
93 zoomManager.onBrowserZoomChange(0.999);
94 chrome.test.assertEq(0, viewport.zooms.length);
95 chrome.test.assertEq(1, viewport.zoom);
96 chrome.test.succeed();
97 },
98
99 function testMultiplePdfZoomChanges() {
100 let viewport = new MockViewport();
101 let browserZoomChanger = new MockBrowserZoomChanger();
102 let zoomManager = new ZoomManager(
103 viewport, browserZoomChanger.changeZoom.bind(browserZoomChanger));
104 viewport.zoom = 2;
105 zoomManager.onPdfZoomChange();
106 viewport.zoom = 3;
107 zoomManager.onPdfZoomChange();
108 chrome.test.assertTrue(browserZoomChanger.started);
109 chrome.test.assertEq(2, browserZoomChanger.zoom);
110 browserZoomChanger.complete();
111 Promise.resolve().then(function() {
112 chrome.test.assertTrue(browserZoomChanger.started);
113 chrome.test.assertEq(3, browserZoomChanger.zoom);
114 chrome.test.succeed();
115 });
116 },
117
118 function testMultipleBrowserZoomChanges() {
119 let viewport = new MockViewport();
120 let zoomManager = new ZoomManager(viewport, Promise.resolve.bind(Promise),
121 chrome.test.fail);
122 zoomManager.onBrowserZoomChange(2);
123 zoomManager.onBrowserZoomChange(3);
124 chrome.test.assertEq(2, viewport.zooms.length);
125 chrome.test.assertEq(2, viewport.zooms[0]);
126 chrome.test.assertEq(3, viewport.zooms[1]);
127 chrome.test.assertEq(3, viewport.zoom);
128 chrome.test.succeed();
129 },
130 ];
131 }());
OLDNEW
« chrome/browser/resources/pdf/zoom_manager.js ('K') | « 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