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

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

Issue 1038573003: OOP PDF: Reset FittingType when manually setting the zoom. (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/viewport.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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 var tests = [ 5 var tests = [
6 function testDocumentNeedsScrollbars() { 6 function testDocumentNeedsScrollbars() {
7 var viewport = 7 var viewport =
8 new Viewport(new MockWindow(100, 100), new MockSizer(), function() {}, 8 new Viewport(new MockWindow(100, 100), new MockSizer(), function() {},
9 function() {}, function() {}, 10, 0); 9 function() {}, function() {}, 10, 0);
10 var scrollbars; 10 var scrollbars;
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 chrome.test.assertEq('400px', mockSizer.style.width); 102 chrome.test.assertEq('400px', mockSizer.style.width);
103 chrome.test.assertEq('400px', mockSizer.style.height); 103 chrome.test.assertEq('400px', mockSizer.style.height);
104 chrome.test.assertEq(100, mockWindow.pageXOffset); 104 chrome.test.assertEq(100, mockWindow.pageXOffset);
105 chrome.test.assertEq(100, mockWindow.pageYOffset); 105 chrome.test.assertEq(100, mockWindow.pageYOffset);
106 mockWindow.scrollTo(250, 250); 106 mockWindow.scrollTo(250, 250);
107 viewport.setZoom(1); 107 viewport.setZoom(1);
108 chrome.test.assertEq('200px', mockSizer.style.width); 108 chrome.test.assertEq('200px', mockSizer.style.width);
109 chrome.test.assertEq('200px', mockSizer.style.height); 109 chrome.test.assertEq('200px', mockSizer.style.height);
110 chrome.test.assertEq(100, mockWindow.pageXOffset); 110 chrome.test.assertEq(100, mockWindow.pageXOffset);
111 chrome.test.assertEq(100, mockWindow.pageYOffset); 111 chrome.test.assertEq(100, mockWindow.pageYOffset);
112
113 var documentDimensions = new MockDocumentDimensions(0, 0);
114 documentDimensions.addPage(200, 200);
115 viewport.setDocumentDimensions(documentDimensions);
116 mockWindow.scrollTo(0, 0);
117 viewport.fitToPage();
118 viewport.setZoom(1);
119 chrome.test.assertEq(Viewport.FittingType.NONE, viewport.fittingType);
120 chrome.test.assertEq('200px', mockSizer.style.width);
121 chrome.test.assertEq('200px', mockSizer.style.height);
122 chrome.test.assertEq(0, mockWindow.pageXOffset);
123 chrome.test.assertEq(0, mockWindow.pageYOffset);
124
125 viewport.fitToWidth();
126 viewport.setZoom(1);
127 chrome.test.assertEq(Viewport.FittingType.NONE, viewport.fittingType);
128 chrome.test.assertEq('200px', mockSizer.style.width);
129 chrome.test.assertEq('200px', mockSizer.style.height);
130 chrome.test.assertEq(0, mockWindow.pageXOffset);
131 chrome.test.assertEq(0, mockWindow.pageYOffset);
132
112 chrome.test.succeed(); 133 chrome.test.succeed();
113 }, 134 },
114 135
115 function testGetMostVisiblePage() { 136 function testGetMostVisiblePage() {
116 var mockWindow = new MockWindow(100, 100); 137 var mockWindow = new MockWindow(100, 100);
117 var viewport = new Viewport(mockWindow, new MockSizer(), function() {}, 138 var viewport = new Viewport(mockWindow, new MockSizer(), function() {},
118 function() {}, function() {}, 0, 0); 139 function() {}, function() {}, 0, 0);
119 140
120 var documentDimensions = new MockDocumentDimensions(100, 100); 141 var documentDimensions = new MockDocumentDimensions(100, 100);
121 documentDimensions.addPage(50, 100); 142 documentDimensions.addPage(50, 100);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback, 188 var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback,
168 function() {}, function() {}, 0, 0); 189 function() {}, function() {}, 0, 0);
169 var documentDimensions = new MockDocumentDimensions(); 190 var documentDimensions = new MockDocumentDimensions();
170 191
171 // Test with a document width which matches the window width. 192 // Test with a document width which matches the window width.
172 documentDimensions.addPage(100, 100); 193 documentDimensions.addPage(100, 100);
173 viewport.setDocumentDimensions(documentDimensions); 194 viewport.setDocumentDimensions(documentDimensions);
174 viewport.setZoom(0.1); 195 viewport.setZoom(0.1);
175 mockCallback.reset(); 196 mockCallback.reset();
176 viewport.fitToWidth(); 197 viewport.fitToWidth();
198 chrome.test.assertEq(Viewport.FittingType.FIT_TO_WIDTH,
199 viewport.fittingType);
177 chrome.test.assertTrue(mockCallback.wasCalled); 200 chrome.test.assertTrue(mockCallback.wasCalled);
178 chrome.test.assertEq('100px', mockSizer.style.width); 201 chrome.test.assertEq('100px', mockSizer.style.width);
179 chrome.test.assertEq(1, viewport.zoom); 202 chrome.test.assertEq(1, viewport.zoom);
180 203
181 // Test with a document width which is twice the size of the window width. 204 // Test with a document width which is twice the size of the window width.
182 documentDimensions.reset(); 205 documentDimensions.reset();
183 documentDimensions.addPage(200, 100); 206 documentDimensions.addPage(200, 100);
184 viewport.setDocumentDimensions(documentDimensions); 207 viewport.setDocumentDimensions(documentDimensions);
185 mockCallback.reset(); 208 mockCallback.reset();
186 viewport.fitToWidth(); 209 viewport.fitToWidth();
210 chrome.test.assertEq(Viewport.FittingType.FIT_TO_WIDTH,
211 viewport.fittingType);
187 chrome.test.assertTrue(mockCallback.wasCalled); 212 chrome.test.assertTrue(mockCallback.wasCalled);
188 chrome.test.assertEq('100px', mockSizer.style.width); 213 chrome.test.assertEq('100px', mockSizer.style.width);
189 chrome.test.assertEq(0.5, viewport.zoom); 214 chrome.test.assertEq(0.5, viewport.zoom);
190 215
191 // Test with a document width which is half the size of the window width. 216 // Test with a document width which is half the size of the window width.
192 documentDimensions.reset(); 217 documentDimensions.reset();
193 documentDimensions.addPage(50, 100); 218 documentDimensions.addPage(50, 100);
194 viewport.setDocumentDimensions(documentDimensions); 219 viewport.setDocumentDimensions(documentDimensions);
195 mockCallback.reset(); 220 mockCallback.reset();
196 viewport.fitToWidth(); 221 viewport.fitToWidth();
222 chrome.test.assertEq(Viewport.FittingType.FIT_TO_WIDTH,
223 viewport.fittingType);
197 chrome.test.assertTrue(mockCallback.wasCalled); 224 chrome.test.assertTrue(mockCallback.wasCalled);
198 chrome.test.assertEq('100px', mockSizer.style.width); 225 chrome.test.assertEq('100px', mockSizer.style.width);
199 chrome.test.assertEq(2, viewport.zoom); 226 chrome.test.assertEq(2, viewport.zoom);
200 227
201 // Test that the scroll position stays the same relative to the page after 228 // Test that the scroll position stays the same relative to the page after
202 // fit to page is called. 229 // fit to page is called.
203 documentDimensions.reset(); 230 documentDimensions.reset();
204 documentDimensions.addPage(50, 400); 231 documentDimensions.addPage(50, 400);
205 viewport.setDocumentDimensions(documentDimensions); 232 viewport.setDocumentDimensions(documentDimensions);
206 viewport.setZoom(1); 233 viewport.setZoom(1);
207 mockWindow.scrollTo(0, 100); 234 mockWindow.scrollTo(0, 100);
208 mockCallback.reset(); 235 mockCallback.reset();
209 viewport.fitToWidth(); 236 viewport.fitToWidth();
237 chrome.test.assertEq(Viewport.FittingType.FIT_TO_WIDTH,
238 viewport.fittingType);
210 chrome.test.assertTrue(mockCallback.wasCalled); 239 chrome.test.assertTrue(mockCallback.wasCalled);
211 chrome.test.assertEq(2, viewport.zoom); 240 chrome.test.assertEq(2, viewport.zoom);
212 chrome.test.assertEq(0, viewport.position.x); 241 chrome.test.assertEq(0, viewport.position.x);
213 chrome.test.assertEq(200, viewport.position.y); 242 chrome.test.assertEq(200, viewport.position.y);
214 243
215 // Test fitting works with scrollbars. The page will need to be zoomed to 244 // Test fitting works with scrollbars. The page will need to be zoomed to
216 // fit to width, which will cause the page height to span outside of the 245 // fit to width, which will cause the page height to span outside of the
217 // viewport, triggering 15px scrollbars to be shown. 246 // viewport, triggering 15px scrollbars to be shown.
218 viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback, 247 viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback,
219 function() {}, function() {}, 15, 0); 248 function() {}, function() {}, 15, 0);
220 documentDimensions.reset(); 249 documentDimensions.reset();
221 documentDimensions.addPage(50, 100); 250 documentDimensions.addPage(50, 100);
222 viewport.setDocumentDimensions(documentDimensions); 251 viewport.setDocumentDimensions(documentDimensions);
223 mockCallback.reset(); 252 mockCallback.reset();
224 viewport.fitToWidth(); 253 viewport.fitToWidth();
254 chrome.test.assertEq(Viewport.FittingType.FIT_TO_WIDTH,
255 viewport.fittingType);
225 chrome.test.assertTrue(mockCallback.wasCalled); 256 chrome.test.assertTrue(mockCallback.wasCalled);
226 chrome.test.assertEq('85px', mockSizer.style.width); 257 chrome.test.assertEq('85px', mockSizer.style.width);
227 chrome.test.assertEq(1.7, viewport.zoom); 258 chrome.test.assertEq(1.7, viewport.zoom);
228 chrome.test.succeed(); 259 chrome.test.succeed();
229 }, 260 },
230 261
231 function testFitToPage() { 262 function testFitToPage() {
232 var mockWindow = new MockWindow(100, 100); 263 var mockWindow = new MockWindow(100, 100);
233 var mockSizer = new MockSizer(); 264 var mockSizer = new MockSizer();
234 var mockCallback = new MockViewportChangedCallback(); 265 var mockCallback = new MockViewportChangedCallback();
235 var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback, 266 var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback,
236 function() {}, function() {}, 0, 0); 267 function() {}, function() {}, 0, 0);
237 var documentDimensions = new MockDocumentDimensions(); 268 var documentDimensions = new MockDocumentDimensions();
238 269
239 // Test with a page size which matches the window size. 270 // Test with a page size which matches the window size.
240 documentDimensions.addPage(100, 100); 271 documentDimensions.addPage(100, 100);
241 viewport.setDocumentDimensions(documentDimensions); 272 viewport.setDocumentDimensions(documentDimensions);
242 viewport.setZoom(0.1); 273 viewport.setZoom(0.1);
243 mockCallback.reset(); 274 mockCallback.reset();
244 viewport.fitToPage(); 275 viewport.fitToPage();
276 chrome.test.assertEq(Viewport.FittingType.FIT_TO_PAGE,
277 viewport.fittingType);
245 chrome.test.assertTrue(mockCallback.wasCalled); 278 chrome.test.assertTrue(mockCallback.wasCalled);
246 chrome.test.assertEq('100px', mockSizer.style.width); 279 chrome.test.assertEq('100px', mockSizer.style.width);
247 chrome.test.assertEq('100px', mockSizer.style.height); 280 chrome.test.assertEq('100px', mockSizer.style.height);
248 chrome.test.assertEq(1, viewport.zoom); 281 chrome.test.assertEq(1, viewport.zoom);
249 282
250 // Test with a page size whose width is larger than its height. 283 // Test with a page size whose width is larger than its height.
251 documentDimensions.reset(); 284 documentDimensions.reset();
252 documentDimensions.addPage(200, 100); 285 documentDimensions.addPage(200, 100);
253 viewport.setDocumentDimensions(documentDimensions); 286 viewport.setDocumentDimensions(documentDimensions);
254 mockCallback.reset(); 287 mockCallback.reset();
255 viewport.fitToPage(); 288 viewport.fitToPage();
289 chrome.test.assertEq(Viewport.FittingType.FIT_TO_PAGE,
290 viewport.fittingType);
256 chrome.test.assertTrue(mockCallback.wasCalled); 291 chrome.test.assertTrue(mockCallback.wasCalled);
257 chrome.test.assertEq('100px', mockSizer.style.width); 292 chrome.test.assertEq('100px', mockSizer.style.width);
258 chrome.test.assertEq('50px', mockSizer.style.height); 293 chrome.test.assertEq('50px', mockSizer.style.height);
259 chrome.test.assertEq(0.5, viewport.zoom); 294 chrome.test.assertEq(0.5, viewport.zoom);
260 295
261 // Test with a page size whose height is larger than its width. 296 // Test with a page size whose height is larger than its width.
262 documentDimensions.reset(); 297 documentDimensions.reset();
263 documentDimensions.addPage(100, 200); 298 documentDimensions.addPage(100, 200);
264 viewport.setDocumentDimensions(documentDimensions); 299 viewport.setDocumentDimensions(documentDimensions);
265 mockCallback.reset(); 300 mockCallback.reset();
266 viewport.fitToPage(); 301 viewport.fitToPage();
302 chrome.test.assertEq(Viewport.FittingType.FIT_TO_PAGE,
303 viewport.fittingType);
267 chrome.test.assertTrue(mockCallback.wasCalled); 304 chrome.test.assertTrue(mockCallback.wasCalled);
268 chrome.test.assertEq('50px', mockSizer.style.width); 305 chrome.test.assertEq('50px', mockSizer.style.width);
269 chrome.test.assertEq('100px', mockSizer.style.height); 306 chrome.test.assertEq('100px', mockSizer.style.height);
270 chrome.test.assertEq(0.5, viewport.zoom); 307 chrome.test.assertEq(0.5, viewport.zoom);
271 308
272 // Test that when there are multiple pages the height of the most visible 309 // Test that when there are multiple pages the height of the most visible
273 // page and the width of the widest page are sized to. 310 // page and the width of the widest page are sized to.
274 documentDimensions.reset(); 311 documentDimensions.reset();
275 documentDimensions.addPage(100, 100); 312 documentDimensions.addPage(100, 100);
276 documentDimensions.addPage(200, 400); 313 documentDimensions.addPage(200, 400);
277 viewport.setDocumentDimensions(documentDimensions); 314 viewport.setDocumentDimensions(documentDimensions);
278 viewport.setZoom(1); 315 viewport.setZoom(1);
279 mockWindow.scrollTo(0, 0); 316 mockWindow.scrollTo(0, 0);
280 mockCallback.reset(); 317 mockCallback.reset();
281 viewport.fitToPage(); 318 viewport.fitToPage();
319 chrome.test.assertEq(Viewport.FittingType.FIT_TO_PAGE,
320 viewport.fittingType);
282 chrome.test.assertTrue(mockCallback.wasCalled); 321 chrome.test.assertTrue(mockCallback.wasCalled);
283 chrome.test.assertEq('100px', mockSizer.style.width); 322 chrome.test.assertEq('100px', mockSizer.style.width);
284 chrome.test.assertEq('250px', mockSizer.style.height); 323 chrome.test.assertEq('250px', mockSizer.style.height);
285 chrome.test.assertEq(0.5, viewport.zoom); 324 chrome.test.assertEq(0.5, viewport.zoom);
286 viewport.setZoom(1); 325 viewport.setZoom(1);
287 mockWindow.scrollTo(0, 100); 326 mockWindow.scrollTo(0, 100);
288 mockCallback.reset(); 327 mockCallback.reset();
289 viewport.fitToPage(); 328 viewport.fitToPage();
290 chrome.test.assertTrue(mockCallback.wasCalled); 329 chrome.test.assertTrue(mockCallback.wasCalled);
291 chrome.test.assertEq('50px', mockSizer.style.width); 330 chrome.test.assertEq('50px', mockSizer.style.width);
292 chrome.test.assertEq('125px', mockSizer.style.height); 331 chrome.test.assertEq('125px', mockSizer.style.height);
293 chrome.test.assertEq(0.25, viewport.zoom); 332 chrome.test.assertEq(0.25, viewport.zoom);
294 333
295 // Test that the top of the most visible page is scrolled to. 334 // Test that the top of the most visible page is scrolled to.
296 documentDimensions.reset(); 335 documentDimensions.reset();
297 documentDimensions.addPage(200, 200); 336 documentDimensions.addPage(200, 200);
298 documentDimensions.addPage(100, 400); 337 documentDimensions.addPage(100, 400);
299 viewport.setDocumentDimensions(documentDimensions); 338 viewport.setDocumentDimensions(documentDimensions);
300 viewport.setZoom(1); 339 viewport.setZoom(1);
301 mockWindow.scrollTo(0, 0); 340 mockWindow.scrollTo(0, 0);
302 viewport.fitToPage(); 341 viewport.fitToPage();
342 chrome.test.assertEq(Viewport.FittingType.FIT_TO_PAGE,
343 viewport.fittingType);
303 chrome.test.assertEq(0.5, viewport.zoom); 344 chrome.test.assertEq(0.5, viewport.zoom);
304 chrome.test.assertEq(0, viewport.position.x); 345 chrome.test.assertEq(0, viewport.position.x);
305 chrome.test.assertEq(0, viewport.position.y); 346 chrome.test.assertEq(0, viewport.position.y);
306 viewport.setZoom(1); 347 viewport.setZoom(1);
307 mockWindow.scrollTo(0, 175); 348 mockWindow.scrollTo(0, 175);
308 viewport.fitToPage(); 349 viewport.fitToPage();
309 chrome.test.assertEq(0.25, viewport.zoom); 350 chrome.test.assertEq(0.25, viewport.zoom);
310 chrome.test.assertEq(0, viewport.position.x); 351 chrome.test.assertEq(0, viewport.position.x);
311 chrome.test.assertEq(50, viewport.position.y); 352 chrome.test.assertEq(50, viewport.position.y);
312 353
313 // Test that when the window size changes, fit-to-page occurs but does not 354 // Test that when the window size changes, fit-to-page occurs but does not
314 // scroll to the top of the page (it should stay at the scaled scroll 355 // scroll to the top of the page (it should stay at the scaled scroll
315 // position). 356 // position).
316 mockWindow.scrollTo(0, 0); 357 mockWindow.scrollTo(0, 0);
317 viewport.fitToPage(); 358 viewport.fitToPage();
359 chrome.test.assertEq(Viewport.FittingType.FIT_TO_PAGE,
360 viewport.fittingType);
318 chrome.test.assertEq(0.5, viewport.zoom); 361 chrome.test.assertEq(0.5, viewport.zoom);
319 mockWindow.scrollTo(0, 10); 362 mockWindow.scrollTo(0, 10);
320 mockWindow.setSize(50, 50); 363 mockWindow.setSize(50, 50);
321 chrome.test.assertEq(0.25, viewport.zoom); 364 chrome.test.assertEq(0.25, viewport.zoom);
322 chrome.test.assertEq(0, viewport.position.x); 365 chrome.test.assertEq(0, viewport.position.x);
323 chrome.test.assertEq(5, viewport.position.y); 366 chrome.test.assertEq(5, viewport.position.y);
324 367
325 chrome.test.succeed(); 368 chrome.test.succeed();
326 }, 369 },
327 370
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 chrome.test.assertEq(1, viewport.zoom); 469 chrome.test.assertEq(1, viewport.zoom);
427 }; 470 };
428 viewport = new Viewport(mockWindow, mockSizer, function() {}, 471 viewport = new Viewport(mockWindow, mockSizer, function() {},
429 beforeZoom, afterZoom, 0, 0); 472 beforeZoom, afterZoom, 0, 0);
430 viewport.setZoom(0.5); 473 viewport.setZoom(0.5);
431 chrome.test.succeed(); 474 chrome.test.succeed();
432 } 475 }
433 ]; 476 ];
434 477
435 chrome.test.runTests(tests); 478 chrome.test.runTests(tests);
OLDNEW
« no previous file with comments | « chrome/browser/resources/pdf/viewport.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698