Commit e470e427 authored by dpapad's avatar dpapad Committed by Commit Bot

PDF Viewer tests: Add PRESUBMIT checks enforcing ESLint/clang-format.

These are the same checks with chrome/test/data/webui/.
Also fixing existing violations.

Bug: 720034,1005029
Change-Id: Ic3db4eab01ce109da7f24c9b6f2480d522b3dfb9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1826010
Commit-Queue: Demetrios Papadopoulos <dpapad@chromium.org>
Reviewed-by: default avatarDan Beam <dbeam@chromium.org>
Auto-Submit: Demetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#700447}
parent c2bccea3
// Copyright 2019 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.
module.exports = {
'env': {'browser': true, 'es6': true},
'rules': {
'no-restricted-properties': 'off',
},
};
# Copyright 2019 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.
def _CommonChecks(input_api, output_api):
results = []
try:
import sys
old_sys_path = sys.path[:]
cwd = input_api.PresubmitLocalPath()
sys.path += [input_api.os_path.join(cwd, '..', '..', '..', '..', 'tools')]
import web_dev_style.presubmit_support
results += web_dev_style.presubmit_support.CheckStyleESLint(
input_api, output_api)
finally:
sys.path = old_sys_path
results += input_api.canned_checks.CheckPatchFormatted(input_api, output_api,
check_js=True)
return results
def CheckChangeOnUpload(input_api, output_api):
return _CommonChecks(input_api, output_api)
def CheckChangeOnCommit(input_api, output_api):
return _CommonChecks(input_api, output_api)
......@@ -51,8 +51,7 @@ chrome.test.runTests([
// Enter annotation mode.
$('toolbar').toggleAnnotation();
await viewer.loaded;
chrome.test.assertEq(
'VIEWER-INK-HOST', contentElement().tagName);
chrome.test.assertEq('VIEWER-INK-HOST', contentElement().tagName);
});
},
function testViewportToCameraConversion() {
......
......@@ -16,8 +16,8 @@ var tests = [
viewer.viewport.setZoom(1);
var sizer = document.getElementById('sizer');
chrome.test.assertEq(826, sizer.offsetWidth);
chrome.test.assertEq(1066 + viewer.viewport.topToolbarHeight_,
sizer.offsetHeight);
chrome.test.assertEq(
1066 + viewer.viewport.topToolbarHeight_, sizer.offsetHeight);
chrome.test.succeed();
},
......
......@@ -12,7 +12,7 @@ var tests = [
'viewer-pdf-toolbar',
'viewer-zoom-toolbar',
'viewer-password-screen',
'viewer-error-screen'
'viewer-error-screen',
];
for (var i = 0; i < elementNames.length; i++) {
var elements = document.body.querySelectorAll(elementNames[i]);
......@@ -72,20 +72,19 @@ var tests = [
// Generate pointer event manually, as MockInteractions doesn't include
// this.
plugin.dispatchEvent(new PointerEvent('pointerdown', {bubbles: true}));
chrome.test.assertFalse(dropdown.dropdownOpen,
"Clicking plugin closes dropdown");
chrome.test.assertFalse(
dropdown.dropdownOpen, 'Clicking plugin closes dropdown');
dropdown.$.button.click();
chrome.test.assertTrue(dropdown.dropdownOpen);
MockInteractions.pressAndReleaseKeyOn(document, ESC_KEY);
chrome.test.assertFalse(dropdown.dropdownOpen,
"Escape key closes dropdown");
chrome.test.assertTrue(toolbar.opened,
"First escape key does not close toolbar");
chrome.test.assertFalse(
dropdown.dropdownOpen, 'Escape key closes dropdown');
chrome.test.assertTrue(
toolbar.opened, 'First escape key does not close toolbar');
MockInteractions.pressAndReleaseKeyOn(document, ESC_KEY);
chrome.test.assertFalse(toolbar.opened,
"Second escape key closes toolbar");
chrome.test.assertFalse(toolbar.opened, 'Second escape key closes toolbar');
chrome.test.succeed();
},
......
......@@ -19,12 +19,9 @@ var tests = [
var firstNestedBookmark = firstBookmark.children[0];
// Check titles.
chrome.test.assertEq('First Section',
firstBookmark.title);
chrome.test.assertEq('First Subsection',
firstNestedBookmark.title);
chrome.test.assertEq('Second Section',
secondBookmark.title);
chrome.test.assertEq('First Section', firstBookmark.title);
chrome.test.assertEq('First Subsection', firstNestedBookmark.title);
chrome.test.assertEq('Second Section', secondBookmark.title);
chrome.test.assertEq('URI Bookmark', uriBookmark.title);
// Check bookmark fields.
......@@ -63,14 +60,14 @@ var tests = [
var rootBookmarks =
bookmarkContent.shadowRoot.querySelectorAll('viewer-bookmark');
chrome.test.assertEq(3, rootBookmarks.length, "three root bookmarks");
chrome.test.assertEq(3, rootBookmarks.length, 'three root bookmarks');
rootBookmarks[0].$.expand.click();
Polymer.dom.flush();
var subBookmarks =
rootBookmarks[0].shadowRoot.querySelectorAll('viewer-bookmark');
chrome.test.assertEq(1, subBookmarks.length, "one sub bookmark");
chrome.test.assertEq(1, subBookmarks.length, 'one sub bookmark');
var lastPageChange;
var lastXChange;
......@@ -107,10 +104,10 @@ var tests = [
chrome.test.assertEq(expectedEvent.uri, lastUriNavigation);
}
testTapTarget(rootBookmarks[0].$.item, {page: 0, x: 133, y: 667})
testTapTarget(subBookmarks[0].$.item, {page: 1, x: 133, y: 667})
testTapTarget(rootBookmarks[1].$.item, {page: 2, x: 133, y: 667})
testTapTarget(rootBookmarks[2].$.item, {uri: "http://www.chromium.org"})
testTapTarget(rootBookmarks[0].$.item, {page: 0, x: 133, y: 667});
testTapTarget(subBookmarks[0].$.item, {page: 1, x: 133, y: 667});
testTapTarget(rootBookmarks[1].$.item, {page: 2, x: 133, y: 667});
testTapTarget(rootBookmarks[2].$.item, {uri: 'http://www.chromium.org'});
chrome.test.succeed();
}
......
......@@ -12,22 +12,20 @@ chrome.test.runTests(function() {
['touchmove', []],
['touchend', []],
['touchcancel', []],
['wheel', []]
['wheel', []],
]);
}
addEventListener(type, listener, options) {
if (this.listeners.has(type)) {
this.listeners.get(type).push({
listener: listener,
options: options
});
this.listeners.get(type).push({listener: listener, options: options});
}
}
sendEvent(event) {
for (let l of this.listeners.get(event.type))
for (let l of this.listeners.get(event.type)) {
l.listener(event);
}
}
}
......@@ -79,43 +77,43 @@ chrome.test.runTests(function() {
stubElement.sendEvent(new MockTouchEvent('touchstart', [
{clientX: 0, clientY: 0},
{clientX: 0, clientY: 2}
{clientX: 0, clientY: 2},
]));
chrome.test.assertEq({
type: 'pinchstart',
center: {x: 0, y: 1}
}, pinchListener.lastEvent);
chrome.test.assertEq(
{type: 'pinchstart', center: {x: 0, y: 1}}, pinchListener.lastEvent);
stubElement.sendEvent(new MockTouchEvent('touchmove', [
{clientX: 0, clientY: 0},
{clientX: 0, clientY: 4}
{clientX: 0, clientY: 4},
]));
chrome.test.assertEq({
type: 'pinchupdate',
scaleRatio: 2,
direction: 'in',
startScaleRatio: 2,
center: {x: 0, y: 2}
}, pinchListener.lastEvent);
chrome.test.assertEq(
{
type: 'pinchupdate',
scaleRatio: 2,
direction: 'in',
startScaleRatio: 2,
center: {x: 0, y: 2}
},
pinchListener.lastEvent);
stubElement.sendEvent(new MockTouchEvent('touchmove', [
{clientX: 0, clientY: 0},
{clientX: 0, clientY: 8}
{clientX: 0, clientY: 8},
]));
chrome.test.assertEq({
type: 'pinchupdate',
scaleRatio: 2,
direction: 'in',
startScaleRatio: 4,
center: {x: 0, y: 4}
}, pinchListener.lastEvent);
chrome.test.assertEq(
{
type: 'pinchupdate',
scaleRatio: 2,
direction: 'in',
startScaleRatio: 4,
center: {x: 0, y: 4}
},
pinchListener.lastEvent);
stubElement.sendEvent(new MockTouchEvent('touchend', []));
chrome.test.assertEq({
type: 'pinchend',
startScaleRatio: 4,
center: {x: 0, y: 4}
}, pinchListener.lastEvent);
chrome.test.assertEq(
{type: 'pinchend', startScaleRatio: 4, center: {x: 0, y: 4}},
pinchListener.lastEvent);
chrome.test.succeed();
},
......@@ -127,45 +125,45 @@ chrome.test.runTests(function() {
stubElement.sendEvent(new MockTouchEvent('touchstart', [
{clientX: 0, clientY: 0},
{clientX: 0, clientY: 2}
{clientX: 0, clientY: 2},
]));
chrome.test.assertEq({
type: 'pinchstart',
center: {x: 0, y: 1}
}, pinchListener.lastEvent);
chrome.test.assertEq(
{type: 'pinchstart', center: {x: 0, y: 1}}, pinchListener.lastEvent);
stubElement.sendEvent(new MockTouchEvent('touchmove', [
{clientX: 0, clientY: 0},
{clientX: 0, clientY: 4}
{clientX: 0, clientY: 4},
]));
chrome.test.assertEq({
type: 'pinchupdate',
scaleRatio: 2,
direction: 'in',
startScaleRatio: 2,
center: {x: 0, y: 2}
}, pinchListener.lastEvent);
chrome.test.assertEq(
{
type: 'pinchupdate',
scaleRatio: 2,
direction: 'in',
startScaleRatio: 2,
center: {x: 0, y: 2}
},
pinchListener.lastEvent);
stubElement.sendEvent(new MockTouchEvent('touchmove', [
{clientX: 0, clientY: 0},
{clientX: 0, clientY: 2}
{clientX: 0, clientY: 2},
]));
// This should be part of the same gesture as an update.
// A change in direction should not end the gesture and start a new one.
chrome.test.assertEq({
type: 'pinchupdate',
scaleRatio: 0.5,
direction: 'out',
startScaleRatio: 1,
center: {x: 0, y: 1}
}, pinchListener.lastEvent);
chrome.test.assertEq(
{
type: 'pinchupdate',
scaleRatio: 0.5,
direction: 'out',
startScaleRatio: 1,
center: {x: 0, y: 1}
},
pinchListener.lastEvent);
stubElement.sendEvent(new MockTouchEvent('touchend', []));
chrome.test.assertEq({
type: 'pinchend',
startScaleRatio: 1,
center: {x: 0, y: 1}
}, pinchListener.lastEvent);
chrome.test.assertEq(
{type: 'pinchend', startScaleRatio: 1, center: {x: 0, y: 1}},
pinchListener.lastEvent);
chrome.test.succeed();
},
......@@ -266,8 +264,8 @@ chrome.test.runTests(function() {
// passive, we must set the value explicitly.
for (let l of stubElement.listeners.get('wheel')) {
let options = l.options;
chrome.test.assertTrue(!!options &&
typeof(options.passive) == 'boolean');
chrome.test.assertTrue(
!!options && typeof (options.passive) == 'boolean');
chrome.test.assertFalse(options.passive);
}
......@@ -291,34 +289,39 @@ chrome.test.runTests(function() {
let gestureDetector = new GestureDetector(stubElement);
chrome.test.assertFalse(gestureDetector.wasTwoFingerTouch(),
"Should not have two finger touch before first touch event.");
chrome.test.assertFalse(
gestureDetector.wasTwoFingerTouch(),
'Should not have two finger touch before first touch event.');
stubElement.sendEvent(new MockTouchEvent('touchstart', [
{clientX: 0, clientY: 0}
{clientX: 0, clientY: 0},
]));
chrome.test.assertFalse(gestureDetector.wasTwoFingerTouch(),
"Should not have a two finger touch with one touch.");
chrome.test.assertFalse(
gestureDetector.wasTwoFingerTouch(),
'Should not have a two finger touch with one touch.');
stubElement.sendEvent(new MockTouchEvent('touchstart', [
{clientX: 0, clientY: 0},
{clientX: 2, clientY: 2}
{clientX: 2, clientY: 2},
]));
chrome.test.assertTrue(gestureDetector.wasTwoFingerTouch(),
"Should have a two finger touch.");
chrome.test.assertTrue(
gestureDetector.wasTwoFingerTouch(),
'Should have a two finger touch.');
// Make sure we keep |wasTwoFingerTouch| true after the end event.
stubElement.sendEvent(new MockTouchEvent('touchend', []));
chrome.test.assertTrue(gestureDetector.wasTwoFingerTouch(),
"Should maintain two finger touch after touchend.");
chrome.test.assertTrue(
gestureDetector.wasTwoFingerTouch(),
'Should maintain two finger touch after touchend.');
stubElement.sendEvent(new MockTouchEvent('touchstart', [
{clientX: 0, clientY: 0},
{clientX: 2, clientY: 2},
{clientX: 4, clientY: 4}
{clientX: 4, clientY: 4},
]));
chrome.test.assertFalse(gestureDetector.wasTwoFingerTouch(),
"Should not have two finger touch with 3 touches.");
chrome.test.assertFalse(
gestureDetector.wasTwoFingerTouch(),
'Should not have two finger touch with 3 touches.');
chrome.test.succeed();
}
......
......@@ -53,12 +53,12 @@ var tests = [
selector.pageNo = e.detail.page + 1;
});
changeInput("1000");
changeInput("1234");
changeInput("abcd");
changeInput("12pp");
changeInput("3.14");
changeInput("3000");
changeInput('1000');
changeInput('1234');
changeInput('abcd');
changeInput('12pp');
changeInput('3.14');
changeInput('3000');
chrome.test.assertEq(4, navigatedPages.length);
// The event page number is 0-based.
......@@ -131,7 +131,7 @@ var tests = [
var rootBookmarks =
bookmarkContent.shadowRoot.querySelectorAll('viewer-bookmark');
chrome.test.assertEq(1, rootBookmarks.length, "one root bookmark");
chrome.test.assertEq(1, rootBookmarks.length, 'one root bookmark');
var rootBookmark = rootBookmarks[0];
rootBookmark.$.expand.click();
......@@ -139,9 +139,9 @@ var tests = [
var subBookmarks =
rootBookmark.shadowRoot.querySelectorAll('viewer-bookmark');
chrome.test.assertEq(2, subBookmarks.length, "two sub bookmarks");
chrome.test.assertEq(1, subBookmarks[1].depth,
"sub bookmark depth correct");
chrome.test.assertEq(2, subBookmarks.length, 'two sub bookmarks');
chrome.test.assertEq(
1, subBookmarks[1].depth, 'sub bookmark depth correct');
var lastPageChange;
rootBookmark.addEventListener('change-page', function(e) {
......
......@@ -15,13 +15,12 @@ chrome.test.runTests(function() {
chrome.test.assertEq('PDF.Actions', metric.metricName);
chrome.test.assertEq('test_histogram_log', metric.type);
chrome.test.assertEq(1, metric.min);
chrome.test.assertEq(
PDFMetrics.UserAction.NUMBER_OF_ACTIONS, metric.max);
chrome.test.assertEq(PDFMetrics.UserAction.NUMBER_OF_ACTIONS, metric.max);
chrome.test.assertEq(
PDFMetrics.UserAction.NUMBER_OF_ACTIONS + 1, metric.buckets);
this.actionCounter[value] = (this.actionCounter[value] + 1) || 1;
}
};
}
return [
function testMetricsDocumentOpened() {
......@@ -42,8 +41,9 @@ chrome.test.runTests(function() {
chrome.metricsPrivate = new MockMetricsPrivate();
PDFMetrics.record(PDFMetrics.UserAction.DOCUMENT_OPENED);
for (var i = 0; i < 4; i++)
for (var i = 0; i < 4; i++) {
PDFMetrics.record(PDFMetrics.UserAction.ROTATE);
}
chrome.test.assertEq(
{
......
......@@ -42,11 +42,7 @@ class MockNavigatorDelegate {
* and that the navigation to |expectedResultUrl| happened.
*/
function doNavigationUrlTest(
navigator,
url,
disposition,
expectedResultUrl,
viewportChangedCallback,
navigator, url, disposition, expectedResultUrl, viewportChangedCallback,
navigatorDelegate) {
viewportChangedCallback.reset();
navigatorDelegate.reset();
......@@ -114,14 +110,15 @@ var tests = [
viewport.setViewportChangedCallback(mockCallback.callback);
var paramsParser = new OpenPdfParamsParser(function(destination) {
if (destination == 'US')
if (destination == 'US') {
paramsParser.onNamedDestinationReceived(0);
else if (destination == 'UY')
} else if (destination == 'UY') {
paramsParser.onNamedDestinationReceived(2);
else
} else {
paramsParser.onNamedDestinationReceived(-1);
}
});
var url = "http://xyz.pdf";
var url = 'http://xyz.pdf';
var navigatorDelegate = new MockNavigatorDelegate();
var navigator =
......@@ -182,64 +179,44 @@ var tests = [
* similar heuristics as Adobe Acrobat Reader.
*/
function testNavigateForLinksWithoutScheme() {
var url = "http://www.example.com/subdir/xyz.pdf";
var url = 'http://www.example.com/subdir/xyz.pdf';
// Sanity check.
doNavigationUrlTests(
url,
'https://www.foo.com/bar.pdf',
'https://www.foo.com/bar.pdf');
url, 'https://www.foo.com/bar.pdf', 'https://www.foo.com/bar.pdf');
// Open relative links.
doNavigationUrlTests(
url,
'foo/bar.pdf',
'http://www.example.com/subdir/foo/bar.pdf');
url, 'foo/bar.pdf', 'http://www.example.com/subdir/foo/bar.pdf');
doNavigationUrlTests(
url,
'foo.com/bar.pdf',
url, 'foo.com/bar.pdf',
'http://www.example.com/subdir/foo.com/bar.pdf');
doNavigationUrlTests(
url,
'../www.foo.com/bar.pdf',
url, '../www.foo.com/bar.pdf',
'http://www.example.com/www.foo.com/bar.pdf');
// Open an absolute link.
doNavigationUrlTests(
url,
'/foodotcom/bar.pdf',
'http://www.example.com/foodotcom/bar.pdf');
url, '/foodotcom/bar.pdf', 'http://www.example.com/foodotcom/bar.pdf');
// Open a http url without a scheme.
doNavigationUrlTests(
url,
'www.foo.com/bar.pdf',
'http://www.foo.com/bar.pdf');
url, 'www.foo.com/bar.pdf', 'http://www.foo.com/bar.pdf');
// Test three dots.
doNavigationUrlTests(
url,
'.../bar.pdf',
'http://www.example.com/subdir/.../bar.pdf');
url, '.../bar.pdf', 'http://www.example.com/subdir/.../bar.pdf');
// Test forward slashes.
doNavigationUrlTests(url, '..\\bar.pdf', 'http://www.example.com/bar.pdf');
doNavigationUrlTests(
url,
'..\\bar.pdf',
'http://www.example.com/bar.pdf');
url, '.\\bar.pdf', 'http://www.example.com/subdir/bar.pdf');
doNavigationUrlTests(
url,
'.\\bar.pdf',
'http://www.example.com/subdir/bar.pdf');
doNavigationUrlTests(
url,
'\\bar.pdf',
'http://www.example.com/subdir//bar.pdf');
url, '\\bar.pdf', 'http://www.example.com/subdir//bar.pdf');
// Regression test for https://crbug.com/569040
doNavigationUrlTests(
url,
'http://something.else/foo#page=5',
url, 'http://something.else/foo#page=5',
'http://something.else/foo#page=5');
chrome.test.succeed();
......@@ -249,13 +226,11 @@ var tests = [
* a file:/// url as the current location.
*/
function testNavigateFromLocalFile() {
var url = "file:///some/path/to/myfile.pdf";
var url = 'file:///some/path/to/myfile.pdf';
// Open an absolute link.
doNavigationUrlTests(
url,
'/foodotcom/bar.pdf',
'file:///foodotcom/bar.pdf');
url, '/foodotcom/bar.pdf', 'file:///foodotcom/bar.pdf');
chrome.test.succeed();
},
......@@ -264,30 +239,17 @@ var tests = [
var url = 'https://example.com/some-web-document.pdf';
// From non-file: to file:
doNavigationUrlTests(
url,
'file:///bar.pdf',
undefined);
doNavigationUrlTests(url, 'file:///bar.pdf', undefined);
doNavigationUrlTests(
url,
'chrome://version',
undefined);
doNavigationUrlTests(url, 'chrome://version', undefined);
doNavigationUrlTests(
url,
'javascript:// this is not a document.pdf',
undefined);
url, 'javascript:// this is not a document.pdf', undefined);
doNavigationUrlTests(
url,
'this-is-not-a-valid-scheme://path.pdf',
undefined);
url, 'this-is-not-a-valid-scheme://path.pdf', undefined);
doNavigationUrlTests(
url,
'',
undefined);
doNavigationUrlTests(url, '', undefined);
chrome.test.succeed();
}
......
......@@ -8,17 +8,18 @@ var tests = [
*/
function testParamsParser() {
var paramsParser = new OpenPdfParamsParser(function(destination) {
if (destination == 'RU')
if (destination == 'RU') {
paramsParser.onNamedDestinationReceived(26);
else if (destination == 'US')
} else if (destination == 'US') {
paramsParser.onNamedDestinationReceived(0);
else if (destination == 'UY')
} else if (destination == 'UY') {
paramsParser.onNamedDestinationReceived(22);
else
} else {
paramsParser.onNamedDestinationReceived(-1);
}
});
var url = "http://xyz.pdf";
var url = 'http://xyz.pdf';
// Checking #nameddest.
paramsParser.getViewportFromUrlParams(`${url}#RU`, function(params) {
......
......@@ -5,27 +5,27 @@
// Load a plugin with the given paramaters.
function createPluginForUrl(streamUrl, url, headers, progressCallback) {
var plugin = document.createElement('embed');
plugin.type = 'application/x-google-chrome-pdf';
plugin.addEventListener('message', function(message) {
switch (message.data.type.toString()) {
case 'loadProgress':
progressCallback(message.data.progress);
plugin.type = 'application/x-google-chrome-pdf';
plugin.addEventListener('message', function(message) {
switch (message.data.type.toString()) {
case 'loadProgress':
progressCallback(message.data.progress);
break;
}
}, false);
}
}, false);
plugin.setAttribute('src', url);
plugin.setAttribute('stream-url', streamUrl);
plugin.setAttribute('full-frame', '');
plugin.setAttribute('headers', headers);
document.body.appendChild(plugin);
plugin.setAttribute('src', url);
plugin.setAttribute('stream-url', streamUrl);
plugin.setAttribute('full-frame', '');
plugin.setAttribute('headers', headers);
document.body.appendChild(plugin);
}
function parseUrl(url) {
var a = document.createElement("a");
var a = document.createElement('a');
a.href = url;
return a;
};
}
var tests = [
// Test that if the plugin is loaded with a URL that redirects it fails.
......@@ -33,10 +33,11 @@ var tests = [
var url = parseUrl(viewer.originalUrl_);
var redirectUrl = url.origin + '/server-redirect?' + viewer.originalUrl_;
createPluginForUrl(redirectUrl, redirectUrl, '', function(progress) {
if (progress == -1)
if (progress == -1) {
chrome.test.succeed();
else
} else {
chrome.test.fail();
}
});
},
......@@ -49,24 +50,26 @@ var tests = [
// that doesn't redirect and subsequent requests are made using a URL that
// does.
var headers = 'Accept-Ranges: bytes\n' +
'Content-Length: 101688487\n' +
'Content-Type: application/pdf\n';
createPluginForUrl(viewer.originalUrl_, redirectUrl, headers,
function(progress) {
if (progress == -1)
'Content-Length: 101688487\n' +
'Content-Type: application/pdf\n';
createPluginForUrl(
viewer.originalUrl_, redirectUrl, headers, function(progress) {
if (progress == -1) {
chrome.test.succeed();
else
} else {
chrome.test.fail();
}
});
},
// Test that if the plugin is loaded with a URL that doesn't redirect, it
// succeeds.
function noRedirectsSucceed() {
createPluginForUrl(viewer.originalUrl_, viewer.originalUrl_, '',
function(progress) {
if (progress == 100)
chrome.test.succeed()
createPluginForUrl(
viewer.originalUrl_, viewer.originalUrl_, '', function(progress) {
if (progress == 100) {
chrome.test.succeed();
}
});
},
];
......
......@@ -8,16 +8,18 @@ function MockWindow(width, height, sizer) {
this.innerWidth = width;
this.innerHeight = height;
this.addEventListener = function(e, f) {
if (e == 'scroll')
if (e == 'scroll') {
this.scrollCallback = f;
if (e == 'resize')
}
if (e == 'resize') {
this.resizeCallback = f;
}
};
this.setSize = function(width, height) {
this.innerWidth = width;
this.innerHeight = height;
this.resizeCallback();
}
};
this.scrollTo = function(x, y) {
if (sizer) {
x = Math.min(x, parseInt(sizer.style.width) - width);
......@@ -29,15 +31,16 @@ function MockWindow(width, height, sizer) {
};
this.setTimeout = function(callback, time) {
this.timerCallback = callback;
return "timerId";
return 'timerId';
};
this.clearTimeout = function(timerId) {
this.timerCallback = null;
};
this.runTimeout = function() {
if (this.timerCallback)
if (this.timerCallback) {
this.timerCallback();
}
}
};
if (sizer) {
sizer.resizeCallback_ = function() {
this.scrollTo(this.pageXOffset, this.pageYOffset);
......@@ -55,17 +58,23 @@ function MockSizer() {
this.style = {
width_: '0px',
height_: '0px',
get height() { return this.height_; },
get height() {
return this.height_;
},
set height(height) {
this.height_ = height;
if (sizer.resizeCallback_)
if (sizer.resizeCallback_) {
sizer.resizeCallback_();
}
},
get width() {
return this.width_;
},
get width() { return this.width_; },
set width(width) {
this.width_ = width;
if (sizer.resizeCallback_)
if (sizer.resizeCallback_) {
sizer.resizeCallback_();
}
},
};
}
......@@ -93,22 +102,12 @@ function MockDocumentDimensions(width, height, layoutOptions) {
}
this.width = Math.max(this.width, w);
this.height += h;
this.pageDimensions.push({
x: 0,
y: y,
width: w,
height: h
});
this.pageDimensions.push({x: 0, y: y, width: w, height: h});
};
this.addPageForTwoUpView = function(x, y, w, h) {
this.width = Math.max(this.width, 2 * w);
this.height = Math.max(this.height, y + h);
this.pageDimensions.push({
x: x,
y: y,
width: w,
height: h
});
this.pageDimensions.push({x: x, y: y, width: w, height: h});
};
this.reset = function() {
this.width = 0;
......
......@@ -15,7 +15,7 @@ function getMouseMoveEvents(fromX, fromY, toX, toY, steps) {
clientX: fromX,
clientY: fromY,
movementX: dx,
movementY: dy
movementY: dy,
});
events.push(e);
fromX += dx;
......@@ -102,7 +102,9 @@ var tests = [
var mockWindow = new MockWindow(1920, 1080);
var mockZoomToolbar = {
clientHeight: 400,
isPrintPreview: function() { return false; }
isPrintPreview: function() {
return false;
}
};
var toolbar = document.getElementById('toolbar');
var bookmarksDropdown = toolbar.$.bookmarks;
......@@ -182,8 +184,9 @@ var tests = [
chrome.test.assertFalse(zoomToolbar.isVisible());
// Simulate focusing the fit to page button using the tab key.
zoomToolbar.$$('#fit-button').dispatchEvent(
new CustomEvent('focus', {bubbles: true, composed: true}));
zoomToolbar.$$('#fit-button')
.dispatchEvent(
new CustomEvent('focus', {bubbles: true, composed: true}));
chrome.test.assertTrue(zoomToolbar.isVisible());
// Call resetKeyboardNavigationAndHideToolbars(). This happens when focus
......@@ -195,8 +198,9 @@ var tests = [
// Simulate re-focusing the zoom toolbar with the tab key. See
// https://crbug.com/982694.
zoomToolbar.$$('#fit-button').dispatchEvent(
new CustomEvent('keyup', {bubbles: true, composed: true}));
zoomToolbar.$$('#fit-button')
.dispatchEvent(
new CustomEvent('keyup', {bubbles: true, composed: true}));
mockWindow.runTimeout();
chrome.test.assertTrue(zoomToolbar.isVisible());
......@@ -230,25 +234,25 @@ var tests = [
// Tap anywhere on the screen -> Toolbars open.
toolbarManager.handleMouseMove(makeTapEvent(500, 500));
chrome.test.assertTrue(toolbar.opened, "toolbars open after tap");
chrome.test.assertTrue(toolbar.opened, 'toolbars open after tap');
// Tap again -> Toolbars close.
toolbarManager.handleMouseMove(makeTapEvent(500, 500));
chrome.test.assertFalse(toolbar.opened, "toolbars close after tap");
chrome.test.assertFalse(toolbar.opened, 'toolbars close after tap');
// Open toolbars, wait 2 seconds -> Toolbars close.
toolbarManager.handleMouseMove(makeTapEvent(500, 500));
mockWindow.runTimeout();
chrome.test.assertFalse(toolbar.opened, "toolbars close after wait");
chrome.test.assertFalse(toolbar.opened, 'toolbars close after wait');
// Open toolbars, tap near toolbars -> Toolbar doesn't close.
toolbarManager.handleMouseMove(makeTapEvent(500, 500));
toolbarManager.handleMouseMove(makeTapEvent(100, 75));
chrome.test.assertTrue(toolbar.opened,
"toolbars stay open after tap near toolbars");
chrome.test.assertTrue(
toolbar.opened, 'toolbars stay open after tap near toolbars');
mockWindow.runTimeout();
chrome.test.assertTrue(toolbar.opened,
"tap near toolbars prevents auto close");
chrome.test.assertTrue(
toolbar.opened, 'tap near toolbars prevents auto close');
chrome.test.succeed();
}
......
......@@ -38,8 +38,9 @@ var tests = [
let event = createContextMenuEvent();
// Dispatch event will be false if the event is cancellable and one of the
// handlers called preventDefault.
chrome.test.assertFalse(document.dispatchEvent(event),
"Should have called preventDefault() for single touch.");
chrome.test.assertFalse(
document.dispatchEvent(event),
'Should have called preventDefault() for single touch.');
chrome.test.succeed();
},
......@@ -48,8 +49,9 @@ var tests = [
sendTouchStart([{x: 10, y: 10}, {x: 15, y: 15}]);
let event = createContextMenuEvent();
chrome.test.assertTrue(document.dispatchEvent(event),
"Should not have called preventDefault() for double touch.");
chrome.test.assertTrue(
document.dispatchEvent(event),
'Should not have called preventDefault() for double touch.');
chrome.test.succeed();
},
......
......@@ -279,7 +279,7 @@ var tests = [
chrome.test.assertEq(`${expectedMockWidth}px`, mockSizer.style.width);
chrome.test.assertEq(`${expectedMockHeight}px`, mockSizer.style.height);
chrome.test.assertEq(expectedZoom, viewport.getZoom());
};
}
function testForSize(
pageWidth, pageHeight, expectedMockWidth, expectedMockHeight,
......@@ -291,7 +291,7 @@ var tests = [
mockCallback.reset();
viewport.fitToWidth();
assertZoomed(expectedMockWidth, expectedMockHeight, expectedZoom);
};
}
// Document width which matches the window width.
testForSize(100, 100, 100, 100, 1);
......@@ -354,7 +354,7 @@ var tests = [
chrome.test.assertEq(`${expectedMockWidth}px`, mockSizer.style.width);
chrome.test.assertEq(`${expectedMockHeight}px`, mockSizer.style.height);
chrome.test.assertEq(expectedZoom, viewport.getZoom());
};
}
function testForSize(
pageWidth, pageHeight, expectedMockWidth, expectedMockHeight,
......@@ -366,7 +366,7 @@ var tests = [
mockCallback.reset();
viewport.fitToPage();
assertZoomed(expectedMockWidth, expectedMockHeight, expectedZoom);
};
}
// Page size which matches the window size.
testForSize(100, 100, 100, 100, 1);
......@@ -456,7 +456,7 @@ var tests = [
chrome.test.assertEq(`${expectedMockWidth}px`, mockSizer.style.width);
chrome.test.assertEq(`${expectedMockHeight}px`, mockSizer.style.height);
chrome.test.assertEq(expectedZoom, viewport.getZoom());
};
}
function testForSize(
pageWidth, pageHeight, expectedMockWidth, expectedMockHeight,
......@@ -468,7 +468,7 @@ var tests = [
mockCallback.reset();
viewport.fitToHeight();
assertZoomed(expectedMockWidth, expectedMockHeight, expectedZoom);
};
}
// Page size which matches the window size.
testForSize(100, 100, 100, 100, 1);
......@@ -968,10 +968,12 @@ var tests = [
var rect1 = viewport.getPageScreenRect(0);
chrome.test.assertEq(Viewport.PAGE_SHADOW.left + 100 / 2, rect1.x);
chrome.test.assertEq(Viewport.PAGE_SHADOW.top, rect1.y);
chrome.test.assertEq(100 - Viewport.PAGE_SHADOW.right -
Viewport.PAGE_SHADOW.left, rect1.width);
chrome.test.assertEq(100 - Viewport.PAGE_SHADOW.bottom -
Viewport.PAGE_SHADOW.top, rect1.height);
chrome.test.assertEq(
100 - Viewport.PAGE_SHADOW.right - Viewport.PAGE_SHADOW.left,
rect1.width);
chrome.test.assertEq(
100 - Viewport.PAGE_SHADOW.bottom - Viewport.PAGE_SHADOW.top,
rect1.height);
// Check that when we scroll, the rect of the first page is updated
// correctly.
......@@ -987,10 +989,12 @@ var tests = [
rect1 = viewport.getPageScreenRect(1);
chrome.test.assertEq(Viewport.PAGE_SHADOW.left, rect1.x);
chrome.test.assertEq(Viewport.PAGE_SHADOW.top, rect1.y);
chrome.test.assertEq(200 - Viewport.PAGE_SHADOW.right -
Viewport.PAGE_SHADOW.left, rect1.width);
chrome.test.assertEq(200 - Viewport.PAGE_SHADOW.bottom -
Viewport.PAGE_SHADOW.top, rect1.height);
chrome.test.assertEq(
200 - Viewport.PAGE_SHADOW.right - Viewport.PAGE_SHADOW.left,
rect1.width);
chrome.test.assertEq(
200 - Viewport.PAGE_SHADOW.bottom - Viewport.PAGE_SHADOW.top,
rect1.height);
chrome.test.succeed();
},
......@@ -1001,14 +1005,14 @@ var tests = [
var afterZoomCalled = false;
var beforeZoomCalled = false;
var afterZoom = function() {
afterZoomCalled = true;
chrome.test.assertTrue(beforeZoomCalled);
chrome.test.assertEq(0.5, viewport.getZoom());
afterZoomCalled = true;
chrome.test.assertTrue(beforeZoomCalled);
chrome.test.assertEq(0.5, viewport.getZoom());
};
var beforeZoom = function() {
beforeZoomCalled = true;
chrome.test.assertFalse(afterZoomCalled);
chrome.test.assertEq(1, viewport.getZoom());
beforeZoomCalled = true;
chrome.test.assertFalse(afterZoomCalled);
chrome.test.assertEq(1, viewport.getZoom());
};
viewport = new Viewport(mockWindow, mockSizer, 0, 1, 0);
viewport.setBeforeZoomCallback(beforeZoom);
......
......@@ -80,7 +80,7 @@ chrome.test.runTests(function() {
this.resolve_();
this.started = false;
}
};
}
return [
function testZoomChange() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment