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

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

Issue 806633003: Implement basic toolbar with Material Design and loading progress. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adjust viewport_test.js Created 5 years, 11 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 function MockWindow(width, height, sizer) { 5 function MockWindow(width, height, sizer) {
6 this.innerWidth = width; 6 this.innerWidth = width;
7 this.innerHeight = height; 7 this.innerHeight = height;
8 this.addEventListener = function(e, f) { 8 this.addEventListener = function(e, f) {
9 if (e == 'scroll') 9 if (e == 'scroll')
10 this.scrollCallback = f; 10 this.scrollCallback = f;
11 if (e == 'resize') 11 if (e == 'resize')
12 this.resizeCallback = f; 12 this.resizeCallback = f;
13 }, 13 };
14 this.scrollTo = function(x, y) { 14 this.scrollTo = function(x, y) {
15 if (sizer) { 15 if (sizer) {
16 x = Math.min(x, parseInt(sizer.style.width) - width); 16 x = Math.min(x, parseInt(sizer.style.width) - width);
17 y = Math.min(y, parseInt(sizer.style.height) - height); 17 y = Math.min(y, parseInt(sizer.style.height) - height);
18 } 18 }
19 this.pageXOffset = Math.max(0, x); 19 this.pageXOffset = Math.max(0, x);
20 this.pageYOffset = Math.max(0, y); 20 this.pageYOffset = Math.max(0, y);
21 this.scrollCallback(); 21 this.scrollCallback();
22 }; 22 };
23 if (sizer) { 23 if (sizer) {
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 this.width = 0; 84 this.width = 0;
85 this.height = 0; 85 this.height = 0;
86 this.pageDimensions = []; 86 this.pageDimensions = [];
87 }; 87 };
88 } 88 }
89 89
90 var tests = [ 90 var tests = [
91 function testDocumentNeedsScrollbars() { 91 function testDocumentNeedsScrollbars() {
92 var viewport = 92 var viewport =
93 new Viewport(new MockWindow(100, 100), new MockSizer(), function() {}, 93 new Viewport(new MockWindow(100, 100), new MockSizer(), function() {},
94 function() {}, function() {}, 10); 94 function() {}, function() {}, 10, 0);
95 var scrollbars; 95 var scrollbars;
96 96
97 viewport.setDocumentDimensions(new MockDocumentDimensions(90, 90)); 97 viewport.setDocumentDimensions(new MockDocumentDimensions(90, 90));
98 scrollbars = viewport.documentNeedsScrollbars_(1); 98 scrollbars = viewport.documentNeedsScrollbars_(1);
99 chrome.test.assertFalse(scrollbars.vertical); 99 chrome.test.assertFalse(scrollbars.vertical);
100 chrome.test.assertFalse(scrollbars.horizontal); 100 chrome.test.assertFalse(scrollbars.horizontal);
101 101
102 viewport.setDocumentDimensions(new MockDocumentDimensions(100, 100)); 102 viewport.setDocumentDimensions(new MockDocumentDimensions(100, 100));
103 scrollbars = viewport.documentNeedsScrollbars_(1); 103 scrollbars = viewport.documentNeedsScrollbars_(1);
104 chrome.test.assertFalse(scrollbars.vertical); 104 chrome.test.assertFalse(scrollbars.vertical);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 chrome.test.assertTrue(scrollbars.vertical); 139 chrome.test.assertTrue(scrollbars.vertical);
140 chrome.test.assertFalse(scrollbars.horizontal); 140 chrome.test.assertFalse(scrollbars.horizontal);
141 chrome.test.succeed(); 141 chrome.test.succeed();
142 }, 142 },
143 143
144 function testSetZoom() { 144 function testSetZoom() {
145 var mockSizer = new MockSizer(); 145 var mockSizer = new MockSizer();
146 var mockWindow = new MockWindow(100, 100, mockSizer); 146 var mockWindow = new MockWindow(100, 100, mockSizer);
147 var mockCallback = new MockViewportChangedCallback(); 147 var mockCallback = new MockViewportChangedCallback();
148 var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback, 148 var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback,
149 function() {}, function() {}, 0); 149 function() {}, function() {}, 0, 0);
150 150
151 // Test setting the zoom without the document dimensions set. The sizer 151 // Test setting the zoom without the document dimensions set. The sizer
152 // shouldn't change size. 152 // shouldn't change size.
153 mockCallback.reset(); 153 mockCallback.reset();
154 viewport.setZoom(0.5); 154 viewport.setZoom(0.5);
155 chrome.test.assertEq(0.5, viewport.zoom); 155 chrome.test.assertEq(0.5, viewport.zoom);
156 chrome.test.assertTrue(mockCallback.wasCalled); 156 chrome.test.assertTrue(mockCallback.wasCalled);
157 chrome.test.assertEq('0px', mockSizer.style.width); 157 chrome.test.assertEq('0px', mockSizer.style.width);
158 chrome.test.assertEq('0px', mockSizer.style.height); 158 chrome.test.assertEq('0px', mockSizer.style.height);
159 chrome.test.assertEq(0, mockWindow.pageXOffset); 159 chrome.test.assertEq(0, mockWindow.pageXOffset);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 chrome.test.assertEq('200px', mockSizer.style.width); 193 chrome.test.assertEq('200px', mockSizer.style.width);
194 chrome.test.assertEq('200px', mockSizer.style.height); 194 chrome.test.assertEq('200px', mockSizer.style.height);
195 chrome.test.assertEq(100, mockWindow.pageXOffset); 195 chrome.test.assertEq(100, mockWindow.pageXOffset);
196 chrome.test.assertEq(100, mockWindow.pageYOffset); 196 chrome.test.assertEq(100, mockWindow.pageYOffset);
197 chrome.test.succeed(); 197 chrome.test.succeed();
198 }, 198 },
199 199
200 function testGetMostVisiblePage() { 200 function testGetMostVisiblePage() {
201 var mockWindow = new MockWindow(100, 100); 201 var mockWindow = new MockWindow(100, 100);
202 var viewport = new Viewport(mockWindow, new MockSizer(), function() {}, 202 var viewport = new Viewport(mockWindow, new MockSizer(), function() {},
203 function() {}, function() {}, 0); 203 function() {}, function() {}, 0, 0);
204 204
205 var documentDimensions = new MockDocumentDimensions(100, 100); 205 var documentDimensions = new MockDocumentDimensions(100, 100);
206 documentDimensions.addPage(50, 100); 206 documentDimensions.addPage(50, 100);
207 documentDimensions.addPage(100, 100); 207 documentDimensions.addPage(100, 100);
208 documentDimensions.addPage(100, 200); 208 documentDimensions.addPage(100, 200);
209 viewport.setDocumentDimensions(documentDimensions); 209 viewport.setDocumentDimensions(documentDimensions);
210 viewport.setZoom(1); 210 viewport.setZoom(1);
211 211
212 // Scrolled to the start of the first page. 212 // Scrolled to the start of the first page.
213 mockWindow.scrollTo(0, 0); 213 mockWindow.scrollTo(0, 0);
(...skipping 29 matching lines...) Expand all
243 mockWindow.scrollTo(0, 0); 243 mockWindow.scrollTo(0, 0);
244 chrome.test.assertEq(0, viewport.getMostVisiblePage()); 244 chrome.test.assertEq(0, viewport.getMostVisiblePage());
245 chrome.test.succeed(); 245 chrome.test.succeed();
246 }, 246 },
247 247
248 function testFitToWidth() { 248 function testFitToWidth() {
249 var mockWindow = new MockWindow(100, 100); 249 var mockWindow = new MockWindow(100, 100);
250 var mockSizer = new MockSizer(); 250 var mockSizer = new MockSizer();
251 var mockCallback = new MockViewportChangedCallback(); 251 var mockCallback = new MockViewportChangedCallback();
252 var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback, 252 var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback,
253 function() {}, function() {}, 0); 253 function() {}, function() {}, 0, 0);
254 var documentDimensions = new MockDocumentDimensions(); 254 var documentDimensions = new MockDocumentDimensions();
255 255
256 // Test with a document width which matches the window width. 256 // Test with a document width which matches the window width.
257 documentDimensions.addPage(100, 100); 257 documentDimensions.addPage(100, 100);
258 viewport.setDocumentDimensions(documentDimensions); 258 viewport.setDocumentDimensions(documentDimensions);
259 viewport.setZoom(0.1); 259 viewport.setZoom(0.1);
260 mockCallback.reset(); 260 mockCallback.reset();
261 viewport.fitToWidth(); 261 viewport.fitToWidth();
262 chrome.test.assertTrue(mockCallback.wasCalled); 262 chrome.test.assertTrue(mockCallback.wasCalled);
263 chrome.test.assertEq('100px', mockSizer.style.width); 263 chrome.test.assertEq('100px', mockSizer.style.width);
(...skipping 30 matching lines...) Expand all
294 viewport.fitToWidth(); 294 viewport.fitToWidth();
295 chrome.test.assertTrue(mockCallback.wasCalled); 295 chrome.test.assertTrue(mockCallback.wasCalled);
296 chrome.test.assertEq(2, viewport.zoom); 296 chrome.test.assertEq(2, viewport.zoom);
297 chrome.test.assertEq(0, viewport.position.x); 297 chrome.test.assertEq(0, viewport.position.x);
298 chrome.test.assertEq(200, viewport.position.y); 298 chrome.test.assertEq(200, viewport.position.y);
299 299
300 // Test fitting works with scrollbars. The page will need to be zoomed to 300 // Test fitting works with scrollbars. The page will need to be zoomed to
301 // fit to width, which will cause the page height to span outside of the 301 // fit to width, which will cause the page height to span outside of the
302 // viewport, triggering 15px scrollbars to be shown. 302 // viewport, triggering 15px scrollbars to be shown.
303 viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback, 303 viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback,
304 function() {}, function() {}, 15); 304 function() {}, function() {}, 15, 0);
305 documentDimensions.reset(); 305 documentDimensions.reset();
306 documentDimensions.addPage(50, 100); 306 documentDimensions.addPage(50, 100);
307 viewport.setDocumentDimensions(documentDimensions); 307 viewport.setDocumentDimensions(documentDimensions);
308 mockCallback.reset(); 308 mockCallback.reset();
309 viewport.fitToWidth(); 309 viewport.fitToWidth();
310 chrome.test.assertTrue(mockCallback.wasCalled); 310 chrome.test.assertTrue(mockCallback.wasCalled);
311 chrome.test.assertEq('85px', mockSizer.style.width); 311 chrome.test.assertEq('85px', mockSizer.style.width);
312 chrome.test.assertEq(1.7, viewport.zoom); 312 chrome.test.assertEq(1.7, viewport.zoom);
313 chrome.test.succeed(); 313 chrome.test.succeed();
314 }, 314 },
315 315
316 function testFitToPage() { 316 function testFitToPage() {
317 var mockWindow = new MockWindow(100, 100); 317 var mockWindow = new MockWindow(100, 100);
318 var mockSizer = new MockSizer(); 318 var mockSizer = new MockSizer();
319 var mockCallback = new MockViewportChangedCallback(); 319 var mockCallback = new MockViewportChangedCallback();
320 var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback, 320 var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback,
321 function() {}, function() {}, 0); 321 function() {}, function() {}, 0, 0);
322 var documentDimensions = new MockDocumentDimensions(); 322 var documentDimensions = new MockDocumentDimensions();
323 323
324 // Test with a page size which matches the window size. 324 // Test with a page size which matches the window size.
325 documentDimensions.addPage(100, 100); 325 documentDimensions.addPage(100, 100);
326 viewport.setDocumentDimensions(documentDimensions); 326 viewport.setDocumentDimensions(documentDimensions);
327 viewport.setZoom(0.1); 327 viewport.setZoom(0.1);
328 mockCallback.reset(); 328 mockCallback.reset();
329 viewport.fitToPage(); 329 viewport.fitToPage();
330 chrome.test.assertTrue(mockCallback.wasCalled); 330 chrome.test.assertTrue(mockCallback.wasCalled);
331 chrome.test.assertEq('100px', mockSizer.style.width); 331 chrome.test.assertEq('100px', mockSizer.style.width);
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
395 chrome.test.assertEq(0, viewport.position.x); 395 chrome.test.assertEq(0, viewport.position.x);
396 chrome.test.assertEq(50, viewport.position.y); 396 chrome.test.assertEq(50, viewport.position.y);
397 chrome.test.succeed(); 397 chrome.test.succeed();
398 }, 398 },
399 399
400 function testGoToPage() { 400 function testGoToPage() {
401 var mockWindow = new MockWindow(100, 100); 401 var mockWindow = new MockWindow(100, 100);
402 var mockSizer = new MockSizer(); 402 var mockSizer = new MockSizer();
403 var mockCallback = new MockViewportChangedCallback(); 403 var mockCallback = new MockViewportChangedCallback();
404 var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback, 404 var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback,
405 function() {}, function() {}, 0); 405 function() {}, function() {}, 0, 0);
406 var documentDimensions = new MockDocumentDimensions(); 406 var documentDimensions = new MockDocumentDimensions();
407 407
408 documentDimensions.addPage(100, 100); 408 documentDimensions.addPage(100, 100);
409 documentDimensions.addPage(200, 200); 409 documentDimensions.addPage(200, 200);
410 documentDimensions.addPage(100, 400); 410 documentDimensions.addPage(100, 400);
411 viewport.setDocumentDimensions(documentDimensions); 411 viewport.setDocumentDimensions(documentDimensions);
412 viewport.setZoom(1); 412 viewport.setZoom(1);
413 413
414 mockCallback.reset(); 414 mockCallback.reset();
415 viewport.goToPage(0); 415 viewport.goToPage(0);
(...skipping 20 matching lines...) Expand all
436 chrome.test.assertEq(0, viewport.position.x); 436 chrome.test.assertEq(0, viewport.position.x);
437 chrome.test.assertEq(150, viewport.position.y); 437 chrome.test.assertEq(150, viewport.position.y);
438 chrome.test.succeed(); 438 chrome.test.succeed();
439 }, 439 },
440 440
441 function testGetPageScreenRect() { 441 function testGetPageScreenRect() {
442 var mockWindow = new MockWindow(100, 100); 442 var mockWindow = new MockWindow(100, 100);
443 var mockSizer = new MockSizer(); 443 var mockSizer = new MockSizer();
444 var mockCallback = new MockViewportChangedCallback(); 444 var mockCallback = new MockViewportChangedCallback();
445 var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback, 445 var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback,
446 function() {}, function() {}, 0); 446 function() {}, function() {}, 0, 0);
447 var documentDimensions = new MockDocumentDimensions(); 447 var documentDimensions = new MockDocumentDimensions();
448 documentDimensions.addPage(100, 100); 448 documentDimensions.addPage(100, 100);
449 documentDimensions.addPage(200, 200); 449 documentDimensions.addPage(200, 200);
450 viewport.setDocumentDimensions(documentDimensions); 450 viewport.setDocumentDimensions(documentDimensions);
451 viewport.setZoom(1); 451 viewport.setZoom(1);
452 452
453 // Test that the rect of the first page is positioned/sized correctly. 453 // Test that the rect of the first page is positioned/sized correctly.
454 mockWindow.scrollTo(0, 0); 454 mockWindow.scrollTo(0, 0);
455 var rect1 = viewport.getPageScreenRect(0); 455 var rect1 = viewport.getPageScreenRect(0);
456 chrome.test.assertEq(Viewport.PAGE_SHADOW.left + 100 / 2, rect1.x); 456 chrome.test.assertEq(Viewport.PAGE_SHADOW.left + 100 / 2, rect1.x);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 afterZoomCalled = true; 491 afterZoomCalled = true;
492 chrome.test.assertTrue(beforeZoomCalled); 492 chrome.test.assertTrue(beforeZoomCalled);
493 chrome.test.assertEq(0.5, viewport.zoom); 493 chrome.test.assertEq(0.5, viewport.zoom);
494 }; 494 };
495 var beforeZoom = function() { 495 var beforeZoom = function() {
496 beforeZoomCalled = true; 496 beforeZoomCalled = true;
497 chrome.test.assertFalse(afterZoomCalled); 497 chrome.test.assertFalse(afterZoomCalled);
498 chrome.test.assertEq(1, viewport.zoom); 498 chrome.test.assertEq(1, viewport.zoom);
499 }; 499 };
500 viewport = new Viewport(mockWindow, mockSizer, function() {}, 500 viewport = new Viewport(mockWindow, mockSizer, function() {},
501 beforeZoom, afterZoom, 0); 501 beforeZoom, afterZoom, 0, 0);
502 viewport.setZoom(0.5); 502 viewport.setZoom(0.5);
503 chrome.test.succeed(); 503 chrome.test.succeed();
504 } 504 }
505 ]; 505 ];
506 506
507 chrome.test.runTests(tests); 507 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