Chromium Code Reviews| Index: chrome/test/data/pdf/navigator_test.js |
| diff --git a/chrome/test/data/pdf/navigator_test.js b/chrome/test/data/pdf/navigator_test.js |
| index eb53a363ecdb793e273e3855ef8e45318fa17500..2c2f2c6e7e062b606ce266cac4bc146971a71f4e 100644 |
| --- a/chrome/test/data/pdf/navigator_test.js |
| +++ b/chrome/test/data/pdf/navigator_test.js |
| @@ -2,20 +2,7 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -function NavigateInCurrentTabCallback() { |
| - this.navigateCalled = false; |
| - this.url = undefined; |
| - this.callback = function(url) { |
| - this.navigateCalled = true; |
| - this.url = url; |
| - }.bind(this); |
| - this.reset = function() { |
| - this.navigateCalled = false; |
| - this.url = undefined; |
| - }; |
| -} |
| - |
| -function NavigateInNewTabCallback() { |
| +function NavigateCallback() { |
|
raymes
2016/09/06 04:36:07
We would make this into a MockNavigatorDelegate cl
jaepark
2016/09/06 20:32:47
Done.
|
| this.navigateCalled = false; |
| this.url = undefined; |
| this.callback = function(url) { |
| @@ -29,10 +16,10 @@ function NavigateInNewTabCallback() { |
| } |
| /** |
| - * Given a |navigator|, navigate to |url| in the current tab or new tab, |
| - * depending on the value of |openInNewTab|. Use |viewportChangedCallback| |
| - * and |navigateCallback| to check the callbacks, and that the navigation |
| - * to |expectedResultUrl| happened. |
| + * Given a |navigator|, navigate to |url| in the current tab, a new tab, or |
| + * a new window depending on the value of |disposition|. |
| + * Use |viewportChangedCallback| and |navigateCallback| to check the callbacks, |
| + * and that the navigation to |expectedResultUrl| happened. |
| */ |
| function doNavigationUrlTest( |
| navigator, |
| @@ -50,22 +37,42 @@ function doNavigationUrlTest( |
| } |
| /** |
| - * Helper function to run doNavigationUrlTest() for the current tab and a new |
| - * tab. |
| + * Helper function to run doNavigationUrlTest() for the current tab, a new |
| + * tab, and a new window. |
| */ |
| -function doNavigationUrlTestInCurrentTabAndNewTab( |
| - navigator, |
| - url, |
| - expectedResultUrl, |
| - viewportChangedCallback, |
| - navigateInCurrentTabCallback, |
| - navigateInNewTabCallback) { |
| +function doNavigationUrlTests(originalUrl, url, expectedResultUrl) { |
| + var mockWindow = new MockWindow(100, 100); |
| + var mockSizer = new MockSizer(); |
| + var mockViewportChangedCallback = new MockViewportChangedCallback(); |
| + var viewport = new Viewport(mockWindow, mockSizer, |
| + mockViewportChangedCallback.callback, |
| + function() {}, function() {}, 0, 1, 0); |
| + |
| + var paramsParser = new OpenPDFParamsParser(function(name) { |
| + paramsParser.onNamedDestinationReceived(-1); |
| + }); |
| + |
| + var navigateInCurrentTabCallback = new NavigateCallback(); |
| + var navigateInNewTabCallback = new NavigateCallback(); |
| + var navigateInNewWindowCallback = new NavigateCallback(); |
| + |
| + var navigateCallback = { |
| + currentTabCallback: navigateInCurrentTabCallback.callback, |
| + newTabCallback: navigateInNewTabCallback.callback, |
| + newWindowCallback: navigateInNewWindowCallback.callback |
| + }; |
| + var navigator = new Navigator(originalUrl, viewport, paramsParser, |
| + navigateCallback); |
|
raymes
2016/09/06 04:36:07
We could just pass in a new MockNavigatorDelegate
jaepark
2016/09/06 20:32:47
Done.
|
| + |
| doNavigationUrlTest(navigator, url, |
| Navigator.WindowOpenDisposition.CURRENT_TAB, expectedResultUrl, |
| - viewportChangedCallback, navigateInCurrentTabCallback); |
| + mockViewportChangedCallback, navigateInCurrentTabCallback); |
|
raymes
2016/09/06 04:36:07
We could pass in the appropriate state of the Mock
jaepark
2016/09/06 20:32:47
Done.
|
| doNavigationUrlTest(navigator, url, |
| Navigator.WindowOpenDisposition.NEW_BACKGROUND_TAB, expectedResultUrl, |
| - viewportChangedCallback, navigateInNewTabCallback); |
| + mockViewportChangedCallback, navigateInNewTabCallback); |
| + doNavigationUrlTest(navigator, url, |
| + Navigator.WindowOpenDisposition.NEW_WINDOW, expectedResultUrl, |
| + mockViewportChangedCallback, navigateInNewWindowCallback); |
| } |
| var tests = [ |
| @@ -90,11 +97,17 @@ var tests = [ |
| }); |
| var url = "http://xyz.pdf"; |
| - var navigateInCurrentTabCallback = new NavigateInCurrentTabCallback(); |
| - var navigateInNewTabCallback = new NavigateInNewTabCallback(); |
| + var navigateInCurrentTabCallback = new NavigateCallback(); |
| + var navigateInNewTabCallback = new NavigateCallback(); |
| + var navigateInNewWindowCallback = new NavigateCallback(); |
| + |
| + var navigateCallback = { |
| + currentTabCallback: navigateInCurrentTabCallback.callback, |
| + newTabCallback: navigateInNewTabCallback.callback, |
| + newWindowCallback: navigateInNewWindowCallback.callback |
| + }; |
| var navigator = new Navigator(url, viewport, paramsParser, |
| - navigateInCurrentTabCallback.callback, |
| - navigateInNewTabCallback.callback); |
| + navigateCallback); |
| var documentDimensions = new MockDocumentDimensions(); |
| documentDimensions.addPage(100, 100); |
| @@ -145,153 +158,87 @@ var tests = [ |
| chrome.test.succeed(); |
| }, |
| /** |
| - * Test opening a url in the same tab and opening a url in a new tab for |
| + * Test opening a url in the same tab, in a new tab, and in a new window for |
| * a http:// url as the current location. The destination url may not have |
| * a valid scheme, so the navigator must determine the url by following |
| * similar heuristics as Adobe Acrobat Reader. |
| */ |
| function testNavigateForLinksWithoutScheme() { |
| - 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, 1, 0); |
| - |
| - var paramsParser = new OpenPDFParamsParser(function(name) { |
| - paramsParser.onNamedDestinationReceived(-1); |
| - }); |
| var url = "http://www.example.com/subdir/xyz.pdf"; |
| - var navigateInCurrentTabCallback = new NavigateInCurrentTabCallback(); |
| - var navigateInNewTabCallback = new NavigateInNewTabCallback(); |
| - var navigator = new Navigator(url, viewport, paramsParser, |
| - navigateInCurrentTabCallback.callback, |
| - navigateInNewTabCallback.callback); |
| - |
| // Sanity check. |
| - doNavigationUrlTestInCurrentTabAndNewTab( |
| - navigator, |
| + doNavigationUrlTests( |
| + url, |
| 'https://www.foo.com/bar.pdf', |
| - 'https://www.foo.com/bar.pdf', |
| - mockCallback, |
| - navigateInCurrentTabCallback, |
| - navigateInNewTabCallback); |
| + 'https://www.foo.com/bar.pdf'); |
| // Open relative links. |
| - doNavigationUrlTestInCurrentTabAndNewTab( |
| - navigator, |
| + doNavigationUrlTests( |
| + url, |
| 'foo/bar.pdf', |
| - 'http://www.example.com/subdir/foo/bar.pdf', |
| - mockCallback, |
| - navigateInCurrentTabCallback, |
| - navigateInNewTabCallback); |
| - doNavigationUrlTestInCurrentTabAndNewTab( |
| - navigator, |
| + 'http://www.example.com/subdir/foo/bar.pdf'); |
| + doNavigationUrlTests( |
| + url, |
| 'foo.com/bar.pdf', |
| - 'http://www.example.com/subdir/foo.com/bar.pdf', |
| - mockCallback, |
| - navigateInCurrentTabCallback, |
| - navigateInNewTabCallback); |
| + 'http://www.example.com/subdir/foo.com/bar.pdf'); |
| // The expected result is not normalized here. |
| - doNavigationUrlTestInCurrentTabAndNewTab( |
| - navigator, |
| + doNavigationUrlTests( |
| + url, |
| '../www.foo.com/bar.pdf', |
| - 'http://www.example.com/subdir/../www.foo.com/bar.pdf', |
| - mockCallback, |
| - navigateInCurrentTabCallback, |
| - navigateInNewTabCallback); |
| + 'http://www.example.com/subdir/../www.foo.com/bar.pdf'); |
| // Open an absolute link. |
| - doNavigationUrlTestInCurrentTabAndNewTab( |
| - navigator, |
| + doNavigationUrlTests( |
| + url, |
| '/foodotcom/bar.pdf', |
| - 'http://www.example.com/foodotcom/bar.pdf', |
| - mockCallback, |
| - navigateInCurrentTabCallback, |
| - navigateInNewTabCallback); |
| + 'http://www.example.com/foodotcom/bar.pdf'); |
| // Open a http url without a scheme. |
| - doNavigationUrlTestInCurrentTabAndNewTab( |
| - navigator, |
| + doNavigationUrlTests( |
| + url, |
| 'www.foo.com/bar.pdf', |
| - 'http://www.foo.com/bar.pdf', |
| - mockCallback, |
| - navigateInCurrentTabCallback, |
| - navigateInNewTabCallback); |
| + 'http://www.foo.com/bar.pdf'); |
| // Test three dots. |
| - doNavigationUrlTestInCurrentTabAndNewTab( |
| - navigator, |
| + doNavigationUrlTests( |
| + url, |
| '.../bar.pdf', |
| - 'http://www.example.com/subdir/.../bar.pdf', |
| - mockCallback, |
| - navigateInCurrentTabCallback, |
| - navigateInNewTabCallback); |
| + 'http://www.example.com/subdir/.../bar.pdf'); |
| // Test forward slashes. |
| - doNavigationUrlTestInCurrentTabAndNewTab( |
| - navigator, |
| + doNavigationUrlTests( |
| + url, |
| '..\\bar.pdf', |
| - 'http://www.example.com/subdir/..\\bar.pdf', |
| - mockCallback, |
| - navigateInCurrentTabCallback, |
| - navigateInNewTabCallback); |
| - doNavigationUrlTestInCurrentTabAndNewTab( |
| - navigator, |
| + 'http://www.example.com/subdir/..\\bar.pdf'); |
| + doNavigationUrlTests( |
| + url, |
| '.\\bar.pdf', |
| - 'http://www.example.com/subdir/.\\bar.pdf', |
| - mockCallback, |
| - navigateInCurrentTabCallback, |
| - navigateInNewTabCallback); |
| - doNavigationUrlTestInCurrentTabAndNewTab( |
| - navigator, |
| + 'http://www.example.com/subdir/.\\bar.pdf'); |
| + doNavigationUrlTests( |
| + url, |
| '\\bar.pdf', |
| - 'http://www.example.com/subdir/\\bar.pdf', |
| - mockCallback, |
| - navigateInCurrentTabCallback, |
| - navigateInNewTabCallback); |
| + 'http://www.example.com/subdir/\\bar.pdf'); |
| // Regression test for https://crbug.com/569040 |
| - doNavigationUrlTestInCurrentTabAndNewTab( |
| - navigator, |
| - 'http://something.else/foo#page=5', |
| + doNavigationUrlTests( |
| + url, |
| 'http://something.else/foo#page=5', |
| - mockCallback, |
| - navigateInCurrentTabCallback, |
| - navigateInNewTabCallback); |
| + 'http://something.else/foo#page=5'); |
| chrome.test.succeed(); |
| }, |
| /** |
| - * Test opening a url in the same tab and opening a url in a new tab with a |
| - * file:/// url as the current location. |
| + * Test opening a url in the same tab, in a new tab, and in a new window with |
| + * a file:/// url as the current location. |
| */ |
| function testNavigateFromLocalFile() { |
| - 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, 1, 0); |
| - |
| - var paramsParser = new OpenPDFParamsParser(function(name) { |
| - paramsParser.onNamedDestinationReceived(-1); |
| - }); |
| var url = "file:///some/path/to/myfile.pdf"; |
| - var navigateInCurrentTabCallback = new NavigateInCurrentTabCallback(); |
| - var navigateInNewTabCallback = new NavigateInNewTabCallback(); |
| - var navigator = new Navigator(url, viewport, paramsParser, |
| - navigateInCurrentTabCallback.callback, |
| - navigateInNewTabCallback.callback); |
| - |
| // Open an absolute link. |
| - doNavigationUrlTestInCurrentTabAndNewTab( |
| - navigator, |
| + doNavigationUrlTests( |
| + url, |
| '/foodotcom/bar.pdf', |
| - 'file:///foodotcom/bar.pdf', |
| - mockCallback, |
| - navigateInCurrentTabCallback, |
| - navigateInNewTabCallback); |
| + 'file:///foodotcom/bar.pdf'); |
| chrome.test.succeed(); |
| } |