Commit ebfd2db6 authored by rbpotter's avatar rbpotter Committed by Commit Bot

Print Preview: Closure compile more tests

Adding closure compilation for:
link_container_test
media_size_settings_test
margins_settings_test

Bug: 1000989
Change-Id: Ie7b2a06e157591e3a27eec9d46933ae8853237ef
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2360502
Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
Reviewed-by: default avatarJohn Lee <johntlee@chromium.org>
Cr-Commit-Position: refs/heads/master@{#799485}
parent 7589c162
......@@ -34,10 +34,10 @@ js_type_check("closure_compile") {
":invalid_settings_browsertest",
":key_event_test",
":layout_settings_test",
":link_container_test",
":margins_settings_test",
":media_size_settings_test",
#":link_container_test",
#":margins_settings_test",
#":media_size_settings_test",
#":model_settings_availability_test",
#":model_settings_policy_test",
#":model_test",
......@@ -401,3 +401,37 @@ js_library("layout_settings_test") {
]
externs_list = [ "$externs_path/mocha-2.5.js" ]
}
js_library("link_container_test") {
deps = [
":print_preview_test_utils",
"..:chai_assert",
"..:test_util.m",
"//chrome/browser/resources/print_preview:print_preview",
"//ui/webui/resources/js:assert.m",
"//ui/webui/resources/js:cr.m",
]
externs_list = [ "$externs_path/mocha-2.5.js" ]
}
js_library("margins_settings_test") {
deps = [
":print_preview_test_utils",
"..:chai_assert",
"..:test_util.m",
"//chrome/browser/resources/print_preview:print_preview",
"//ui/webui/resources/js:assert.m",
]
externs_list = [ "$externs_path/mocha-2.5.js" ]
}
js_library("media_size_settings_test") {
deps = [
":print_preview_test_utils",
"..:chai_assert",
"..:test_util.m",
"//chrome/browser/resources/print_preview:print_preview",
"//ui/webui/resources/js:assert.m",
]
externs_list = [ "$externs_path/mocha-2.5.js" ]
}
......@@ -5,10 +5,14 @@
import {Destination, DestinationConnectionStatus, DestinationOrigin, DestinationType} from 'chrome://print/print_preview.js';
import {assert} from 'chrome://resources/js/assert.m.js';
import {isMac, isWindows} from 'chrome://resources/js/cr.m.js';
import {getCddTemplate} from 'chrome://test/print_preview/print_preview_test_utils.js';
import {eventToPromise} from 'chrome://test/test_util.m.js';
import {assertEquals, assertFalse, assertTrue} from '../chai_assert.js';
import {eventToPromise} from '../test_util.m.js';
import {getCddTemplate} from './print_preview_test_utils.js';
window.link_container_test = {};
const link_container_test = window.link_container_test;
link_container_test.suiteName = 'LinkContainerTest';
/** @enum {string} */
link_container_test.TestNames = {
......@@ -19,13 +23,14 @@ link_container_test.TestNames = {
};
suite(link_container_test.suiteName, function() {
/** @type {?PrintPreviewLinkContainerElement} */
let linkContainer = null;
/** @type {!PrintPreviewLinkContainerElement} */
let linkContainer;
/** @override */
setup(function() {
PolymerTest.clearBody();
linkContainer = document.createElement('print-preview-link-container');
document.body.innerHTML = '';
linkContainer = /** @type {!PrintPreviewLinkContainerElement} */ (
document.createElement('print-preview-link-container'));
document.body.appendChild(linkContainer);
/** Set inputs to some defaults. */
......@@ -41,7 +46,8 @@ suite(link_container_test.suiteName, function() {
/** Tests that the system dialog link is hidden in App Kiosk mode. */
test(assert(link_container_test.TestNames.HideInAppKioskMode), function() {
const systemDialogLink = linkContainer.$.systemDialogLink;
const systemDialogLink =
/** @type {!HTMLDivElement} */ (linkContainer.$$('#systemDialogLink'));
assertFalse(systemDialogLink.hidden);
linkContainer.set('appKioskMode', true);
assertTrue(systemDialogLink.hidden);
......@@ -53,10 +59,13 @@ suite(link_container_test.suiteName, function() {
*/
test(assert(link_container_test.TestNames.SystemDialogLinkClick), function() {
const promise = eventToPromise('print-with-system-dialog', linkContainer);
const throbber = linkContainer.$.systemDialogThrobber;
const throbber = /** @type {!HTMLDivElement} */ (
linkContainer.$$('#systemDialogThrobber'));
assertTrue(throbber.hidden);
linkContainer.$.systemDialogLink.click();
const link =
/** @type {!HTMLDivElement} */ (linkContainer.$$('#systemDialogLink'));
link.click();
return promise.then(function() {
assertEquals(isWindows, throbber.hidden);
});
......@@ -68,10 +77,13 @@ suite(link_container_test.suiteName, function() {
* and enabled on other platforms.
*/
test(assert(link_container_test.TestNames.InvalidState), function() {
const systemDialogLink = linkContainer.$.systemDialogLink;
const openInPreviewLink =
isMac ? linkContainer.$.openPdfInPreviewLink : null;
const systemDialogLink =
/** @type {!HTMLDivElement} */ (linkContainer.$$('#systemDialogLink'));
/**
* @param {!HTMLDivElement} link
* @param {boolean} disabled
*/
const validateLinkState = (link, disabled) => {
assertFalse(link.hidden);
assertEquals(!disabled, link.hasAttribute('actionable'));
......@@ -79,7 +91,10 @@ suite(link_container_test.suiteName, function() {
};
validateLinkState(systemDialogLink, false);
let openInPreviewLink;
if (isMac) {
openInPreviewLink = /** @type {!HTMLDivElement} */ (
linkContainer.$$('#openPdfInPreviewLink'));
validateLinkState(openInPreviewLink, false);
}
......@@ -88,7 +103,7 @@ suite(link_container_test.suiteName, function() {
linkContainer.disabled = true;
validateLinkState(systemDialogLink, isWindows);
if (isMac) {
validateLinkState(openInPreviewLink, true);
validateLinkState(assert(openInPreviewLink), true);
}
});
......@@ -98,11 +113,12 @@ suite(link_container_test.suiteName, function() {
*/
test(
assert(link_container_test.TestNames.OpenInPreviewLinkClick), function() {
const throbber = linkContainer.$.openPdfInPreviewThrobber;
const throbber = /** @type {!HTMLDivElement} */ (
linkContainer.$$('#openPdfInPreviewThrobber'));
assertTrue(throbber.hidden);
const promise = eventToPromise('open-pdf-in-preview', linkContainer);
linkContainer.$.openPdfInPreviewLink.click();
linkContainer.$$('#openPdfInPreviewLink').click();
return promise.then(function() {
assertFalse(throbber.hidden);
});
......
......@@ -4,55 +4,59 @@
import {MarginsType, State} from 'chrome://print/print_preview.js';
import {assert} from 'chrome://resources/js/assert.m.js';
import {selectOption} from 'chrome://test/print_preview/print_preview_test_utils.js';
import {eventToPromise, fakeDataBind} from 'chrome://test/test_util.m.js';
suite('MarginsSettingsTest', function() {
let marginsSection = null;
import {assertEquals, assertFalse, assertTrue} from '../chai_assert.js';
import {eventToPromise, fakeDataBind} from '../test_util.m.js';
import {selectOption} from './print_preview_test_utils.js';
let marginsTypeEnum = null;
suite('MarginsSettingsTest', function() {
/** @type {!PrintPreviewMarginsSettingsElement} */
let marginsSection;
let model = null;
/** @type {!PrintPreviewModelElement} */
let model;
/** @override */
setup(function() {
PolymerTest.clearBody();
model = document.createElement('print-preview-model');
document.body.innerHTML = '';
model = /** @type {!PrintPreviewModelElement} */ (
document.createElement('print-preview-model'));
document.body.appendChild(model);
marginsSection = document.createElement('print-preview-margins-settings');
marginsSection = /** @type {!PrintPreviewMarginsSettingsElement} */ (
document.createElement('print-preview-margins-settings'));
document.body.appendChild(marginsSection);
marginsSection.settings = model.settings;
marginsSection.disabled = false;
marginsSection.state = State.READY;
fakeDataBind(model, marginsSection, 'settings');
marginsTypeEnum = MarginsType;
});
// Tests that setting the setting updates the UI.
test('set setting', async () => {
const select = marginsSection.$$('select');
assertEquals(marginsTypeEnum.DEFAULT.toString(), select.value);
assertEquals(MarginsType.DEFAULT.toString(), select.value);
marginsSection.setSetting('margins', marginsTypeEnum.MINIMUM);
marginsSection.setSetting('margins', MarginsType.MINIMUM);
await eventToPromise('process-select-change', marginsSection);
assertEquals(marginsTypeEnum.MINIMUM.toString(), select.value);
assertEquals(MarginsType.MINIMUM.toString(), select.value);
});
// Tests that selecting a new option in the dropdown updates the setting.
test('select option', async () => {
// Verify that the selected option and names are as expected.
const select = marginsSection.$$('select');
assertEquals(marginsTypeEnum.DEFAULT.toString(), select.value);
assertEquals(MarginsType.DEFAULT.toString(), select.value);
assertEquals(
marginsTypeEnum.DEFAULT, marginsSection.getSettingValue('margins'));
MarginsType.DEFAULT, marginsSection.getSettingValue('margins'));
assertEquals(4, select.options.length);
assertFalse(marginsSection.getSetting('margins').setFromUi);
// Verify that selecting an new option in the dropdown sets the setting.
await selectOption(marginsSection, marginsTypeEnum.MINIMUM.toString());
await selectOption(marginsSection, MarginsType.MINIMUM.toString());
assertEquals(
marginsTypeEnum.MINIMUM, marginsSection.getSettingValue('margins'));
MarginsType.MINIMUM, marginsSection.getSettingValue('margins'));
assertTrue(marginsSection.getSetting('margins').setFromUi);
});
......@@ -60,21 +64,21 @@ suite('MarginsSettingsTest', function() {
// margins dropdown and changes the value to DEFAULT.
test('disabled by pages per sheet', async () => {
const select = marginsSection.$$('select');
await selectOption(marginsSection, marginsTypeEnum.MINIMUM.toString());
await selectOption(marginsSection, MarginsType.MINIMUM.toString());
assertEquals(
marginsTypeEnum.MINIMUM, marginsSection.getSettingValue('margins'));
MarginsType.MINIMUM, marginsSection.getSettingValue('margins'));
assertFalse(select.disabled);
model.set('settings.pagesPerSheet.value', 2);
await eventToPromise('process-select-change', marginsSection);
assertEquals(
marginsTypeEnum.DEFAULT, marginsSection.getSettingValue('margins'));
assertEquals(marginsTypeEnum.DEFAULT.toString(), select.value);
MarginsType.DEFAULT, marginsSection.getSettingValue('margins'));
assertEquals(MarginsType.DEFAULT.toString(), select.value);
assertTrue(select.disabled);
model.set('settings.pagesPerSheet.value', 1);
assertEquals(
marginsTypeEnum.DEFAULT, marginsSection.getSettingValue('margins'));
MarginsType.DEFAULT, marginsSection.getSettingValue('margins'));
assertFalse(select.disabled);
});
......@@ -82,20 +86,18 @@ suite('MarginsSettingsTest', function() {
// margins setting.
test('custom margins cleared by layout and media size', async () => {
const select = marginsSection.$$('select');
await selectOption(marginsSection, marginsTypeEnum.CUSTOM.toString());
assertEquals(
marginsTypeEnum.CUSTOM, marginsSection.getSettingValue('margins'));
await selectOption(marginsSection, MarginsType.CUSTOM.toString());
assertEquals(MarginsType.CUSTOM, marginsSection.getSettingValue('margins'));
// Changing layout clears custom margins.
model.set('settings.layout.value', true);
await eventToPromise('process-select-change', marginsSection);
assertEquals(
marginsTypeEnum.DEFAULT, marginsSection.getSettingValue('margins'));
assertEquals(marginsTypeEnum.DEFAULT.toString(), select.value);
MarginsType.DEFAULT, marginsSection.getSettingValue('margins'));
assertEquals(MarginsType.DEFAULT.toString(), select.value);
await selectOption(marginsSection, marginsTypeEnum.CUSTOM.toString());
assertEquals(
marginsTypeEnum.CUSTOM, marginsSection.getSettingValue('margins'));
await selectOption(marginsSection, MarginsType.CUSTOM.toString());
assertEquals(MarginsType.CUSTOM, marginsSection.getSettingValue('margins'));
// Changing media size clears custom margins.
model.set(
......@@ -103,7 +105,7 @@ suite('MarginsSettingsTest', function() {
'{height_microns: 400, width_microns: 300}');
await eventToPromise('process-select-change', marginsSection);
assertEquals(
marginsTypeEnum.DEFAULT, marginsSection.getSettingValue('margins'));
assertEquals(marginsTypeEnum.DEFAULT.toString(), select.value);
MarginsType.DEFAULT, marginsSection.getSettingValue('margins'));
assertEquals(MarginsType.DEFAULT.toString(), select.value);
});
});
......@@ -2,26 +2,30 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'chrome://print/print_preview.js';
import {SelectOption} from 'chrome://print/print_preview.js';
import {assert} from 'chrome://resources/js/assert.m.js';
import {getCddTemplate} from 'chrome://test/print_preview/print_preview_test_utils.js';
import {fakeDataBind} from 'chrome://test/test_util.m.js';
import {assertDeepEquals, assertEquals, assertFalse} from '../chai_assert.js';
import {fakeDataBind} from '../test_util.m.js';
import {getCddTemplate} from './print_preview_test_utils.js';
suite('MediaSizeSettingsTest', function() {
/** @type {?PrintPreviewMediaSizeSettingsElement} */
let mediaSizeSection = null;
/** @type {!PrintPreviewMediaSizeSettingsElement} */
let mediaSizeSection;
const mediaSizeCapability = /** @type {!SelectOption} */ (
getCddTemplate('FooPrinter').capabilities.printer.media_size);
const mediaSizeCapability =
getCddTemplate('FooPrinter').capabilities.printer.media_size;
/** @override */
setup(function() {
PolymerTest.clearBody();
const model = document.createElement('print-preview-model');
document.body.innerHTML = '';
const model = /** @type {!PrintPreviewModelElement} */ (
document.createElement('print-preview-model'));
document.body.appendChild(model);
mediaSizeSection =
document.createElement('print-preview-media-size-settings');
mediaSizeSection = /** @type {!PrintPreviewMediaSizeSettingsElement} */ (
document.createElement('print-preview-media-size-settings'));
mediaSizeSection.settings = model.settings;
mediaSizeSection.capability = mediaSizeCapability;
mediaSizeSection.disabled = false;
......
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