Chromium Code Reviews| Index: chrome/test/data/pdf/nameddestinations_test.js |
| diff --git a/chrome/test/data/pdf/nameddestinations_test.js b/chrome/test/data/pdf/nameddestinations_test.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..987e69836f0afc29e9cf596f08dcb3e021fa02af |
| --- /dev/null |
| +++ b/chrome/test/data/pdf/nameddestinations_test.js |
| @@ -0,0 +1,134 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
|
raymes
2015/01/28 01:33:45
We could really split this into 2 files:
params_pa
Deepak
2015/01/28 05:57:24
Done.
|
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +var tests = [ |
| + /** |
| + * Test named destinations by navigate. |
| + */ |
| + function testNamedDestinationsByNavigate() { |
|
raymes
2015/01/28 01:33:45
nit: testNavigate
Deepak
2015/01/28 05:57:24
Done.
|
| + var mockWindow = new MockWindow(100, 100); |
| + var mockSizer = new MockSizer(); |
| + var mockCallback = new MockViewportChangedCallback(); |
| + var viewport = new Viewport(mockWindow, mockSizer, mockCallback.callback, |
| + function() {}, function() {}, 0, 0); |
| + |
| + var paramsParser = new OpenPDFParamsParser(); |
| + paramsParser.namedDestinations['US'] = 0; |
| + paramsParser.namedDestinations['UY'] = 2; |
| + var url = "http://xyz.pdf"; |
| + var navigator = new Navigator(url, viewport, paramsParser); |
|
raymes
2015/01/28 01:33:45
Can we change Navigator to also pass in:
-A functi
Deepak
2015/01/28 05:57:24
Done.
|
| + |
| + var documentDimensions = new MockDocumentDimensions(); |
| + |
|
raymes
2015/01/28 01:33:45
nit: no need for a blank line
Deepak
2015/01/28 05:57:24
Done.
|
| + documentDimensions.addPage(100, 100); |
| + documentDimensions.addPage(200, 200); |
| + documentDimensions.addPage(100, 400); |
| + viewport.setDocumentDimensions(documentDimensions); |
| + viewport.setZoom(1); |
| + |
| + mockCallback.reset(); |
| + // This should move viewport to page 0. |
| + navigator.navigate(url + "#US", false); |
| + chrome.test.assertTrue(mockCallback.wasCalled); |
| + chrome.test.assertEq(0, viewport.position.x); |
| + chrome.test.assertEq(0, viewport.position.y); |
| + |
| + mockCallback.reset(); |
| + // This shouldl open "http://xyz.pdf#US" in newTab. So current tab viewport |
|
raymes
2015/01/28 01:33:45
nit: shouldl->should
nit: newTab->a new tab
Deepak
2015/01/28 05:57:24
Done.
|
| + // should not change and viewport position should remain same. |
| + navigator.navigate(url + "#US", true); |
| + chrome.test.assertFalse(mockCallback.wasCalled); |
| + chrome.test.assertEq(0, viewport.position.x); |
| + chrome.test.assertEq(0, viewport.position.y); |
| + |
| + mockCallback.reset(); |
| + // This should move viewport to page 2. |
| + navigator.navigate(url + "#UY", false); |
| + chrome.test.assertTrue(mockCallback.wasCalled); |
| + chrome.test.assertEq(0, viewport.position.x); |
| + chrome.test.assertEq(300, viewport.position.y); |
| + |
| + mockCallback.reset(); |
| + // #ABC is not a nemeddestination in the page so viewport should not change |
|
raymes
2015/01/28 01:33:45
nit: nemeddestination->named destination
Deepak
2015/01/28 05:57:24
Done.
|
| + // and viewport position should remain same. |
| + navigator.navigate(url + "#ABC", false); |
| + chrome.test.assertFalse(mockCallback.wasCalled); |
| + chrome.test.assertEq(0, viewport.position.x); |
| + chrome.test.assertEq(300, viewport.position.y); |
| + |
| + chrome.test.succeed(); |
| + }, |
| + |
| + /** |
| + * Test named destinations by getViewportFromUrlParams. |
| + */ |
| + function testNamedDestinations() { |
|
raymes
2015/01/28 01:33:45
nit: testParamsParser
Deepak
2015/01/28 05:57:24
Done.
Deepak
2015/01/28 05:57:24
Done.
|
| + var paramsParser = new OpenPDFParamsParser(); |
| + // Assigning page number for #nameddests. |
| + paramsParser.namedDestinations['RU'] = 26; |
| + paramsParser.namedDestinations['US'] = 0; |
| + paramsParser.namedDestinations['UY'] = 22; |
| + |
| + var url = "http://xyz.pdf"; |
| + |
| + // Checking #nameddest. |
| + var urlParams = paramsParser.getViewportFromUrlParams(url + "#RU"); |
| + chrome.test.assertEq(urlParams.page, 26); |
| + |
| + // Checking #nameddest=name. |
| + urlParams = paramsParser.getViewportFromUrlParams(url + "#nameddest=US"); |
| + chrome.test.assertEq(urlParams.page, 0); |
| + |
| + // Checking #page=pagenum nameddest.The document first page has a pagenum |
| + // value of 1. |
| + urlParams = paramsParser.getViewportFromUrlParams(url + "#page=6"); |
| + chrome.test.assertEq(urlParams.page, 5); |
| + |
| + // Checking #zoom=scale. |
| + urlParams = paramsParser.getViewportFromUrlParams(url + "#zoom=200"); |
| + chrome.test.assertEq(urlParams.zoom, 2); |
| + |
| + // Checking #zoom=scale,left,top. |
| + urlParams = paramsParser.getViewportFromUrlParams(url + |
| + "#zoom=200,100,200"); |
|
raymes
2015/01/28 01:33:45
nit: indentation. Use 4 space indent
Deepak
2015/01/28 05:57:24
Done.
|
| + chrome.test.assertEq(urlParams.zoom, 2); |
| + chrome.test.assertEq(urlParams.position.x, 100); |
| + chrome.test.assertEq(urlParams.position.y, 200); |
| + |
| + // Checking #nameddest=name and zoom=scale. |
| + urlParams = paramsParser.getViewportFromUrlParams(url + |
| + "#nameddest=UY&zoom=150"); |
| + chrome.test.assertEq(urlParams.page, 22); |
| + chrome.test.assertEq(urlParams.zoom, 1.5); |
| + |
| + // Checking #page=pagenum and zoom=scale. |
| + urlParams = paramsParser.getViewportFromUrlParams(url + |
| + "#page=2&zoom=250"); |
| + chrome.test.assertEq(urlParams.page, 1); |
| + chrome.test.assertEq(urlParams.zoom, 2.5); |
| + |
| + // Checking #nameddest=name and zoom=scale,left,top. |
| + urlParams = paramsParser.getViewportFromUrlParams(url + |
| + "#nameddest=UY&zoom=150,100,200"); |
| + chrome.test.assertEq(urlParams.page, 22); |
| + chrome.test.assertEq(urlParams.zoom, 1.5); |
| + chrome.test.assertEq(urlParams.position.x, 100); |
| + chrome.test.assertEq(urlParams.position.y, 200); |
| + |
| + // Checking #page=pagenum and zoom=scale,left,top. |
| + urlParams = paramsParser.getViewportFromUrlParams(url + |
| + "#page=2&zoom=250,100,200"); |
| + chrome.test.assertEq(urlParams.page, 1); |
| + chrome.test.assertEq(urlParams.zoom, 2.5); |
| + chrome.test.assertEq(urlParams.position.x, 100); |
| + chrome.test.assertEq(urlParams.position.y, 200); |
| + |
| + chrome.test.succeed(); |
| + } |
| +]; |
| + |
| +var scriptingAPI = new PDFScriptingAPI(window, window); |
| +scriptingAPI.setLoadCallback(function() { |
| + chrome.test.runTests(tests); |
| +}); |