Chromium Code Reviews| Index: chrome/test/data/pdf/zoom_manager_test.js |
| diff --git a/chrome/test/data/pdf/zoom_manager_test.js b/chrome/test/data/pdf/zoom_manager_test.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..63f7585e81fbfda35917d73484957fd69dffacbc |
| --- /dev/null |
| +++ b/chrome/test/data/pdf/zoom_manager_test.js |
| @@ -0,0 +1,131 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +chrome.test.runTests(function() { |
| + 'use strict'; |
| + |
| + class MockViewport { |
| + constructor() { |
| + this.zooms = []; |
| + this.zoom = 1; |
| + } |
| + |
| + setZoom(zoom) { |
| + this.zooms.push(zoom); |
| + this.zoom = zoom; |
| + } |
| + } |
| + |
| + 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.
|
| + constructor() { |
| + this.zoom = 1; |
| + this.started = false; |
| + } |
| + |
| + changeZoom(zoom) { |
| + chrome.test.assertFalse(this.started); |
| + |
| + this.zoom = zoom; |
| + this.started = true; |
| + return new Promise(function(resolve, reject) { |
| + this.resolve_ = resolve; |
| + }.bind(this)); |
| + } |
| + |
| + complete() { |
| + this.resolve_(); |
| + this.started = false; |
| + } |
| + }; |
| + |
| + return [ |
| + function testZoomChange() { |
| + let viewport = new MockViewport(); |
| + let browserZoomChanger = new MockBrowserZoomChanger(); |
| + let zoomManager = new ZoomManager( |
| + viewport, browserZoomChanger.changeZoom.bind(browserZoomChanger)); |
| + viewport.zoom = 2; |
| + zoomManager.onPdfZoomChange(); |
| + chrome.test.assertEq(2, browserZoomChanger.zoom); |
| + chrome.test.assertTrue(browserZoomChanger.started); |
| + chrome.test.succeed(); |
| + }, |
| + |
| + function testZoomChangedBeforeConstruction() { |
| + let viewport = new MockViewport(); |
| + viewport.zoom = 2; |
| + let browserZoomChanger = new MockBrowserZoomChanger(); |
| + let zoomManager = new ZoomManager( |
| + viewport, browserZoomChanger.changeZoom.bind(browserZoomChanger)); |
| + chrome.test.assertEq(2, browserZoomChanger.zoom); |
| + chrome.test.assertTrue(browserZoomChanger.started); |
| + chrome.test.succeed(); |
| + }, |
| + |
| + function testBrowserZoomChange() { |
| + let viewport = new MockViewport(); |
| + let zoomManager = new ZoomManager(viewport, Promise.resolve.bind(Promise), |
| + chrome.test.fail); |
| + zoomManager.onBrowserZoomChange(3); |
| + chrome.test.assertEq(1, viewport.zooms.length); |
| + chrome.test.assertEq(3, viewport.zooms[0]); |
| + chrome.test.assertEq(3, viewport.zoom); |
| + chrome.test.succeed(); |
| + }, |
| + |
| + function testSmallZoomChange() { |
| + let viewport = new MockViewport(); |
| + let browserZoomChanger = new MockBrowserZoomChanger(); |
| + let zoomManager = new ZoomManager( |
| + viewport, browserZoomChanger.changeZoom.bind(browserZoomChanger)); |
| + viewport.zoom = 1.0001; |
| + zoomManager.onPdfZoomChange(); |
| + chrome.test.assertEq(1, browserZoomChanger.zoom); |
| + chrome.test.assertFalse(browserZoomChanger.started); |
| + chrome.test.succeed(); |
| + }, |
| + |
| + function testSmallBrowserZoomChange() { |
| + let viewport = new MockViewport(); |
| + let zoomManager = new ZoomManager(viewport, Promise.resolve.bind(Promise), |
| + chrome.test.fail); |
| + zoomManager.onBrowserZoomChange(0.999); |
| + chrome.test.assertEq(0, viewport.zooms.length); |
| + chrome.test.assertEq(1, viewport.zoom); |
| + chrome.test.succeed(); |
| + }, |
| + |
| + function testMultiplePdfZoomChanges() { |
| + let viewport = new MockViewport(); |
| + let browserZoomChanger = new MockBrowserZoomChanger(); |
| + let zoomManager = new ZoomManager( |
| + viewport, browserZoomChanger.changeZoom.bind(browserZoomChanger)); |
| + viewport.zoom = 2; |
| + zoomManager.onPdfZoomChange(); |
| + viewport.zoom = 3; |
| + zoomManager.onPdfZoomChange(); |
| + chrome.test.assertTrue(browserZoomChanger.started); |
| + chrome.test.assertEq(2, browserZoomChanger.zoom); |
| + browserZoomChanger.complete(); |
| + Promise.resolve().then(function() { |
| + chrome.test.assertTrue(browserZoomChanger.started); |
| + chrome.test.assertEq(3, browserZoomChanger.zoom); |
| + chrome.test.succeed(); |
| + }); |
| + }, |
| + |
| + function testMultipleBrowserZoomChanges() { |
| + let viewport = new MockViewport(); |
| + let zoomManager = new ZoomManager(viewport, Promise.resolve.bind(Promise), |
| + chrome.test.fail); |
| + zoomManager.onBrowserZoomChange(2); |
| + zoomManager.onBrowserZoomChange(3); |
| + chrome.test.assertEq(2, viewport.zooms.length); |
| + chrome.test.assertEq(2, viewport.zooms[0]); |
| + chrome.test.assertEq(3, viewport.zooms[1]); |
| + chrome.test.assertEq(3, viewport.zoom); |
| + chrome.test.succeed(); |
| + }, |
| + ]; |
| +}()); |