Commit 25ca0549 authored by dpapad's avatar dpapad Committed by Commit Bot

PDF Viewer: Remove unnecessary test helper testAsync().

Instead, the "async" keyword is directly used on the functions that are
passed to the testing framework.

Bug: None
Change-Id: Ife6c66a85cf60cf2bc3d9ec47a33d088c44b38ee
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2531861
Commit-Queue: dpapad <dpapad@chromium.org>
Reviewed-by: default avatarRebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#826708}
parent 2271ebc3
...@@ -117,7 +117,6 @@ js_library("material_elements_test") { ...@@ -117,7 +117,6 @@ js_library("material_elements_test") {
js_library("download_controls_test") { js_library("download_controls_test") {
deps = [ deps = [
":test_util",
"//chrome/browser/resources/pdf:constants", "//chrome/browser/resources/pdf:constants",
"//chrome/browser/resources/pdf/elements:viewer-download-controls", "//chrome/browser/resources/pdf/elements:viewer-download-controls",
"//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
...@@ -202,7 +201,6 @@ js_library("viewer_pdf_toolbar_new_test") { ...@@ -202,7 +201,6 @@ js_library("viewer_pdf_toolbar_new_test") {
js_library("viewer_thumbnail_bar_test") { js_library("viewer_thumbnail_bar_test") {
deps = [ deps = [
":test_util",
"../webui:test_util.m", "../webui:test_util.m",
"//chrome/browser/resources/pdf:controller", "//chrome/browser/resources/pdf:controller",
"//chrome/browser/resources/pdf/elements:viewer-thumbnail", "//chrome/browser/resources/pdf/elements:viewer-thumbnail",
......
...@@ -5,8 +5,6 @@ ...@@ -5,8 +5,6 @@
import {eventToPromise, waitBeforeNextRender} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/_test_resources/webui/test_util.m.js'; import {eventToPromise, waitBeforeNextRender} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/_test_resources/webui/test_util.m.js';
import {ViewerPdfToolbarNewElement} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/elements/viewer-pdf-toolbar-new.js'; import {ViewerPdfToolbarNewElement} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/elements/viewer-pdf-toolbar-new.js';
import {testAsync, waitFor} from './test_util.js';
/** @return {!ViewerPdfToolbarNewElement} */ /** @return {!ViewerPdfToolbarNewElement} */
function createToolbar() { function createToolbar() {
document.body.innerHTML = ''; document.body.innerHTML = '';
...@@ -18,20 +16,17 @@ function createToolbar() { ...@@ -18,20 +16,17 @@ function createToolbar() {
const tests = [ const tests = [
function testHidingAnnotationsExitsAnnotationsMode() { function testHidingAnnotationsExitsAnnotationsMode() {
testAsync(async () => { const toolbar = createToolbar();
const toolbar = createToolbar(); toolbar.toggleAnnotation();
toolbar.toggleAnnotation(); // This is normally done by the parent in response to the event fired by
// This is normally done by the parent in response to the event fired by // toggleAnnotation().
// toggleAnnotation(). toolbar.annotationMode = true;
toolbar.annotationMode = true;
await toolbar.addEventListener('display-annotations-changed', async e => { toolbar.addEventListener('display-annotations-changed', async e => {
chrome.test.assertFalse(e.detail); chrome.test.assertFalse(e.detail);
await waitFor(() => toolbar.annotationMode === false); chrome.test.succeed();
chrome.test.succeed();
});
toolbar.shadowRoot.querySelector('#show-annotations-button').click();
}); });
toolbar.shadowRoot.querySelector('#show-annotations-button').click();
}, },
function testEnteringAnnotationsModeShowsAnnotations() { function testEnteringAnnotationsModeShowsAnnotations() {
const toolbar = createToolbar(); const toolbar = createToolbar();
...@@ -58,60 +53,57 @@ const tests = [ ...@@ -58,60 +53,57 @@ const tests = [
toolbar.shadowRoot.querySelector('#two-page-view-button').disabled); toolbar.shadowRoot.querySelector('#two-page-view-button').disabled);
chrome.test.succeed(); chrome.test.succeed();
}, },
function testRotateOrTwoUpViewTriggersDialog() { async function testRotateOrTwoUpViewTriggersDialog() {
const toolbar = createToolbar(); const toolbar = createToolbar();
toolbar.annotationAvailable = true; toolbar.annotationAvailable = true;
toolbar.pdfAnnotationsEnabled = true; toolbar.pdfAnnotationsEnabled = true;
toolbar.rotated = false; toolbar.rotated = false;
toolbar.twoUpViewEnabled = false; toolbar.twoUpViewEnabled = false;
testAsync(async () => { await waitBeforeNextRender(toolbar);
await waitBeforeNextRender(toolbar); chrome.test.assertFalse(toolbar.annotationMode);
chrome.test.assertFalse(toolbar.annotationMode);
// If rotation is enabled clicking the button shows the dialog. // If rotation is enabled clicking the button shows the dialog.
toolbar.rotated = true; toolbar.rotated = true;
const annotateButton = toolbar.shadowRoot.querySelector('#annotate'); const annotateButton = toolbar.shadowRoot.querySelector('#annotate');
chrome.test.assertFalse(annotateButton.disabled); chrome.test.assertFalse(annotateButton.disabled);
annotateButton.click(); annotateButton.click();
await waitBeforeNextRender(toolbar); await waitBeforeNextRender(toolbar);
let dialog = let dialog =
toolbar.shadowRoot.querySelector('viewer-annotations-mode-dialog'); toolbar.shadowRoot.querySelector('viewer-annotations-mode-dialog');
chrome.test.assertTrue(dialog.isOpen()); chrome.test.assertTrue(dialog.isOpen());
// Cancel the dialog. // Cancel the dialog.
const whenClosed = eventToPromise('close', dialog); const whenClosed = eventToPromise('close', dialog);
dialog.shadowRoot.querySelector('.cancel-button').click(); dialog.shadowRoot.querySelector('.cancel-button').click();
chrome.test.assertFalse(dialog.isOpen()); chrome.test.assertFalse(dialog.isOpen());
await whenClosed; await whenClosed;
// If both two up and rotate are enabled, the dialog opens. // If both two up and rotate are enabled, the dialog opens.
toolbar.twoUpViewEnabled = true; toolbar.twoUpViewEnabled = true;
chrome.test.assertFalse(annotateButton.disabled); chrome.test.assertFalse(annotateButton.disabled);
annotateButton.click(); annotateButton.click();
await waitBeforeNextRender(toolbar); await waitBeforeNextRender(toolbar);
dialog = dialog = toolbar.shadowRoot.querySelector('viewer-annotations-mode-dialog');
toolbar.shadowRoot.querySelector('viewer-annotations-mode-dialog'); chrome.test.assertTrue(dialog.isOpen());
chrome.test.assertTrue(dialog.isOpen());
// When "Edit" is clicked, the toolbar should fire // When "Edit" is clicked, the toolbar should fire
// annotation-mode-dialog-confirmed. // annotation-mode-dialog-confirmed.
const whenConfirmed = const whenConfirmed =
eventToPromise('annotation-mode-dialog-confirmed', toolbar); eventToPromise('annotation-mode-dialog-confirmed', toolbar);
dialog.shadowRoot.querySelector('.action-button').click(); dialog.shadowRoot.querySelector('.action-button').click();
await whenConfirmed; await whenConfirmed;
chrome.test.assertFalse(dialog.isOpen()); chrome.test.assertFalse(dialog.isOpen());
await waitBeforeNextRender(toolbar); await waitBeforeNextRender(toolbar);
// Dialog shows in two up view (un-rotated). // Dialog shows in two up view (un-rotated).
toolbar.rotated = false; toolbar.rotated = false;
chrome.test.assertFalse(annotateButton.disabled); chrome.test.assertFalse(annotateButton.disabled);
annotateButton.click(); annotateButton.click();
await waitBeforeNextRender(toolbar); await waitBeforeNextRender(toolbar);
dialog = dialog = toolbar.shadowRoot.querySelector('viewer-annotations-mode-dialog');
toolbar.shadowRoot.querySelector('viewer-annotations-mode-dialog'); chrome.test.assertTrue(dialog.isOpen());
chrome.test.assertTrue(dialog.isOpen()); chrome.test.succeed();
});
} }
]; ];
......
...@@ -7,14 +7,12 @@ import {ViewerDownloadControlsElement} from 'chrome-extension://mhjfbmdgcfjbbpae ...@@ -7,14 +7,12 @@ import {ViewerDownloadControlsElement} from 'chrome-extension://mhjfbmdgcfjbbpae
import {listenOnce} from 'chrome://resources/js/util.m.js'; import {listenOnce} from 'chrome://resources/js/util.m.js';
import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js'; import {flush} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {testAsync} from './test_util.js';
const tests = [ const tests = [
/** /**
* Test that the toolbar shows an option to download the edited PDF if * Test that the toolbar shows an option to download the edited PDF if
* available. * available.
*/ */
function testEditedPdfOption() { async function testEditedPdfOption() {
document.body.innerHTML = ''; document.body.innerHTML = '';
/** @type {!ViewerDownloadControlsElement} */ /** @type {!ViewerDownloadControlsElement} */
const downloadsElement = /** @type {!ViewerDownloadControlsElement} */ ( const downloadsElement = /** @type {!ViewerDownloadControlsElement} */ (
...@@ -50,80 +48,79 @@ const tests = [ ...@@ -50,80 +48,79 @@ const tests = [
downloadsElement, 'download-menu-shown-for-testing', resolve)); downloadsElement, 'download-menu-shown-for-testing', resolve));
}; };
testAsync(async () => { // No edits, and feature is off.
// No edits, and feature is off. let onSave = whenSave();
let onSave = whenSave(); downloadButton.click();
downloadButton.click(); let requestType = await onSave;
let requestType = await onSave; chrome.test.assertFalse(actionMenu.open);
chrome.test.assertFalse(actionMenu.open); chrome.test.assertEq(SaveRequestType.ORIGINAL, requestType);
chrome.test.assertEq(SaveRequestType.ORIGINAL, requestType); chrome.test.assertEq(1, numRequests);
chrome.test.assertEq(1, numRequests);
// Still does not show the menu if there are no edits.
// Still does not show the menu if there are no edits. downloadsElement.pdfFormSaveEnabled = true;
downloadsElement.pdfFormSaveEnabled = true; onSave = whenSave();
onSave = whenSave(); downloadButton.click();
downloadButton.click(); requestType = await onSave;
requestType = await onSave; chrome.test.assertFalse(actionMenu.open);
chrome.test.assertFalse(actionMenu.open); chrome.test.assertEq(SaveRequestType.ORIGINAL, requestType);
chrome.test.assertEq(SaveRequestType.ORIGINAL, requestType); chrome.test.assertEq(2, numRequests);
chrome.test.assertEq(2, numRequests);
// Set form field focused.
// Set form field focused. downloadsElement.isFormFieldFocused = true;
downloadsElement.isFormFieldFocused = true; onSave = whenSave();
onSave = whenSave(); downloadButton.click();
downloadButton.click();
// Unfocus, without making any edits. Saves the original document.
// Unfocus, without making any edits. Saves the original document. downloadsElement.isFormFieldFocused = false;
downloadsElement.isFormFieldFocused = false; requestType = await onSave;
requestType = await onSave; chrome.test.assertFalse(actionMenu.open);
chrome.test.assertFalse(actionMenu.open); chrome.test.assertEq(SaveRequestType.ORIGINAL, requestType);
chrome.test.assertEq(SaveRequestType.ORIGINAL, requestType); chrome.test.assertEq(3, numRequests);
chrome.test.assertEq(3, numRequests);
// Focus again.
// Focus again. downloadsElement.isFormFieldFocused = true;
downloadsElement.isFormFieldFocused = true; downloadButton.click();
downloadButton.click();
// Set editing mode and change the form focus. Now, the menu should
// Set editing mode and change the form focus. Now, the menu should // open.
// open. downloadsElement.hasEdits = true;
downloadsElement.hasEdits = true; downloadsElement.isFormFieldFocused = false;
downloadsElement.isFormFieldFocused = false; await whenDownloadMenuShown();
await whenDownloadMenuShown(); chrome.test.assertTrue(actionMenu.open);
chrome.test.assertTrue(actionMenu.open); chrome.test.assertEq(3, numRequests);
chrome.test.assertEq(3, numRequests);
// Click on "Edited".
// Click on "Edited". const buttons = downloadsElement.shadowRoot.querySelectorAll('button');
const buttons = downloadsElement.shadowRoot.querySelectorAll('button'); onSave = whenSave();
onSave = whenSave(); buttons[0].click();
buttons[0].click(); requestType = await onSave;
requestType = await onSave; chrome.test.assertEq(SaveRequestType.EDITED, requestType);
chrome.test.assertEq(SaveRequestType.EDITED, requestType); chrome.test.assertFalse(actionMenu.open);
chrome.test.assertFalse(actionMenu.open); chrome.test.assertEq(4, numRequests);
chrome.test.assertEq(4, numRequests);
// Click again to re-open menu.
// Click again to re-open menu. downloadButton.click();
downloadButton.click(); await whenDownloadMenuShown();
await whenDownloadMenuShown(); chrome.test.assertTrue(actionMenu.open);
chrome.test.assertTrue(actionMenu.open);
// Click on "Original".
// Click on "Original". onSave = whenSave();
onSave = whenSave(); buttons[1].click();
buttons[1].click(); requestType = await onSave;
requestType = await onSave; chrome.test.assertEq(SaveRequestType.ORIGINAL, requestType);
chrome.test.assertEq(SaveRequestType.ORIGINAL, requestType); chrome.test.assertFalse(actionMenu.open);
chrome.test.assertFalse(actionMenu.open); chrome.test.assertEq(5, numRequests);
chrome.test.assertEq(5, numRequests);
// Even if the document has been edited, always download the original
// Even if the document has been edited, always download the original // if the feature flag is off.
// if the feature flag is off. downloadsElement.pdfFormSaveEnabled = false;
downloadsElement.pdfFormSaveEnabled = false; onSave = whenSave();
onSave = whenSave(); downloadButton.click();
downloadButton.click(); requestType = await onSave;
requestType = await onSave; chrome.test.assertFalse(actionMenu.open);
chrome.test.assertFalse(actionMenu.open); chrome.test.assertEq(SaveRequestType.ORIGINAL, requestType);
chrome.test.assertEq(SaveRequestType.ORIGINAL, requestType); chrome.test.assertEq(6, numRequests);
chrome.test.assertEq(6, numRequests); chrome.test.succeed();
});
}, },
]; ];
......
...@@ -7,7 +7,7 @@ import {NavigatorDelegate, PdfNavigator, WindowOpenDisposition} from 'chrome-ext ...@@ -7,7 +7,7 @@ import {NavigatorDelegate, PdfNavigator, WindowOpenDisposition} from 'chrome-ext
import {OpenPdfParamsParser} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/open_pdf_params_parser.js'; import {OpenPdfParamsParser} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/open_pdf_params_parser.js';
import {PDFScriptingAPI} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/pdf_scripting_api.js'; import {PDFScriptingAPI} from 'chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/pdf_scripting_api.js';
import {getZoomableViewport, MockDocumentDimensions, MockElement, MockSizer, MockViewportChangedCallback, testAsync} from './test_util.js'; import {getZoomableViewport, MockDocumentDimensions, MockElement, MockSizer, MockViewportChangedCallback} from './test_util.js';
/** @implements {NavigatorDelegate} */ /** @implements {NavigatorDelegate} */
class MockNavigatorDelegate { class MockNavigatorDelegate {
...@@ -121,7 +121,7 @@ const tests = [ ...@@ -121,7 +121,7 @@ const tests = [
* Test navigation within the page, opening a url in the same tab and * Test navigation within the page, opening a url in the same tab and
* opening a url in a new tab. * opening a url in a new tab.
*/ */
function testNavigate() { async function testNavigate() {
const mockWindow = new MockElement(100, 100, null); const mockWindow = new MockElement(100, 100, null);
const mockSizer = new MockSizer(); const mockSizer = new MockSizer();
const mockCallback = new MockViewportChangedCallback(); const mockCallback = new MockViewportChangedCallback();
...@@ -153,54 +153,53 @@ const tests = [ ...@@ -153,54 +153,53 @@ const tests = [
viewport.setDocumentDimensions(documentDimensions); viewport.setDocumentDimensions(documentDimensions);
viewport.setZoom(1); viewport.setZoom(1);
testAsync(async () => { mockCallback.reset();
mockCallback.reset(); let navigatingDone =
let navigatingDone = eventToPromise('navigate-for-testing', navigator.getEventTarget());
eventToPromise('navigate-for-testing', navigator.getEventTarget()); // This should move viewport to page 0.
// This should move viewport to page 0. navigator.navigate(url + '#US', WindowOpenDisposition.CURRENT_TAB);
navigator.navigate(url + '#US', WindowOpenDisposition.CURRENT_TAB); await navigatingDone;
await navigatingDone; chrome.test.assertTrue(mockCallback.wasCalled);
chrome.test.assertTrue(mockCallback.wasCalled); chrome.test.assertEq(0, viewport.position.x);
chrome.test.assertEq(0, viewport.position.x); chrome.test.assertEq(0, viewport.position.y);
chrome.test.assertEq(0, viewport.position.y);
mockCallback.reset();
mockCallback.reset(); navigatorDelegate.reset();
navigatorDelegate.reset(); navigatingDone =
navigatingDone = eventToPromise('navigate-for-testing', navigator.getEventTarget());
eventToPromise('navigate-for-testing', navigator.getEventTarget()); // This should open "http://xyz.pdf#US" in a new tab. So current tab
// This should open "http://xyz.pdf#US" in a new tab. So current tab // viewport should not update and viewport position should remain same.
// viewport should not update and viewport position should remain same. navigator.navigate(url + '#US', WindowOpenDisposition.NEW_BACKGROUND_TAB);
navigator.navigate(url + '#US', WindowOpenDisposition.NEW_BACKGROUND_TAB); await navigatingDone;
await navigatingDone; chrome.test.assertFalse(mockCallback.wasCalled);
chrome.test.assertFalse(mockCallback.wasCalled); chrome.test.assertTrue(navigatorDelegate.navigateInNewTabCalled);
chrome.test.assertTrue(navigatorDelegate.navigateInNewTabCalled); chrome.test.assertEq(0, viewport.position.x);
chrome.test.assertEq(0, viewport.position.x); chrome.test.assertEq(0, viewport.position.y);
chrome.test.assertEq(0, viewport.position.y);
mockCallback.reset();
mockCallback.reset(); navigatingDone =
navigatingDone = eventToPromise('navigate-for-testing', navigator.getEventTarget());
eventToPromise('navigate-for-testing', navigator.getEventTarget()); // This should move viewport to page 2.
// This should move viewport to page 2. navigator.navigate(url + '#UY', WindowOpenDisposition.CURRENT_TAB);
navigator.navigate(url + '#UY', WindowOpenDisposition.CURRENT_TAB); await navigatingDone;
await navigatingDone; chrome.test.assertTrue(mockCallback.wasCalled);
chrome.test.assertTrue(mockCallback.wasCalled); chrome.test.assertEq(0, viewport.position.x);
chrome.test.assertEq(0, viewport.position.x); chrome.test.assertEq(300, viewport.position.y);
chrome.test.assertEq(300, viewport.position.y);
mockCallback.reset();
mockCallback.reset(); navigatorDelegate.reset();
navigatorDelegate.reset(); navigatingDone =
navigatingDone = eventToPromise('navigate-for-testing', navigator.getEventTarget());
eventToPromise('navigate-for-testing', navigator.getEventTarget()); // #ABC is not a named destination in the page so viewport should not
// #ABC is not a named destination in the page so viewport should not // update, and the viewport position should remain same as testNavigate3's
// update, and the viewport position should remain same as testNavigate3's // navigating results, as this link will open in the same tab.
// navigating results, as this link will open in the same tab. navigator.navigate(url + '#ABC', WindowOpenDisposition.CURRENT_TAB);
navigator.navigate(url + '#ABC', WindowOpenDisposition.CURRENT_TAB); await navigatingDone;
await navigatingDone; chrome.test.assertFalse(mockCallback.wasCalled);
chrome.test.assertFalse(mockCallback.wasCalled); chrome.test.assertTrue(navigatorDelegate.navigateInCurrentTabCalled);
chrome.test.assertTrue(navigatorDelegate.navigateInCurrentTabCalled); chrome.test.assertEq(0, viewport.position.x);
chrome.test.assertEq(0, viewport.position.x); chrome.test.assertEq(300, viewport.position.y);
chrome.test.assertEq(300, viewport.position.y); chrome.test.succeed();
});
}, },
/** /**
* Test opening a url in the same tab, in a new tab, and in a new window for * Test opening a url in the same tab, in a new tab, and in a new window for
......
...@@ -323,16 +323,6 @@ export function getZoomableViewport( ...@@ -323,16 +323,6 @@ export function getZoomableViewport(
return viewport; return viewport;
} }
/** @param {Function} f */
export async function testAsync(f) {
try {
await f();
chrome.test.succeed();
} catch (e) {
chrome.test.fail(e.stack);
}
}
/** /**
* Async spin until predicate() returns true. * Async spin until predicate() returns true.
* @param {function(): boolean} predicate * @param {function(): boolean} predicate
......
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