Chromium Code Reviews| Index: chrome/test/data/webui/print_preview/print_preview_tests.js |
| diff --git a/chrome/test/data/webui/print_preview/print_preview_tests.js b/chrome/test/data/webui/print_preview/print_preview_tests.js |
| index e70b7c3b2264fa67e47ab41a78fc3badbee7b52c..9dfb026719a46fe1adf827f3037e420494db6d48 100644 |
| --- a/chrome/test/data/webui/print_preview/print_preview_tests.js |
| +++ b/chrome/test/data/webui/print_preview/print_preview_tests.js |
| @@ -40,43 +40,30 @@ cr.define('print_preview_test', function() { |
| } |
| /** |
| - * Start loading the local destinations using the destination infos currently |
| - * stored in |localDestinationInfos|. |
| + * Sets settings and destinations and local destination that is the system |
| + * default. |
| + * @param {?print_preview.PrinterCapabilitiesResponse} Response parameters |
|
dpapad
2017/06/14 17:19:36
@param {Type} paramName Description
Parameter nam
rbpotter
2017/06/14 18:28:25
Done.
|
| + * to use when the system default printer is loaded. If not defined, |
| + * a default will be used. |
| + * @return {!Promise<print_preview.PrinterCapabilitiesResponse>} a |
| + * promise that will resolve when getPrinterCapabilities has been |
| + * called for the device (either default or provided). |
| */ |
| - function setLocalDestinations() { |
| + function setupSettingsAndDestinationsWithCapabilities(device) { |
| + nativeLayer.setInitialSettings(initialSettings); |
| nativeLayer.setLocalDestinations(localDestinationInfos); |
| - printPreview.destinationStore_.startLoadLocalDestinations(); |
| - } |
| + device = device || getCddTemplate('FooDevice', 'FooName'); |
| + nativeLayer.setLocalDestinationCapabilities(device); |
| - /** |
| - * Initializes print preview with the initial settings currently stored in |
| - * |initialSettings|, waits for the getInitialSettings promise to resolve, |
| - * and loads local destinations using destination infos currently stored in |
| - * |localDestinationInfos|. |
| - * @return {!Promise<!Array<!print_preview.LocalDestinationInfo>>} a |
| - * promise that will resolve when getPrinters has been resolved by |
| - * the native layer stub. |
| - */ |
| - function setupSettingsAndDestinations() { |
| - setInitialSettings(); |
| + printPreview.initialize(); |
| return nativeLayer.whenCalled('getInitialSettings').then(function() { |
| - setLocalDestinations(); |
| + printPreview.destinationStore_.startLoadLocalDestinations(); |
| return nativeLayer.whenCalled('getPrinters'); |
|
dpapad
2017/06/14 17:19:36
Nit:
return Promise.all([
nativeLayer.whenCalle
rbpotter
2017/06/14 18:28:25
Done.
|
| + }).then(function() { |
| + return nativeLayer.whenCalled('getPrinterCapabilities'); |
| }); |
| } |
| - /** |
| - * Dispatch the CAPABILITIES_SET event. This call is NOT async and will |
| - * happen in the same thread. |
| - * @param {!Object} device The device whose capabilities should be dispatched. |
| - */ |
| - function setCapabilities(device) { |
| - var capsSetEvent = |
| - new Event(print_preview.NativeLayer.EventType.CAPABILITIES_SET); |
| - capsSetEvent.settingsInfo = device; |
| - nativeLayer.getEventTarget().dispatchEvent(capsSetEvent); |
| - } |
| - |
| /** |
| * Verify that |section| visibility matches |visible|. |
| * @param {HTMLDivElement} section The section to check. |
| @@ -102,11 +89,13 @@ cr.define('print_preview_test', function() { |
| /** |
| * @param {string} printerId |
| - * @return {!Object} |
| + * @param {string | undefined} printerName Defaults to an empty string. |
|
dpapad
2017/06/14 17:19:36
Same here. Optional params are usually defined as
rbpotter
2017/06/14 18:28:25
Done.
|
| + * @return {!print_preview.PrinterCapabilitiesResponse} |
| */ |
| - function getCddTemplate(printerId) { |
| + function getCddTemplate(printerId, printerName) { |
| return { |
| printerId: printerId, |
| + printerName: printerName || '', |
| capabilities: { |
| version: '1.0', |
| printer: { |
| @@ -215,7 +204,6 @@ cr.define('print_preview_test', function() { |
| * and verifies it is displayed. |
| */ |
| function startAdvancedSettingsTest(device) { |
| - setCapabilities(device); |
| expandMoreSettings(); |
| // Check that the advanced options settings section is visible. |
| @@ -285,7 +273,7 @@ cr.define('print_preview_test', function() { |
| // Test some basic assumptions about the print preview WebUI. |
| test('PrinterList', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| + return setupSettingsAndDestinationsWithCapabilities().then(function() { |
| var recentList = |
| $('destination-search').querySelector('.recent-list ul'); |
| var localList = |
| @@ -315,7 +303,7 @@ cr.define('print_preview_test', function() { |
| // Test that the printer list is structured correctly after calling |
| // addCloudPrinters with an empty list. |
| test('PrinterListCloudEmpty', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| + return setupSettingsAndDestinationsWithCapabilities().then(function() { |
| var cloudPrintEnableEvent = new Event( |
| print_preview.NativeLayer.EventType.CLOUD_PRINT_ENABLE); |
| cloudPrintEnableEvent.baseCloudPrintUrl = 'cloudprint url'; |
| @@ -381,7 +369,7 @@ cr.define('print_preview_test', function() { |
| }, |
| ], |
| }); |
| - |
| + nativeLayer.setLocalDestinationCapabilities(getCddTemplate('ID')); |
| setInitialSettings(); |
| return nativeLayer.whenCalled('getInitialSettings'); |
| }); |
| @@ -397,7 +385,7 @@ cr.define('print_preview_test', function() { |
| origin: origin, |
| account: '', |
| capabilities: 0, |
| - name: '', |
| + name: 'One', |
| extensionId: '', |
| extensionName: '', |
| }, { |
| @@ -405,7 +393,7 @@ cr.define('print_preview_test', function() { |
| origin: origin, |
| account: '', |
| capabilities: 0, |
| - name: '', |
| + name: 'Two', |
| extensionId: '', |
| extensionName: '', |
| }, { |
| @@ -413,24 +401,28 @@ cr.define('print_preview_test', function() { |
| origin: origin, |
| account: '', |
| capabilities: 0, |
| - name: '', |
| + name: 'Three', |
| extensionId: '', |
| extensionName: '', |
| }, |
| ], |
| }); |
| + // Set all three of these destinations in the local destination infos |
| + // (represents currently available printers), plus an extra destination. |
| + localDestinationInfos = [ |
| + { printerName: 'One', deviceName: 'ID1' }, |
| + { printerName: 'Two', deviceName: 'ID2' }, |
| + { printerName: 'Three', deviceName: 'ID3' }, |
| + { printerName: 'Four', deviceName: 'ID4' } |
| + ]; |
| - setInitialSettings(); |
| + // Set up capabilities for ID1. This should be the device that should hav |
| + // its capabilities fetched, since it is the most recent. If another |
| + // device is selected the native layer will reject the callback. |
| + var device = getCddTemplate('ID1', 'One'); |
| - return nativeLayer.whenCalled('getInitialSettings').then( |
| + return setupSettingsAndDestinationsWithCapabilities(device).then( |
| function() { |
| - // Set capabilities for the three recently used destinations + 1 |
| - // more. |
| - setCapabilities(getCddTemplate('ID1')); |
| - setCapabilities(getCddTemplate('ID2')); |
| - setCapabilities(getCddTemplate('ID3')); |
| - setCapabilities(getCddTemplate('ID4')); |
| - |
| // The most recently used destination should be the currently |
| // selected one. This is ID1. |
| assertEquals( |
| @@ -461,22 +453,17 @@ cr.define('print_preview_test', function() { |
| // It also makes sure these rules do override system default destination. |
| initialSettings.serializedDefaultDestinationSelectionRulesStr_ = |
| JSON.stringify({namePattern: '.*Bar.*'}); |
| - // Set this early as the app state selection string will trigger a load |
| - // of local destinations on initialization. |
| - nativeLayer.setLocalDestinations(localDestinationInfos); |
| - setInitialSettings(); |
| - return nativeLayer.whenCalled('getInitialSettings').then(function() { |
| - return nativeLayer.whenCalled('getPrinters').then(function() { |
| - assertEquals('BarDevice', |
| - printPreview.destinationStore_.selectedDestination.id); |
| - }); |
| - }); |
| + return setupSettingsAndDestinationsWithCapabilities( |
| + getCddTemplate('BarDevice', 'BarName')).then(function() { |
| + assertEquals('BarDevice', |
| + printPreview.destinationStore_.selectedDestination.id); |
| + }); |
| }); |
| test('SystemDialogLinkIsHiddenInAppKioskMode', function() { |
| if (!cr.isChromeOS) |
| initialSettings.isInAppKioskMode_ = true; |
| - |
| + nativeLayer.setLocalDestinationCapabilities(getCddTemplate('FooDevice')); |
| setInitialSettings(); |
| return nativeLayer.whenCalled('getInitialSettings').then( |
| function() { |
| @@ -491,62 +478,65 @@ cr.define('print_preview_test', function() { |
| checkSectionVisible($('layout-settings'), false); |
| checkSectionVisible($('color-settings'), false); |
| checkSectionVisible($('copies-settings'), false); |
| + var device = getCddTemplate('FooDevice'); |
| + device.capabilities.printer.color = { |
| + option: [{is_default: true, type: 'STANDARD_COLOR'}] |
| + }; |
| + delete device.capabilities.printer.copies; |
| - return setupSettingsAndDestinations().then(function() { |
| - var device = getCddTemplate('FooDevice'); |
| - device.capabilities.printer.color = { |
| - option: [{is_default: true, type: 'STANDARD_COLOR'}] |
| - }; |
| - delete device.capabilities.printer.copies; |
| - setCapabilities(device); |
| - |
| - checkSectionVisible($('layout-settings'), true); |
| - checkSectionVisible($('color-settings'), false); |
| - checkSectionVisible($('copies-settings'), false); |
| + return setupSettingsAndDestinationsWithCapabilities(device) |
| + .then(function() { |
| + checkSectionVisible($('layout-settings'), true); |
| + checkSectionVisible($('color-settings'), false); |
| + checkSectionVisible($('copies-settings'), false); |
| - return whenAnimationDone('other-options-collapsible'); |
| - }); |
| + return whenAnimationDone('other-options-collapsible'); |
| + }); |
| }); |
| // When the source is 'PDF' and 'Save as PDF' option is selected, we hide |
| // the fit to page option. |
| test('PrintToPDFSelectedCapabilities', function() { |
| - // Add PDF printer. |
| + // Setup initial settings |
| initialSettings.isDocumentModifiable_ = false; |
| initialSettings.systemDefaultDestinationId_ = 'Save as PDF'; |
| - setInitialSettings(); |
| - return nativeLayer.whenCalled('getInitialSettings').then(function() { |
| - var device = { |
| - printerId: 'Save as PDF', |
| - capabilities: { |
| - version: '1.0', |
| - printer: { |
| - page_orientation: { |
| - option: [ |
| - {type: 'AUTO', is_default: true}, |
| - {type: 'PORTRAIT'}, |
| - {type: 'LANDSCAPE'} |
| - ] |
| - }, |
| - color: { |
| - option: [ |
| - {type: 'STANDARD_COLOR', is_default: true} |
| - ] |
| - }, |
| - media_size: { |
| - option: [ |
| - { name: 'NA_LETTER', |
| - width_microns: 0, |
| - height_microns: 0, |
| - is_default: true |
| - } |
| - ] |
| - } |
| + // Set PDF printer |
| + var device = { |
| + printerId: 'Save as PDF', |
| + capabilities: { |
| + version: '1.0', |
| + printer: { |
| + page_orientation: { |
| + option: [ |
| + {type: 'AUTO', is_default: true}, |
| + {type: 'PORTRAIT'}, |
| + {type: 'LANDSCAPE'} |
| + ] |
| + }, |
| + color: { |
| + option: [ |
| + {type: 'STANDARD_COLOR', is_default: true} |
| + ] |
| + }, |
| + media_size: { |
| + option: [ |
| + { name: 'NA_LETTER', |
| + width_microns: 0, |
| + height_microns: 0, |
| + is_default: true |
| + } |
| + ] |
| } |
| } |
| - }; |
| - setCapabilities(device); |
| + } |
| + }; |
| + nativeLayer.setLocalDestinationCapabilities(device); |
| + |
| + setInitialSettings(); |
| + return nativeLayer.whenCalled('getInitialSettings').then(function() { |
| + return nativeLayer.whenCalled('getPrinterCapabilities'); |
| + }).then(function() { |
| var otherOptions = $('other-options-settings'); |
| // If rasterization is an option, other options should be visible. |
| // If not, there should be no available other options. |
| @@ -565,9 +555,7 @@ cr.define('print_preview_test', function() { |
| // When the source is 'HTML', we always hide the fit to page option and show |
| // media size option. |
| test('SourceIsHTMLCapabilities', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - setCapabilities(getCddTemplate('FooDevice')); |
| - |
| + return setupSettingsAndDestinationsWithCapabilities().then(function() { |
| var otherOptions = $('other-options-settings'); |
| var fitToPage = otherOptions.querySelector('#fit-to-page-container'); |
| var rasterize; |
| @@ -601,9 +589,7 @@ cr.define('print_preview_test', function() { |
| // we show/hide the fit to page option and hide media size selection. |
| test('SourceIsPDFCapabilities', function() { |
| initialSettings.isDocumentModifiable_ = false; |
| - return setupSettingsAndDestinations().then(function() { |
| - setCapabilities(getCddTemplate('FooDevice')); |
| - |
| + return setupSettingsAndDestinationsWithCapabilities().then(function() { |
| var otherOptions = $('other-options-settings'); |
| var scalingSettings = $('scaling-settings'); |
| var fitToPageContainer = |
| @@ -637,9 +623,7 @@ cr.define('print_preview_test', function() { |
| // we show/hide the fit to page option and hide media size selection. |
| test('ScalingUnchecksFitToPage', function() { |
| initialSettings.isDocumentModifiable_ = false; |
| - return setupSettingsAndDestinations().then(function() { |
| - setCapabilities(getCddTemplate('FooDevice')); |
| - |
| + return setupSettingsAndDestinationsWithCapabilities().then(function() { |
| var otherOptions = $('other-options-settings'); |
| var scalingSettings = $('scaling-settings'); |
| @@ -675,9 +659,7 @@ cr.define('print_preview_test', function() { |
| // the copies value if capability is supported by printer. |
| test('CheckNumCopiesPrintPreset', function() { |
| initialSettings.isDocumentModifiable_ = false; |
| - return setupSettingsAndDestinations().then(function() { |
| - setCapabilities(getCddTemplate('FooDevice')); |
| - |
| + return setupSettingsAndDestinationsWithCapabilities().then(function() { |
| // Indicate that the number of copies print preset is set for source |
| // PDF. |
| var printPresetOptions = { |
| @@ -704,9 +686,7 @@ cr.define('print_preview_test', function() { |
| // duplex setting if capability is supported by printer. |
| test('CheckDuplexPrintPreset', function() { |
| initialSettings.isDocumentModifiable_ = false; |
| - return setupSettingsAndDestinations().then(function() { |
| - setCapabilities(getCddTemplate('FooDevice')); |
| - |
| + return setupSettingsAndDestinationsWithCapabilities().then(function() { |
| // Indicate that the duplex print preset is set to 'long edge' for |
| // source PDF. |
| var printPresetOptions = { |
| @@ -731,9 +711,7 @@ cr.define('print_preview_test', function() { |
| // Make sure that custom margins controls are properly set up. |
| test('CustomMarginsControlsCheck', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - setCapabilities(getCddTemplate('FooDevice')); |
| - |
| + return setupSettingsAndDestinationsWithCapabilities().then(function() { |
| printPreview.printTicketStore_.marginsType.updateValue( |
| print_preview.ticket_items.MarginsTypeValue.CUSTOM); |
| @@ -751,9 +729,7 @@ cr.define('print_preview_test', function() { |
| // Page layout has zero margins. Hide header and footer option. |
| test('PageLayoutHasNoMarginsHideHeaderFooter', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - setCapabilities(getCddTemplate('FooDevice')); |
| - |
| + return setupSettingsAndDestinationsWithCapabilities().then(function() { |
| var otherOptions = $('other-options-settings'); |
| var headerFooter = |
| otherOptions.querySelector('#header-footer-container'); |
| @@ -780,9 +756,7 @@ cr.define('print_preview_test', function() { |
| // Page layout has half-inch margins. Show header and footer option. |
| test('PageLayoutHasMarginsShowHeaderFooter', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - setCapabilities(getCddTemplate('FooDevice')); |
| - |
| + return setupSettingsAndDestinationsWithCapabilities().then(function() { |
| var otherOptions = $('other-options-settings'); |
| var headerFooter = |
| otherOptions.querySelector('#header-footer-container'); |
| @@ -810,9 +784,7 @@ cr.define('print_preview_test', function() { |
| // Page layout has zero top and bottom margins. Hide header and footer |
| // option. |
| test('ZeroTopAndBottomMarginsHideHeaderFooter', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - setCapabilities(getCddTemplate('FooDevice')); |
| - |
| + return setupSettingsAndDestinationsWithCapabilities().then(function() { |
| var otherOptions = $('other-options-settings'); |
| var headerFooter = |
| otherOptions.querySelector('#header-footer-container'); |
| @@ -840,9 +812,7 @@ cr.define('print_preview_test', function() { |
| // Page layout has zero top and half-inch bottom margin. Show header and |
| // footer option. |
| test('ZeroTopAndNonZeroBottomMarginShowHeaderFooter', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - setCapabilities(getCddTemplate('FooDevice')); |
| - |
| + return setupSettingsAndDestinationsWithCapabilities().then(function() { |
| var otherOptions = $('other-options-settings'); |
| var headerFooter = |
| otherOptions.querySelector('#header-footer-container'); |
| @@ -869,18 +839,17 @@ cr.define('print_preview_test', function() { |
| // Check header footer availability with small (label) page size. |
| test('SmallPaperSizeHeaderFooter', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - var device = getCddTemplate('FooDevice'); |
| - device.capabilities.printer.media_size = { |
| - 'option': [ |
| - {'name': 'SmallLabel', 'width_microns': 38100, |
| - 'height_microns': 12700, 'is_default': false}, |
| - {'name': 'BigLabel', 'width_microns': 50800, |
| - 'height_microns': 76200, 'is_default': true} |
| - ] |
| - }; |
| - setCapabilities(device); |
| - |
| + var device = getCddTemplate('FooDevice'); |
| + device.capabilities.printer.media_size = { |
| + 'option': [ |
| + {'name': 'SmallLabel', 'width_microns': 38100, |
| + 'height_microns': 12700, 'is_default': false}, |
| + {'name': 'BigLabel', 'width_microns': 50800, |
| + 'height_microns': 76200, 'is_default': true} |
| + ] |
| + }; |
| + return setupSettingsAndDestinationsWithCapabilities(device) |
| + .then(function() { |
| var otherOptions = $('other-options-settings'); |
| var headerFooter = |
| otherOptions.querySelector('#header-footer-container'); |
| @@ -911,16 +880,16 @@ cr.define('print_preview_test', function() { |
| // Test that the color settings, one option, standard monochrome. |
| test('ColorSettingsMonochrome', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - // Only one option, standard monochrome. |
| - var device = getCddTemplate('FooDevice'); |
| - device.capabilities.printer.color = { |
| - 'option': [ |
| - {'is_default': true, 'type': 'STANDARD_MONOCHROME'} |
| - ] |
| - }; |
| - setCapabilities(device); |
| + // Only one option, standard monochrome. |
| + var device = getCddTemplate('FooDevice'); |
| + device.capabilities.printer.color = { |
| + 'option': [ |
| + {'is_default': true, 'type': 'STANDARD_MONOCHROME'} |
| + ] |
| + }; |
| + return setupSettingsAndDestinationsWithCapabilities(device) |
| + .then(function() { |
| checkSectionVisible($('color-settings'), false); |
| return whenAnimationDone('more-settings'); |
| @@ -929,17 +898,17 @@ cr.define('print_preview_test', function() { |
| // Test that the color settings, one option, custom monochrome. |
| test('ColorSettingsCustomMonochrome', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - // Only one option, standard monochrome. |
| - var device = getCddTemplate('FooDevice'); |
| - device.capabilities.printer.color = { |
| - 'option': [ |
| - {'is_default': true, 'type': 'CUSTOM_MONOCHROME', |
| - 'vendor_id': '42'} |
| - ] |
| - }; |
| - setCapabilities(device); |
| + // Only one option, standard monochrome. |
| + var device = getCddTemplate('FooDevice'); |
| + device.capabilities.printer.color = { |
| + 'option': [ |
| + {'is_default': true, 'type': 'CUSTOM_MONOCHROME', |
| + 'vendor_id': '42'} |
| + ] |
| + }; |
| + return setupSettingsAndDestinationsWithCapabilities(device) |
| + .then(function() { |
| checkSectionVisible($('color-settings'), false); |
| return whenAnimationDone('more-settings'); |
| @@ -948,15 +917,15 @@ cr.define('print_preview_test', function() { |
| // Test that the color settings, one option, standard color. |
| test('ColorSettingsColor', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - var device = getCddTemplate('FooDevice'); |
| - device.capabilities.printer.color = { |
| - 'option': [ |
| - {'is_default': true, 'type': 'STANDARD_COLOR'} |
| - ] |
| - }; |
| - setCapabilities(device); |
| + var device = getCddTemplate('FooDevice'); |
| + device.capabilities.printer.color = { |
| + 'option': [ |
| + {'is_default': true, 'type': 'STANDARD_COLOR'} |
| + ] |
| + }; |
| + return setupSettingsAndDestinationsWithCapabilities(device) |
| + .then(function() { |
| checkSectionVisible($('color-settings'), false); |
| return whenAnimationDone('more-settings'); |
| @@ -965,15 +934,14 @@ cr.define('print_preview_test', function() { |
| // Test that the color settings, one option, custom color. |
| test('ColorSettingsCustomColor', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - var device = getCddTemplate('FooDevice'); |
| - device.capabilities.printer.color = { |
| - 'option': [ |
| - {'is_default': true, 'type': 'CUSTOM_COLOR', 'vendor_id': '42'} |
| - ] |
| - }; |
| - setCapabilities(device); |
| - |
| + var device = getCddTemplate('FooDevice'); |
| + device.capabilities.printer.color = { |
| + 'option': [ |
| + {'is_default': true, 'type': 'CUSTOM_COLOR', 'vendor_id': '42'} |
| + ] |
| + }; |
| + return setupSettingsAndDestinationsWithCapabilities(device) |
| + .then(function() { |
| checkSectionVisible($('color-settings'), false); |
| return whenAnimationDone('more-settings'); |
| @@ -983,16 +951,15 @@ cr.define('print_preview_test', function() { |
| // Test that the color settings, two options, both standard, defaults to |
| // color. |
| test('ColorSettingsBothStandardDefaultColor', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - var device = getCddTemplate('FooDevice'); |
| - device.capabilities.printer.color = { |
| - 'option': [ |
| - {'type': 'STANDARD_MONOCHROME'}, |
| - {'is_default': true, 'type': 'STANDARD_COLOR'} |
| - ] |
| - }; |
| - setCapabilities(device); |
| - |
| + var device = getCddTemplate('FooDevice'); |
| + device.capabilities.printer.color = { |
| + 'option': [ |
| + {'type': 'STANDARD_MONOCHROME'}, |
| + {'is_default': true, 'type': 'STANDARD_COLOR'} |
| + ] |
| + }; |
| + return setupSettingsAndDestinationsWithCapabilities(device) |
| + .then(function() { |
| checkSectionVisible($('color-settings'), true); |
| expectEquals( |
| 'color', |
| @@ -1006,16 +973,15 @@ cr.define('print_preview_test', function() { |
| // Test that the color settings, two options, both standard, defaults to |
| // monochrome. |
| test('ColorSettingsBothStandardDefaultMonochrome', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - var device = getCddTemplate('FooDevice'); |
| - device.capabilities.printer.color = { |
| - 'option': [ |
| - {'is_default': true, 'type': 'STANDARD_MONOCHROME'}, |
| - {'type': 'STANDARD_COLOR'} |
| - ] |
| - }; |
| - setCapabilities(device); |
| - |
| + var device = getCddTemplate('FooDevice'); |
| + device.capabilities.printer.color = { |
| + 'option': [ |
| + {'is_default': true, 'type': 'STANDARD_MONOCHROME'}, |
| + {'type': 'STANDARD_COLOR'} |
| + ] |
| + }; |
| + return setupSettingsAndDestinationsWithCapabilities(device) |
| + .then(function() { |
| checkSectionVisible($('color-settings'), true); |
| expectEquals( |
| 'bw', |
| @@ -1029,16 +995,15 @@ cr.define('print_preview_test', function() { |
| // Test that the color settings, two options, both custom, defaults to |
| // color. |
| test('ColorSettingsBothCustomDefaultColor', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - var device = getCddTemplate('FooDevice'); |
| - device.capabilities.printer.color = { |
| - 'option': [ |
| - {'type': 'CUSTOM_MONOCHROME', 'vendor_id': '42'}, |
| - {'is_default': true, 'type': 'CUSTOM_COLOR', 'vendor_id': '43'} |
| - ] |
| - }; |
| - setCapabilities(device); |
| - |
| + var device = getCddTemplate('FooDevice'); |
| + device.capabilities.printer.color = { |
| + 'option': [ |
| + {'type': 'CUSTOM_MONOCHROME', 'vendor_id': '42'}, |
| + {'is_default': true, 'type': 'CUSTOM_COLOR', 'vendor_id': '43'} |
| + ] |
| + }; |
| + return setupSettingsAndDestinationsWithCapabilities(device) |
| + .then(function() { |
| checkSectionVisible($('color-settings'), true); |
| expectEquals( |
| 'color', |
| @@ -1052,9 +1017,7 @@ cr.define('print_preview_test', function() { |
| // Test to verify that duplex settings are set according to the printer |
| // capabilities. |
| test('DuplexSettingsTrue', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - setCapabilities(getCddTemplate('FooDevice')); |
| - |
| + return setupSettingsAndDestinationsWithCapabilities().then(function() { |
| var otherOptions = $('other-options-settings'); |
| checkSectionVisible(otherOptions, true); |
| duplexContainer = otherOptions.querySelector('#duplex-container'); |
| @@ -1068,11 +1031,10 @@ cr.define('print_preview_test', function() { |
| // Test to verify that duplex settings are set according to the printer |
| // capabilities. |
| test('DuplexSettingsFalse', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - var device = getCddTemplate('FooDevice'); |
| - delete device.capabilities.printer.duplex; |
| - setCapabilities(device); |
| - |
| + var device = getCddTemplate('FooDevice'); |
| + delete device.capabilities.printer.duplex; |
| + return setupSettingsAndDestinationsWithCapabilities(device) |
| + .then(function() { |
| // Check that it is collapsed. |
| var otherOptions = $('other-options-settings'); |
| checkSectionVisible(otherOptions, false); |
| @@ -1089,9 +1051,7 @@ cr.define('print_preview_test', function() { |
| // Test that changing the selected printer updates the preview. |
| test('PrinterChangeUpdatesPreview', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - setCapabilities(getCddTemplate('FooDevice')); |
| - |
| + return setupSettingsAndDestinationsWithCapabilities().then(function() { |
| var previewGenerator = mock(print_preview.PreviewGenerator); |
| previewArea.previewGenerator_ = previewGenerator.proxy(); |
| @@ -1099,28 +1059,31 @@ cr.define('print_preview_test', function() { |
| // destination that will therefore dispatch ticket item change events. |
| previewGenerator.expects(exactly(9)).requestPreview(); |
| - var barDestination = |
| - printPreview.destinationStore_.destinations().find( |
| - function(d) { |
| - return d.id == 'BarDevice'; |
| - }); |
| - |
| - printPreview.destinationStore_.selectDestination(barDestination); |
| - |
| + // Setup capabilities for BarDevice. |
| var device = getCddTemplate('BarDevice'); |
| device.capabilities.printer.color = { |
| 'option': [ |
| {'is_default': true, 'type': 'STANDARD_MONOCHROME'} |
| ] |
| }; |
| - setCapabilities(device); |
| + nativeLayer.setLocalDestinationCapabilities(device); |
| + // Select BarDevice |
| + var barDestination = |
| + printPreview.destinationStore_.destinations().find( |
| + function(d) { |
| + return d.id == 'BarDevice'; |
| + }); |
| + printPreview.destinationStore_.selectDestination(barDestination); |
| + return nativeLayer.whenCalled('getPrinterCapabilities', 'BarDevice'); |
| + }).then(function(){ |
| return whenAnimationDone('more-settings'); |
| }); |
| }); |
| // Test that error message is displayed when plugin doesn't exist. |
| test('NoPDFPluginErrorMessage', function() { |
| + nativeLayer.setLocalDestinationCapabilities(getCddTemplate('FooDevice')); |
| setInitialSettings(); |
| return nativeLayer.whenCalled('getInitialSettings').then(function() { |
| var previewAreaEl = $('preview-area'); |
| @@ -1148,33 +1111,32 @@ cr.define('print_preview_test', function() { |
| // Test custom localized paper names. |
| test('CustomPaperNames', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - var customLocalizedMediaName = 'Vendor defined localized media name'; |
| - var customMediaName = 'Vendor defined media name'; |
| - |
| - var device = getCddTemplate('FooDevice'); |
| - device.capabilities.printer.media_size = { |
| - option: [ |
| - { name: 'CUSTOM', |
| - width_microns: 15900, |
| - height_microns: 79400, |
| - is_default: true, |
| - custom_display_name_localized: [ |
| - { locale: navigator.language, |
| - value: customLocalizedMediaName |
| - } |
| - ] |
| - }, |
| - { name: 'CUSTOM', |
| - width_microns: 15900, |
| - height_microns: 79400, |
| - custom_display_name: customMediaName |
| - } |
| - ] |
| - }; |
| + var customLocalizedMediaName = 'Vendor defined localized media name'; |
| + var customMediaName = 'Vendor defined media name'; |
| - setCapabilities(device); |
| + var device = getCddTemplate('FooDevice'); |
| + device.capabilities.printer.media_size = { |
| + option: [ |
| + { name: 'CUSTOM', |
| + width_microns: 15900, |
| + height_microns: 79400, |
| + is_default: true, |
| + custom_display_name_localized: [ |
| + { locale: navigator.language, |
| + value: customLocalizedMediaName |
| + } |
| + ] |
| + }, |
| + { name: 'CUSTOM', |
| + width_microns: 15900, |
| + height_microns: 79400, |
| + custom_display_name: customMediaName |
| + } |
| + ] |
| + }; |
| + return setupSettingsAndDestinationsWithCapabilities(device) |
| + .then(function() { |
| expandMoreSettings(); |
| checkSectionVisible($('media-size-settings'), true); |
| @@ -1197,7 +1159,8 @@ cr.define('print_preview_test', function() { |
| // search box). |
| test('AdvancedSettings1Option', function() { |
| var device = getCddTemplateWithAdvancedSettings('FooDevice'); |
| - return setupSettingsAndDestinations().then(function() { |
| + return setupSettingsAndDestinationsWithCapabilities(device) |
| + .then(function() { |
| startAdvancedSettingsTest(device); |
| checkElementDisplayed($('advanced-settings'). |
| querySelector('.search-box-area'), false); |
| @@ -1224,7 +1187,8 @@ cr.define('print_preview_test', function() { |
| ] |
| } |
| }); |
| - return setupSettingsAndDestinations().then(function() { |
| + return setupSettingsAndDestinationsWithCapabilities(device) |
| + .then(function() { |
| startAdvancedSettingsTest(device); |
| checkElementDisplayed($('advanced-settings'). |
| @@ -1249,9 +1213,11 @@ cr.define('print_preview_test', function() { |
| }; |
| }), |
| }); |
| - setCapabilities(getCddTemplate('ID1')); |
| - setCapabilities(getCddTemplate('ID2')); |
| - setCapabilities(getCddTemplate('ID3')); |
| + |
| + // Ensure all capabilities are available for fetch. |
| + nativeLayer.setLocalDestinationCapabilities(getCddTemplate('ID1')); |
| + nativeLayer.setLocalDestinationCapabilities(getCddTemplate('ID2')) |
| + nativeLayer.setLocalDestinationCapabilities(getCddTemplate('ID3')); |
| // Use a real preview generator. |
| previewArea.previewGenerator_ = |
| @@ -1266,6 +1232,8 @@ cr.define('print_preview_test', function() { |
| expectEquals(-1, previewArea.previewGenerator_.inFlightRequestId_); |
| setInitialSettings(); |
| return nativeLayer.whenCalled('getInitialSettings').then(function() { |
| + return nativeLayer.whenCalled('getPrinterCapabilities', 'ID1'); |
| + }).then(function() { |
| expectEquals(0, previewArea.previewGenerator_.inFlightRequestId_); |
| }); |
| }); |
| @@ -1274,9 +1242,7 @@ cr.define('print_preview_test', function() { |
| // an error and that the preview dialog can be recovered by selecting a |
| // new destination. |
| test('InvalidSettingsError', function() { |
| - return setupSettingsAndDestinations().then(function() { |
| - setCapabilities(getCddTemplate('FooDevice')); |
| - |
| + return setupSettingsAndDestinationsWithCapabilities().then(function() { |
| // Manually enable the print header. This is needed since there is no |
| // plugin during test, so it will be set as disabled normally. |
| printPreview.printHeader_.isEnabled = true; |
| @@ -1319,21 +1285,24 @@ cr.define('print_preview_test', function() { |
| return d.id == 'BarDevice'; |
| }); |
| + nativeLayer.setLocalDestinationCapabilities( |
| + getCddTemplate('BarDevice')); |
| printPreview.destinationStore_.selectDestination(barDestination); |
| - // Dispatch events indicating capabilities were fetched and new |
| - // preview has loaded. |
| - setCapabilities(getCddTemplate('BarDevice')); |
| - var previewDoneEvent = new Event( |
| - print_preview.PreviewArea.EventType.PREVIEW_GENERATION_DONE); |
| - previewArea.dispatchEvent(previewDoneEvent); |
| - |
| - // Has active print button and successfully 'prints', indicating |
| - // recovery from error state. |
| - expectFalse(printButton.disabled); |
| - expectFalse(nativeLayer.isPrintStarted()); |
| - printButton.click(); |
| - expectTrue(nativeLayer.isPrintStarted()); |
| + return nativeLayer.whenCalled('getPrinterCapabilities', 'BarDevice') |
| + .then(function() { |
| + // Dispatch event indicating new preview has loaded. |
| + var previewDoneEvent = new Event( |
| + print_preview.PreviewArea.EventType.PREVIEW_GENERATION_DONE); |
| + previewArea.dispatchEvent(previewDoneEvent); |
| + |
| + // Has active print button and successfully 'prints', indicating |
| + // recovery from error state. |
| + expectFalse(printButton.disabled); |
| + expectFalse(nativeLayer.isPrintStarted()); |
| + printButton.click(); |
| + expectTrue(nativeLayer.isPrintStarted()); |
| + }); |
| }); |
| }); |
| @@ -1345,9 +1314,7 @@ cr.define('print_preview_test', function() { |
| new print_preview.PreviewGenerator(printPreview.destinationStore_, |
| printPreview.printTicketStore_, nativeLayer, |
| printPreview.documentInfo_); |
| - return setupSettingsAndDestinations().then(function() { |
| - setCapabilities(getCddTemplate('FooDevice')); |
| - |
| + return setupSettingsAndDestinationsWithCapabilities().then(function() { |
| // The first request should generate draft because there was no |
| // previous print preview draft. |
| expectTrue(nativeLayer.generateDraft()); |