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

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

Issue 838723003: Testcases for nameddests and navigate for PDF (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Correcting Indentation. Created 5 years, 11 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
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);
+});

Powered by Google App Engine
This is Rietveld 408576698