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