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

Unified Diff: chrome/test/data/pdf/viewport_test.js

Issue 1255403002: Add a scroll offset to PDF documents to account for the top material design toolbar. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/test/data/pdf/navigator_test.js ('k') | pdf/out_of_process_instance.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 a513de939715ea3ab3f8aa7d2b350216da0df236..1a45c63b9d423cf27d919377b3654460e5eae740 100644
--- a/chrome/test/data/pdf/viewport_test.js
+++ b/chrome/test/data/pdf/viewport_test.js
@@ -6,7 +6,7 @@ var tests = [
function testDocumentNeedsScrollbars() {
var viewport =
new Viewport(new MockWindow(100, 100), new MockSizer(), function() {},
- function() {}, function() {}, 10, 1);
+ function() {}, function() {}, 10, 1, 0);
var scrollbars;
viewport.setDocumentDimensions(new MockDocumentDimensions(90, 90));
@@ -61,7 +61,7 @@ var tests = [
var mockWindow = new MockWindow(100, 100, mockSizer);
var mockCallback = new MockViewportChangedCallback();
var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback,
- function() {}, function() {}, 0, 1);
+ function() {}, function() {}, 0, 1, 0);
// Test setting the zoom without the document dimensions set. The sizer
// shouldn't change size.
@@ -136,7 +136,7 @@ var tests = [
function testGetMostVisiblePage() {
var mockWindow = new MockWindow(100, 100);
var viewport = new Viewport(mockWindow, new MockSizer(), function() {},
- function() {}, function() {}, 0, 1);
+ function() {}, function() {}, 0, 1, 0);
var documentDimensions = new MockDocumentDimensions(100, 100);
documentDimensions.addPage(50, 100);
@@ -186,7 +186,7 @@ var tests = [
var mockSizer = new MockSizer();
var mockCallback = new MockViewportChangedCallback();
var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback,
- function() {}, function() {}, 0, 1);
+ function() {}, function() {}, 0, 1, 0);
var documentDimensions = new MockDocumentDimensions();
// Test with a document width which matches the window width.
@@ -245,7 +245,7 @@ var tests = [
// 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,
- function() {}, function() {}, 15, 1);
+ function() {}, function() {}, 15, 1, 0);
documentDimensions.reset();
documentDimensions.addPage(50, 100);
viewport.setDocumentDimensions(documentDimensions);
@@ -264,7 +264,7 @@ var tests = [
var mockSizer = new MockSizer();
var mockCallback = new MockViewportChangedCallback();
var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback,
- function() {}, function() {}, 0, 1);
+ function() {}, function() {}, 0, 1, 0);
var documentDimensions = new MockDocumentDimensions();
// Test with a page size which matches the window size.
@@ -373,7 +373,7 @@ var tests = [
var mockSizer = new MockSizer();
var mockCallback = new MockViewportChangedCallback();
var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback,
- function() {}, function() {}, 0, 1);
+ function() {}, function() {}, 0, 1, 0);
var documentDimensions = new MockDocumentDimensions();
documentDimensions.addPage(100, 100);
@@ -414,7 +414,7 @@ var tests = [
var mockSizer = new MockSizer();
var mockCallback = new MockViewportChangedCallback();
var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback,
- function() {}, function() {}, 0, 1);
+ function() {}, function() {}, 0, 1, 0);
var documentDimensions = new MockDocumentDimensions();
documentDimensions.addPage(100, 100);
documentDimensions.addPage(200, 200);
@@ -469,7 +469,7 @@ var tests = [
chrome.test.assertEq(1, viewport.zoom);
};
viewport = new Viewport(mockWindow, mockSizer, function() {},
- beforeZoom, afterZoom, 0, 1);
+ beforeZoom, afterZoom, 0, 1, 0);
viewport.setZoom(0.5);
chrome.test.succeed();
},
@@ -477,7 +477,7 @@ var tests = [
function testInitialSetDocumentDimensionsZoomConstrained() {
var viewport =
new Viewport(new MockWindow(100, 100), new MockSizer(), function() {},
- function() {}, function() {}, 0, 1.2);
+ function() {}, function() {}, 0, 1.2, 0);
viewport.setDocumentDimensions(new MockDocumentDimensions(50, 50));
chrome.test.assertEq(1.2, viewport.zoom);
chrome.test.succeed();
@@ -486,11 +486,52 @@ var tests = [
function testInitialSetDocumentDimensionsZoomUnconstrained() {
var viewport = new Viewport(
new MockWindow(100, 100),
- new MockSizer(), function() {}, function() {}, function() {}, 0, 3);
+ new MockSizer(), function() {}, function() {}, function() {}, 0, 3, 0);
viewport.setDocumentDimensions(new MockDocumentDimensions(50, 50));
chrome.test.assertEq(2, viewport.zoom);
chrome.test.succeed();
},
+
+ function testToolbarHeightOffset() {
+ var mockSizer = new MockSizer();
+ var mockWindow = new MockWindow(100, 100);
+ var viewport = new Viewport(mockWindow,
+ mockSizer, function() {}, function() {}, function() {}, 0, 1, 50);
+ var documentDimensions = new MockDocumentDimensions(0, 0);
+ documentDimensions.addPage(50, 500);
+ viewport.setDocumentDimensions(documentDimensions);
+ viewport.setZoom(1);
+
+ // Check that the sizer incorporates the toolbar height.
+ chrome.test.assertEq('550px', mockSizer.style.height);
+ chrome.test.assertEq('50px', mockSizer.style.width);
+ chrome.test.assertEq(0, viewport.position.x);
+
+ // Check the sizer incorporates the toolbar height correctly even if zoomed.
+ viewport.setZoom(2);
+ chrome.test.assertEq('1050px', mockSizer.style.height);
+ chrome.test.assertEq('100px', mockSizer.style.width);
+
+ // Test that the viewport scrolls to the correct offset when fit-to-page is
+ // enabled. The top of the viewport should be at the start of the document.
+ viewport.fitToPage();
+ chrome.test.assertEq(0, viewport.position.y);
+
+ // Check that going to a page scrolls to the correct offset when fit-to-page
+ // is enabled. The top of the viewport should be at the start of the
+ // document.
+ mockWindow.scrollTo(0, 100);
+ viewport.goToPage(0);
+ chrome.test.assertEq(0, viewport.position.y);
+
+ // Check that going to a page scrolls to the correct offset when fit-to-page
+ // is not enabled. The top of the viewport should be before start of the
+ // document.
+ viewport.setZoom(1);
+ viewport.goToPage(0);
+ chrome.test.assertEq(-50, viewport.position.y);
+ chrome.test.succeed();
+ }
];
chrome.test.runTests(tests);
« no previous file with comments | « chrome/test/data/pdf/navigator_test.js ('k') | pdf/out_of_process_instance.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698