Index: chrome/test/data/pdf/viewport_test.js |
diff --git a/chrome/test/data/pdf/viewport_test.js b/chrome/test/data/pdf/viewport_test.js |
index 7db2d95b104e76099b3abebde327b5f2f81ecbb2..46af0c3fa66c05d135edcc5904f3618ea53ad1a8 100644 |
--- a/chrome/test/data/pdf/viewport_test.js |
+++ b/chrome/test/data/pdf/viewport_test.js |
@@ -68,7 +68,7 @@ function MockDocumentDimensions(width, height) { |
var tests = [ |
function testDocumentNeedsScrollbars() { |
var viewport = new Viewport(new MockWindow(100, 100), new MockSizer(), |
- function() {}, 0); |
+ function() {}, function() {}, function() {}, 0); |
var scrollbars; |
viewport.setDocumentDimensions(new MockDocumentDimensions(90, 90)); |
@@ -107,13 +107,13 @@ var tests = [ |
var mockWindow = new MockWindow(100, 100); |
var mockSizer = new MockSizer(); |
var mockCallback = new MockViewportChangedCallback(); |
- var viewport = new Viewport(mockWindow, mockSizer, |
- mockCallback.callback, 0); |
+ var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback, |
+ function() {}, function() {}, 0); |
// Test setting the zoom without the document dimensions set. The sizer |
// shouldn't change size. |
mockCallback.reset(); |
- viewport.setZoom_(0.5); |
+ viewport.setZoomForTest_(0.5); |
chrome.test.assertEq(0.5, viewport.zoom); |
chrome.test.assertTrue(mockCallback.wasCalled); |
chrome.test.assertEq('0px', mockSizer.style.width); |
@@ -121,12 +121,12 @@ var tests = [ |
chrome.test.assertEq(0, mockWindow.pageXOffset); |
chrome.test.assertEq(0, mockWindow.pageYOffset); |
- viewport.setZoom_(1); |
+ viewport.setZoomForTest_(1); |
viewport.setDocumentDimensions(new MockDocumentDimensions(200, 200)); |
// Test zooming out. |
mockCallback.reset(); |
- viewport.setZoom_(0.5); |
+ viewport.setZoomForTest_(0.5); |
chrome.test.assertEq(0.5, viewport.zoom); |
chrome.test.assertTrue(mockCallback.wasCalled); |
chrome.test.assertEq('100px', mockSizer.style.width); |
@@ -134,7 +134,7 @@ var tests = [ |
// Test zooming in. |
mockCallback.reset(); |
- viewport.setZoom_(2); |
+ viewport.setZoomForTest_(2); |
chrome.test.assertEq(2, viewport.zoom); |
chrome.test.assertTrue(mockCallback.wasCalled); |
chrome.test.assertEq('400px', mockSizer.style.width); |
@@ -142,10 +142,10 @@ var tests = [ |
// Test that the scroll position scales correctly. It scales relative to the |
// center of the page. |
- viewport.setZoom_(1); |
+ viewport.setZoomForTest_(1); |
mockWindow.pageXOffset = 50; |
mockWindow.pageYOffset = 50; |
- viewport.setZoom_(2); |
+ viewport.setZoomForTest_(2); |
chrome.test.assertEq('400px', mockSizer.style.width); |
chrome.test.assertEq('400px', mockSizer.style.height); |
chrome.test.assertEq(150, mockWindow.pageXOffset); |
@@ -155,14 +155,15 @@ var tests = [ |
function testGetMostVisiblePage() { |
var mockWindow = new MockWindow(100, 100); |
- var viewport = new Viewport(mockWindow, new MockSizer(), function() {}, 0); |
+ var viewport = new Viewport(mockWindow, new MockSizer(), function() {}, |
+ function() {}, function() {}, 0); |
var documentDimensions = new MockDocumentDimensions(100, 100); |
documentDimensions.addPage(100, 100); |
documentDimensions.addPage(150, 100); |
documentDimensions.addPage(100, 200); |
viewport.setDocumentDimensions(documentDimensions); |
- viewport.setZoom_(1); |
+ viewport.setZoomForTest_(1); |
// Scrolled to the start of the first page. |
mockWindow.scrollTo(0, 0); |
@@ -185,7 +186,7 @@ var tests = [ |
chrome.test.assertEq(2, viewport.getMostVisiblePage()); |
// Scrolled just over half way through the first page with 2x zoom. |
- viewport.setZoom_(2); |
+ viewport.setZoomForTest_(2); |
mockWindow.scrollTo(0, 151); |
chrome.test.assertEq(1, viewport.getMostVisiblePage()); |
chrome.test.succeed(); |
@@ -195,14 +196,14 @@ var tests = [ |
var mockWindow = new MockWindow(100, 100); |
var mockSizer = new MockSizer(); |
var mockCallback = new MockViewportChangedCallback(); |
- var viewport = new Viewport(mockWindow, mockSizer, |
- mockCallback.callback, 0); |
+ var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback, |
+ function() {}, function() {}, 0); |
var documentDimensions = new MockDocumentDimensions(); |
// Test with a document width which matches the window width. |
documentDimensions.addPage(100, 100); |
viewport.setDocumentDimensions(documentDimensions); |
- viewport.setZoom_(0.1); |
+ viewport.setZoomForTest_(0.1); |
mockCallback.reset(); |
viewport.fitToWidth(); |
chrome.test.assertTrue(mockCallback.wasCalled); |
@@ -234,7 +235,7 @@ var tests = [ |
documentDimensions.reset(); |
documentDimensions.addPage(50, 400); |
viewport.setDocumentDimensions(documentDimensions); |
- viewport.setZoom_(1); |
+ viewport.setZoomForTest_(1); |
mockWindow.scrollTo(0, 100); |
mockCallback.reset(); |
viewport.fitToWidth(); |
@@ -246,8 +247,8 @@ var tests = [ |
// Test fitting works with scrollbars. The page will need to be zoomed to |
// fit to width, which will cause the page height to span outside of the |
// viewport, triggering 15px scrollbars to be shown. |
- viewport = new Viewport(mockWindow, mockSizer, |
- mockCallback.callback, 15); |
+ viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback, |
+ function() {}, function() {}, 15); |
documentDimensions.reset(); |
documentDimensions.addPage(50, 100); |
viewport.setDocumentDimensions(documentDimensions); |
@@ -263,14 +264,14 @@ var tests = [ |
var mockWindow = new MockWindow(100, 100); |
var mockSizer = new MockSizer(); |
var mockCallback = new MockViewportChangedCallback(); |
- var viewport = new Viewport(mockWindow, mockSizer, |
- mockCallback.callback, 0); |
+ var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback, |
+ function() {}, function() {}, 0); |
var documentDimensions = new MockDocumentDimensions(); |
// Test with a page size which matches the window size. |
documentDimensions.addPage(100, 100); |
viewport.setDocumentDimensions(documentDimensions); |
- viewport.setZoom_(0.1); |
+ viewport.setZoomForTest_(0.1); |
mockCallback.reset(); |
viewport.fitToPage(); |
chrome.test.assertTrue(mockCallback.wasCalled); |
@@ -306,7 +307,7 @@ var tests = [ |
documentDimensions.addPage(200, 100); |
documentDimensions.addPage(100, 400); |
viewport.setDocumentDimensions(documentDimensions); |
- viewport.setZoom_(1); |
+ viewport.setZoomForTest_(1); |
mockWindow.scrollTo(0, 0); |
mockCallback.reset(); |
viewport.fitToPage(); |
@@ -314,7 +315,7 @@ var tests = [ |
chrome.test.assertEq('100px', mockSizer.style.width); |
chrome.test.assertEq('250px', mockSizer.style.height); |
chrome.test.assertEq(0.5, viewport.zoom); |
- viewport.setZoom_(1); |
+ viewport.setZoomForTest_(1); |
mockWindow.scrollTo(0, 100); |
mockCallback.reset(); |
viewport.fitToPage(); |
@@ -328,13 +329,13 @@ var tests = [ |
documentDimensions.addPage(200, 200); |
documentDimensions.addPage(100, 400); |
viewport.setDocumentDimensions(documentDimensions); |
- viewport.setZoom_(1); |
+ viewport.setZoomForTest_(1); |
mockWindow.scrollTo(0, 0); |
viewport.fitToPage(); |
chrome.test.assertEq(0.5, viewport.zoom); |
chrome.test.assertEq(0, viewport.position.x); |
chrome.test.assertEq(0, viewport.position.y); |
- viewport.setZoom_(1); |
+ viewport.setZoomForTest_(1); |
mockWindow.scrollTo(0, 175); |
viewport.fitToPage(); |
chrome.test.assertEq(0.25, viewport.zoom); |
@@ -348,15 +349,15 @@ var tests = [ |
var mockWindow = new MockWindow(100, 100); |
var mockSizer = new MockSizer(); |
var mockCallback = new MockViewportChangedCallback(); |
- var viewport = new Viewport(mockWindow, mockSizer, |
- mockCallback.callback, 0); |
+ var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback, |
+ function() {}, function() {}, 0); |
var documentDimensions = new MockDocumentDimensions(); |
documentDimensions.addPage(100, 100); |
documentDimensions.addPage(200, 200); |
documentDimensions.addPage(100, 400); |
viewport.setDocumentDimensions(documentDimensions); |
- viewport.setZoom_(1); |
+ viewport.setZoomForTest_(1); |
mockCallback.reset(); |
viewport.goToPage(0); |
@@ -376,7 +377,7 @@ var tests = [ |
chrome.test.assertEq(0, viewport.position.x); |
chrome.test.assertEq(300, viewport.position.y); |
- viewport.setZoom_(0.5); |
+ viewport.setZoomForTest_(0.5); |
mockCallback.reset(); |
viewport.goToPage(2); |
chrome.test.assertTrue(mockCallback.wasCalled); |
@@ -389,13 +390,13 @@ var tests = [ |
var mockWindow = new MockWindow(100, 100); |
var mockSizer = new MockSizer(); |
var mockCallback = new MockViewportChangedCallback(); |
- var viewport = new Viewport(mockWindow, mockSizer, |
- mockCallback.callback, 0); |
+ var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback, |
+ function() {}, function() {}, 0); |
var documentDimensions = new MockDocumentDimensions(); |
documentDimensions.addPage(100, 100); |
documentDimensions.addPage(200, 200); |
viewport.setDocumentDimensions(documentDimensions); |
- viewport.setZoom_(1); |
+ viewport.setZoomForTest_(1); |
// Test that the rect of the first page is positioned/sized correctly. |
mockWindow.scrollTo(0, 0); |
@@ -426,6 +427,28 @@ var tests = [ |
chrome.test.assertEq(200 - Viewport.PAGE_SHADOW.bottom - |
Viewport.PAGE_SHADOW.top, rect1.height); |
chrome.test.succeed(); |
+ }, |
+ |
+ function testBeforeZoomAfterZoom() { |
+ var mockWindow = new MockWindow(100, 100); |
+ var mockSizer = new MockSizer(); |
+ var viewport; |
+ var afterZoomCalled = false; |
+ var beforeZoomCalled = false; |
+ var afterZoom = function() { |
+ afterZoomCalled = true; |
+ chrome.test.assertTrue(beforeZoomCalled); |
+ chrome.test.assertEq(0.5, viewport.zoom); |
+ }; |
+ var beforeZoom = function() { |
+ beforeZoomCalled = true; |
+ chrome.test.assertFalse(afterZoomCalled); |
+ chrome.test.assertEq(1, viewport.zoom); |
+ }; |
+ viewport = new Viewport(mockWindow, mockSizer, function() {}, |
+ beforeZoom, afterZoom, 0); |
+ viewport.setZoomForTest_(0.5); |
+ chrome.test.succeed(); |
} |
]; |