Index: chrome/test/data/pdf/test_util.js |
diff --git a/chrome/test/data/pdf/test_util.js b/chrome/test/data/pdf/test_util.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8ea2a81cd9fd3ec609836f67690a9ee49ec1dea3 |
--- /dev/null |
+++ b/chrome/test/data/pdf/test_util.js |
@@ -0,0 +1,89 @@ |
+// 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. |
+ |
+// Utilities that are used in multiple tests. |
+function MockWindow(width, height, sizer) { |
+ this.innerWidth = width; |
+ this.innerHeight = height; |
+ this.addEventListener = function(e, f) { |
+ if (e == 'scroll') |
+ this.scrollCallback = f; |
+ if (e == 'resize') |
+ this.resizeCallback = f; |
+ }; |
+ this.scrollTo = function(x, y) { |
+ if (sizer) { |
+ x = Math.min(x, parseInt(sizer.style.width) - width); |
+ y = Math.min(y, parseInt(sizer.style.height) - height); |
+ } |
+ this.pageXOffset = Math.max(0, x); |
+ this.pageYOffset = Math.max(0, y); |
+ this.scrollCallback(); |
+ }; |
+ if (sizer) { |
+ sizer.resizeCallback_ = function() { |
+ this.scrollTo(this.pageXOffset, this.pageYOffset); |
+ }.bind(this); |
+ } |
+ this.pageXOffset = 0; |
+ this.pageYOffset = 0; |
+ this.scrollCallback = null; |
+ this.resizeCallback = null; |
+} |
+ |
+function MockSizer() { |
+ var sizer = this; |
+ this.style = { |
+ width_: '0px', |
+ height_: '0px', |
+ get height() { return this.height_; }, |
+ set height(height) { |
+ this.height_ = height; |
+ if (sizer.resizeCallback_) |
+ sizer.resizeCallback_(); |
+ }, |
+ get width() { return this.width_; }, |
+ set width(width) { |
+ this.width_ = width; |
+ if (sizer.resizeCallback_) |
+ sizer.resizeCallback_(); |
+ }, |
+ }; |
+} |
+ |
+function MockViewportChangedCallback() { |
+ this.wasCalled = false; |
+ this.callback = function() { |
+ this.wasCalled = true; |
+ }.bind(this); |
+ this.reset = function() { |
+ this.wasCalled = false; |
+ }; |
+} |
+ |
+function MockDocumentDimensions(width, height) { |
+ this.width = width || 0; |
+ this.height = height ? height : 0; |
+ this.pageDimensions = []; |
+ this.addPage = function(w, h) { |
+ var y = 0; |
+ if (this.pageDimensions.length != 0) { |
+ y = this.pageDimensions[this.pageDimensions.length - 1].y + |
+ this.pageDimensions[this.pageDimensions.length - 1].height; |
+ } |
+ this.width = Math.max(this.width, w); |
+ this.height += h; |
+ this.pageDimensions.push({ |
+ x: 0, |
+ y: y, |
+ width: w, |
+ height: h |
+ }); |
+ }; |
+ this.reset = function() { |
+ this.width = 0; |
+ this.height = 0; |
+ this.pageDimensions = []; |
+ }; |
+} |