Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(867)

Unified Diff: chrome/test/data/webui/print_preview.js

Issue 10108001: Refactor print preview web ui (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Resolve conflicts Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/chrome_tests.gypi ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/data/webui/print_preview.js
diff --git a/chrome/test/data/webui/print_preview.js b/chrome/test/data/webui/print_preview.js
index 4bf1114fc177ea3a4246683786b5d06fdf08a375..d92ca24b6bda10ef627662bb0945959327489e64 100644
--- a/chrome/test/data/webui/print_preview.js
+++ b/chrome/test/data/webui/print_preview.js
@@ -4,10 +4,29 @@
/**
* Test fixture for print preview WebUI testing.
- * @extends {testing.Test}
* @constructor
+ * @extends {testing.Test}
+ */
+function PrintPreviewWebUITest() {
+ testing.Test.call(this);
+ this.nativeLayer_ = null;
+ this.initialSettings_ = null;
+ this.localDestinationInfos_ = null;
+}
+
+/**
+ * Index of the Foo printer.
+ * @type {number}
+ * @const
*/
-function PrintPreviewWebUITest() {}
+PrintPreviewWebUITest.FOO_INDEX = 0;
+
+/**
+ * Index of the Bar printer.
+ * @type {number}
+ * @const
+ */
+PrintPreviewWebUITest.BAR_INDEX = 1;
PrintPreviewWebUITest.prototype = {
__proto__: testing.Test.prototype,
@@ -20,89 +39,42 @@ PrintPreviewWebUITest.prototype = {
browsePrintPreload: 'print_preview_hello_world_test.html',
/**
- * Register a mock handler to ensure expectations are met and print preview
- * behaves correctly.
- * @type {Function}
+ * Stub out low-level functionality like the NativeLayer and
+ * CloudPrintInterface.
* @this {PrintPreviewWebUITest}
* @override
*/
preLoad: function() {
- this.makeAndRegisterMockHandler(['getInitialSettings',
- 'getPrinters',
- 'getPreview',
- 'print',
- 'getPrinterCapabilities',
- 'showSystemDialog',
- 'morePrinters',
- 'signIn',
- 'addCloudPrinter',
- 'manageCloudPrinters',
- 'manageLocalPrinters',
- 'closePrintPreviewTab',
- 'hidePreview',
- 'cancelPendingPrintRequest',
- 'saveLastPrinter',
- ]);
-
- // Register stubs for methods expected to be called before tests
- // run. Specific expectations can be made in the tests themselves.
- this.mockHandler.stubs().getInitialSettings().
- will(callFunction(function() {
- setDefaultPrinter('FooDevice');
- }));
- this.mockHandler.stubs().getPrinterCapabilities(NOT_NULL).
- will(callFunction(function() {
- updateWithPrinterCapabilities({
- disableColorOption: true,
- setColorAsDefault: true,
- disableCopiesOption: true,
- printerDefaultDuplexValue: print_preview.CopiesSettings.SIMPLEX,
- });
- }));
- var savedArgs = new SaveMockArguments();
- this.mockHandler.stubs().getPreview(savedArgs.match(NOT_NULL)).
- will(callFunctionWithSavedArgs(savedArgs, function(args) {
- updatePrintPreview(1, JSON.parse(args[0]).requestID);
- }));
-
- this.mockHandler.stubs().getPrinters().
- will(callFunction(function() {
- setPrinters([{
- printerName: 'FooName',
- deviceName: 'FooDevice',
- }, {
- printerName: 'BarName',
- deviceName: 'BarDevice',
- },
- ]);
- }));
-
- this.makeAndRegisterMockGlobals(['updateWithPrinterCapabilities']);
- this.mockGlobals.stubs().updateWithPrinterCapabilities(
- savedArgs.match(ANYTHING)).
- will(callGlobalWithSavedArgs(
- savedArgs, 'updateWithPrinterCapabilities'));
-
- // Override checkCompatiblePluginExists to return a value consistent with
- // the state being tested and stub out the pdf viewer if it doesn't exist,
- // such as on non-official builds. When the plugin exists, use the real
- // thing.
- var self = this;
window.addEventListener('DOMContentLoaded', function() {
- if (!this.checkCompatiblePluginExists()) {
- // TODO(scr) remove this after tests pass consistently.
- console.info('no PDF Plugin; providing fake methods.');
-
- // Initializing |previewArea| object here because we need to replace a
- // method.
- this.previewArea = print_preview.PreviewArea.getInstance();
- this.previewArea.createOrReloadPDFPlugin =
- self.createOrReloadPDFPlugin.bind(previewArea);
+ function NativeLayerStub() {
+ cr.EventTarget.call(this);
}
-
- this.checkCompatiblePluginExists =
- self.checkCompatiblePluginExists;
- });
+ NativeLayerStub.prototype = {
+ __proto__: cr.EventTarget.prototype,
+ startGetInitialSettings: function() {},
+ startGetLocalDestinations: function() {},
+ startGetLocalDestinationCapabilities: function(destinationId) {}
+ };
+
+ this.nativeLayer_ = new NativeLayerStub();
+ printPreview.nativeLayer_ = this.nativeLayer_;
+
+ function CloudPrintInterfaceStub() {
+ cr.EventTarget.call(this);
+ }
+ CloudPrintInterfaceStub.prototype = {
+ __proto__: cr.EventTarget.prototype,
+ search: function(isRecent) {}
+ };
+ var oldCpInterfaceEventType = cloudprint.CloudPrintInterface.EventType;
+ cloudprint.CloudPrintInterface = CloudPrintInterfaceStub;
+ cloudprint.CloudPrintInterface.EventType = oldCpInterfaceEventType;
+
+ print_preview.PreviewArea.prototype.checkPluginCompatibility_ =
+ function() {
+ return false;
+ };
+ }.bind(this));
},
/**
@@ -113,139 +85,105 @@ PrintPreviewWebUITest.prototype = {
typedefCppFixture: null,
/**
- * Create the PDF plugin or reload the existing one. This function replaces
- * createOrReloadPDFPlugin defined in
- * chrome/browser/resources/print_preview/preview_area.js when there is no
- * official pdf plugin so that the WebUI logic can be tested. It creates and
- * attaches an HTMLDivElement to the |mainview| element with attributes and
- * empty methods, which are used by testing and that would be provided by the
- * HTMLEmbedElement when the PDF plugin exists.
- * @param {number} srcDataIndex Preview data source index.
* @this {PrintPreviewWebUITest}
+ * @override
*/
- createOrReloadPDFPlugin: function(srcDataIndex) {
- var pdfViewer = $('pdf-viewer');
- if (pdfViewer)
- return;
-
- var previewUid = 1;
- pdfViewer = document.createElement('div');
- pdfViewer.setAttribute('id', 'pdf-viewer');
- pdfViewer.setAttribute('type',
- 'application/x-google-chrome-print-preview-pdf');
- pdfViewer.setAttribute(
- 'src',
- 'chrome://print/' + previewUid + '/' + srcDataIndex + '/print.pdf');
- pdfViewer.setAttribute('aria-live', 'polite');
- pdfViewer.setAttribute('aria-atomic', 'true');
- function fakeFunction() {}
- pdfViewer.onload = fakeFunction;
- pdfViewer.goToPage = fakeFunction;
- pdfViewer.removePrintButton = fakeFunction;
- pdfViewer.fitToHeight = fakeFunction;
- pdfViewer.grayscale = fakeFunction;
- pdfViewer.getZoomLevel = fakeFunction;
- pdfViewer.setZoomLevel = fakeFunction;
- pdfViewer.pageXOffset = fakeFunction;
- pdfViewer.pageYOffset = fakeFunction;
- pdfViewer.setPageNumbers = fakeFunction;
- pdfViewer.setPageXOffset = fakeFunction;
- pdfViewer.setPageYOffset = fakeFunction;
- pdfViewer.getHeight = fakeFunction;
- pdfViewer.getWidth = fakeFunction;
- pdfViewer.getPageLocationNormalized = fakeFunction;
- pdfViewer.onScroll = fakeFunction;
- pdfViewer.onPluginSizeChanged = fakeFunction;
- pdfViewer.getHorizontalScrollbarThickness = fakeFunction;
- pdfViewer.getVerticalScrollbarThickness = fakeFunction;
- $('mainview').appendChild(pdfViewer);
- this.pdfPlugin_ = pdfViewer;
- onPDFLoad();
- },
-
- /**
- * Always return true so tests run on systems without plugin available.
- * @return {boolean} Always true.
- */
- checkCompatiblePluginExists: function() {
- return true;
- },
+ setUp: function() {
+ Mock4JS.clearMocksToVerify();
+
+ this.initialSettings_ = new print_preview.NativeInitialSettings(
+ false /*isInKioskAutoPrintMode*/,
+ ',' /*thousandsDelimeter*/,
+ '.' /*decimalDelimeter*/,
+ 1 /*unitType*/,
+ true /*isDocumentModifiable*/,
+ 0 /*marginsType*/,
+ null /*customMargins*/,
+ true /*isDuplexEnabled*/,
+ false /*isHeaderFooterEnabled*/,
+ 'FooDevice' /*initialDestinationId*/);
+ this.localDestinationInfos_ = [
+ { printerName: 'FooName', deviceName: 'FooDevice' },
+ { printerName: 'BarName', deviceName: 'BarDevice' }
+ ];
+ }
};
GEN('#include "chrome/test/data/webui/print_preview.h"');
-/**
- * The expected length of the |printer-list| element.
- * @type {number}
- * @const
- */
-var printerListMinLength = 2;
-
-/**
- * The expected index of the "foo" printer returned by the stubbed handler.
- * @type {number}
- * @const
- */
-var fooIndex = 0;
-
-/**
- * The expected index of the "bar" printer returned by the stubbed handler.
- * @type {number}
- * @const
- */
-var barIndex = 1;
-
-/**
- * The expected "Save as PDF" option text returned by the stubbed handler.
- * @type {string}
- * @const
- */
-var saveAsPDFOptionStr = 'Save as PDF';
-
// Test some basic assumptions about the print preview WebUI.
TEST_F('PrintPreviewWebUITest', 'TestPrinterList', function() {
- var printerList = $('printer-list');
+ var initialSettingsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.INITIAL_SETTINGS_SET);
+ initialSettingsSetEvent.initialSettings = this.initialSettings_;
+ this.nativeLayer_.dispatchEvent(initialSettingsSetEvent);
+
+ var localDestsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.LOCAL_DESTINATIONS_SET);
+ localDestsSetEvent.destinationInfos = this.localDestinationInfos_;
+ this.nativeLayer_.dispatchEvent(localDestsSetEvent);
+
+ var printerList = $('destination-settings').
+ getElementsByClassName('destination-settings-select')[0];
assertNotEquals(null, printerList);
- assertGE(printerList.options.length, printerListMinLength);
- expectEquals(fooIndex, printerList.selectedIndex);
- expectEquals('FooName', printerList.options[fooIndex].text,
- 'fooIndex=' + fooIndex);
- expectEquals('FooDevice', printerList.options[fooIndex].value,
- 'fooIndex=' + fooIndex);
- expectEquals('BarName', printerList.options[barIndex].text,
- 'barIndex=' + barIndex);
- expectEquals('BarDevice', printerList.options[barIndex].value,
- 'barIndex=' + barIndex);
+ assertGE(printerList.options.length, 2);
+ expectEquals(PrintPreviewWebUITest.FOO_INDEX, printerList.selectedIndex);
+ expectEquals('FooName',
+ printerList.options[PrintPreviewWebUITest.FOO_INDEX].text,
+ 'fooIndex=' + PrintPreviewWebUITest.FOO_INDEX);
+ expectEquals('FooDevice',
+ printerList.options[PrintPreviewWebUITest.FOO_INDEX].value,
+ 'fooIndex=' + PrintPreviewWebUITest.FOO_INDEX);
+ expectEquals('BarName',
+ printerList.options[PrintPreviewWebUITest.BAR_INDEX].text,
+ 'barIndex=' + PrintPreviewWebUITest.BAR_INDEX);
+ expectEquals('BarDevice',
+ printerList.options[PrintPreviewWebUITest.BAR_INDEX].value,
+ 'barIndex=' + PrintPreviewWebUITest.BAR_INDEX);
});
// Test that the printer list is structured correctly after calling
// addCloudPrinters with an empty list.
TEST_F('PrintPreviewWebUITest', 'TestPrinterListCloudEmpty', function() {
- cloudprint.addCloudPrinters([], addDestinationListOptionAtPosition);
- var printerList = $('printer-list');
- assertNotEquals(null, printerList);
-});
-
-// Test that the printer list is structured correctly after attempting to add
-// individual cloud printers until no more can be added.
-TEST_F('PrintPreviewWebUITest', 'TestPrinterListCloud', function() {
- var printerList = $('printer-list');
+ var initialSettingsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.INITIAL_SETTINGS_SET);
+ initialSettingsSetEvent.initialSettings = this.initialSettings_;
+ this.nativeLayer_.dispatchEvent(initialSettingsSetEvent);
+
+ var localDestsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.LOCAL_DESTINATIONS_SET);
+ localDestsSetEvent.destinationInfos = this.localDestinationInfos_;
+ this.nativeLayer_.dispatchEvent(localDestsSetEvent);
+
+ var cloudPrintEnableEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.CLOUD_PRINT_ENABLE);
+ cloudPrintEnableEvent.baseCloudPrintUrl = 'cloudprint url';
+ this.nativeLayer_.dispatchEvent(cloudPrintEnableEvent);
+
+ var searchDoneEvent =
+ new cr.Event(cloudprint.CloudPrintInterface.EventType.SEARCH_DONE);
+ searchDoneEvent.printers = [];
+ searchDoneEvent.isRecent = true;
+ searchDoneEvent.email = 'foo@chromium.org';
+ printPreview.cloudPrintInterface_.dispatchEvent(searchDoneEvent);
+
+ var printerList = $('destination-settings').
+ getElementsByClassName('destination-settings-select')[0];
assertNotEquals(null, printerList);
- var printer = new Object;
- printer['name'] = 'FooCloud';
- for (var i = 0; i < maxCloudPrinters; i++) {
- printer['id'] = String(i);
- cloudprint.addCloudPrinters([printer], addDestinationListOptionAtPosition);
- expectEquals('FooCloud', printerList.options[i].text);
- expectEquals(String(i), printerList.options[i].value);
- }
- cloudprint.addCloudPrinters([printer], addDestinationListOptionAtPosition);
- expectNotEquals('FooCloud', printerList.options[i].text);
- expectNotEquals(String(i), printerList.options[i].value);
- for (var i = 0; i < maxCloudPrinters; i++) {
- expectEquals('FooCloud', printerList.options[i].text);
- expectEquals(String(i), printerList.options[i].value);
- }
+ assertGE(printerList.options.length, 2);
+ expectEquals(PrintPreviewWebUITest.FOO_INDEX, printerList.selectedIndex);
+ expectEquals('FooName',
+ printerList.options[PrintPreviewWebUITest.FOO_INDEX].text,
+ 'fooIndex=' + PrintPreviewWebUITest.FOO_INDEX);
+ expectEquals('FooDevice',
+ printerList.options[PrintPreviewWebUITest.FOO_INDEX].value,
+ 'fooIndex=' + PrintPreviewWebUITest.FOO_INDEX);
+ expectEquals('BarName',
+ printerList.options[PrintPreviewWebUITest.BAR_INDEX].text,
+ 'barIndex=' + PrintPreviewWebUITest.BAR_INDEX);
+ expectEquals('BarDevice',
+ printerList.options[PrintPreviewWebUITest.BAR_INDEX].value,
+ 'barIndex=' + PrintPreviewWebUITest.BAR_INDEX);
});
/**
@@ -255,342 +193,549 @@ TEST_F('PrintPreviewWebUITest', 'TestPrinterListCloud', function() {
*/
function checkSectionVisible(section, visible) {
assertNotEquals(null, section);
- expectEquals(section.classList.contains('visible'), visible,
- 'section=' + section);
+ expectEquals(
+ visible, section.classList.contains('visible'), 'section=' + section.id);
}
-/**
- * Verify that |section| style display matches |value|.
- * @param {HTMLDivElement} section The section to check.
- * @param {string} value The expected display style value.
- */
-function checkSectionDisplayStyle(section, value) {
- assertNotEquals(null, section);
- expectEquals(section.style.display, value, 'section=' + section);
+function checkElementDisplayed(el, isDisplayed) {
+ assertNotEquals(null, el);
+ expectEquals(isDisplayed, el.style.display != 'none');
}
// Test that disabled settings hide the disabled sections.
TEST_F('PrintPreviewWebUITest', 'TestSectionsDisabled', function() {
- this.mockHandler.expects(once()).getPrinterCapabilities('FooDevice').
- will(callFunction(function() {
- updateWithPrinterCapabilities({
- disableColorOption: true,
- setColorAsDefault: true,
- disableCopiesOption: true,
- disableLandscapeOption: true,
- printerDefaultDuplexValue: print_preview.CopiesSettings.SIMPLEX,
- });
- }));
-
- updateControlsWithSelectedPrinterCapabilities();
-
- checkSectionVisible(layoutSettings.layoutOption_, false);
- checkSectionVisible(colorSettings.colorOption_, false);
- checkSectionVisible(copiesSettings.copiesOption_, false);
+ var initialSettingsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.INITIAL_SETTINGS_SET);
+ initialSettingsSetEvent.initialSettings = this.initialSettings_;
+ this.nativeLayer_.dispatchEvent(initialSettingsSetEvent);
+
+ var localDestsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.LOCAL_DESTINATIONS_SET);
+ localDestsSetEvent.destinationInfos = this.localDestinationInfos_;
+ this.nativeLayer_.dispatchEvent(localDestsSetEvent);
+
+ checkSectionVisible($('layout-settings'), true);
+ checkSectionVisible($('color-settings'), true);
+ checkSectionVisible($('copies-settings'), true);
+
+ var capsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.CAPABILITIES_SET);
+ capsSetEvent.settingsInfo = {
+ 'disableColorOption': true,
+ 'setColorAsDefault': true,
+ 'disableCopiesOption': true,
+ 'disableLandscapeOption': true,
+ 'printerDefaultDuplexValue': 0
+ };
+ this.nativeLayer_.dispatchEvent(capsSetEvent);
+
+ checkSectionVisible($('layout-settings'), false);
+ checkSectionVisible($('color-settings'), false);
+ checkSectionVisible($('copies-settings'), false);
});
// When the source is 'PDF' and 'Save as PDF' option is selected, we hide the
// fit to page option.
-TEST_F('PrintPreviewWebUITest', 'PrintToPDFSelectedHideFitToPageOption',
+TEST_F('PrintPreviewWebUITest',
+ 'PrintToPDFSelectedHideFitToPageOption',
function() {
- var savedArgs = new SaveMockArguments();
- this.mockHandler.expects(once()).getPreview(savedArgs.match(ANYTHING)).
- will(callFunctionWithSavedArgs(savedArgs, function(args) {
- updatePrintPreview(2, JSON.parse(args[0]).requestID);
- }));
-
- this.mockGlobals.expects(once()).updateWithPrinterCapabilities(
- savedArgs.match(ANYTHING)).
- will(callGlobalWithSavedArgs(
- savedArgs, 'updateWithPrinterCapabilities'));
-
- setInitialSettings({previewModifiable: false});
- var printerList = $('printer-list');
- assertNotEquals(null, printerList, 'printerList');
- assertGE(printerList.options.length, printerListMinLength);
- for (var i = 0; i < printerList.options.length; i++) {
- if (printerList.options[i].text == saveAsPDFOptionStr &&
- printerList.options[i].value == saveAsPDFOptionStr) {
- printerList.selectedIndex = i;
- break;
- }
- }
- updateControlsWithSelectedPrinterCapabilities();
- checkSectionDisplayStyle(fitToPageSettings.fitToPageOption_, 'none');
+ // Add PDF printer.
+ this.initialSettings_.isDocumentModifiable_ = false;
+ this.initialSettings_.initialDestinationId_ = 'Save as PDF';
+ this.localDestinationInfos_.push(
+ {printerName: 'Save as PDF', deviceName: 'Save as PDF'});
+
+ var initialSettingsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.INITIAL_SETTINGS_SET);
+ initialSettingsSetEvent.initialSettings = this.initialSettings_;
+ this.nativeLayer_.dispatchEvent(initialSettingsSetEvent);
+
+ var localDestsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.LOCAL_DESTINATIONS_SET);
+ localDestsSetEvent.destinationInfos = this.localDestinationInfos_;
+ this.nativeLayer_.dispatchEvent(localDestsSetEvent);
+
+ var capsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.CAPABILITIES_SET);
+ capsSetEvent.settingsInfo = {
+ 'disableColorOption': false,
+ 'setColorAsDefault': true,
+ 'disableCopiesOption': true,
+ 'disableLandscapeOption': true,
+ 'printerDefaultDuplexValue': 0
+ };
+ this.nativeLayer_.dispatchEvent(capsSetEvent);
+
+ checkElementDisplayed(
+ $('other-options-settings').
+ querySelector('.other-options-settings-fit-to-page'),
+ false);
});
// When the source is 'HTML', we always hide the fit to page option.
TEST_F('PrintPreviewWebUITest', 'SourceIsHTMLHideFitToPageOption', function() {
- var savedArgs = new SaveMockArguments();
- this.mockHandler.expects(once()).getPreview(savedArgs.match(ANYTHING)).
- will(callFunctionWithSavedArgs(savedArgs, function(args) {
- updatePrintPreview(2, JSON.parse(args[0]).requestID);
- }));
-
- this.mockGlobals.expects(once()).updateWithPrinterCapabilities(
- savedArgs.match(ANYTHING)).
- will(callGlobalWithSavedArgs(
- savedArgs, 'updateWithPrinterCapabilities'));
-
- setInitialSettings({previewModifiable: true});
- var printerList = $('printer-list');
- assertNotEquals(null, printerList, 'printerList');
- assertGE(printerList.options.length, printerListMinLength);
- updateControlsWithSelectedPrinterCapabilities();
- checkSectionDisplayStyle(fitToPageSettings.fitToPageOption_, 'none');
- expectTrue(fitToPageSettings.hasFitToPage());
+ var initialSettingsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.INITIAL_SETTINGS_SET);
+ initialSettingsSetEvent.initialSettings = this.initialSettings_;
+ this.nativeLayer_.dispatchEvent(initialSettingsSetEvent);
+
+ var localDestsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.LOCAL_DESTINATIONS_SET);
+ localDestsSetEvent.destinationInfos = this.localDestinationInfos_;
+ this.nativeLayer_.dispatchEvent(localDestsSetEvent);
+
+ var capsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.CAPABILITIES_SET);
+ capsSetEvent.settingsInfo = {
+ 'disableColorOption': false,
+ 'setColorAsDefault': true,
+ 'disableCopiesOption': true,
+ 'disableLandscapeOption': true,
+ 'printerDefaultDuplexValue': 0
+ };
+ this.nativeLayer_.dispatchEvent(capsSetEvent);
+
+ checkElementDisplayed(
+ $('other-options-settings').
+ querySelector('.other-options-settings-fit-to-page'),
+ false);
});
// When the source is "PDF", depending on the selected destination printer, we
// show/hide the fit to page option.
TEST_F('PrintPreviewWebUITest', 'SourceIsPDFShowFitToPageOption', function() {
- var savedArgs = new SaveMockArguments();
- this.mockHandler.expects(once()).getPreview(savedArgs.match(ANYTHING)).
- will(callFunctionWithSavedArgs(savedArgs, function(args) {
- updatePrintPreview(2, JSON.parse(args[0]).requestID);
- }));
-
- this.mockGlobals.expects(once()).updateWithPrinterCapabilities(
- savedArgs.match(ANYTHING)).
- will(callGlobalWithSavedArgs(
- savedArgs, 'updateWithPrinterCapabilities'));
-
- setInitialSettings({previewModifiable: false});
- var printerList = $('printer-list');
- assertNotEquals(null, printerList, 'printerList');
- assertGE(printerList.options.length, printerListMinLength);
- var saveAsPDFOptionSelected = false;
- var selectedPrinterOption = printerList.options[printerList.selectedIndex];
- if (selectedPrinterOption.text == saveAsPDFOptionStr &&
- selectedPrinterOption.value == saveAsPDFOptionStr) {
- saveAsPDFOptionSelected = true;
- }
- updateControlsWithSelectedPrinterCapabilities();
- checkSectionDisplayStyle(fitToPageSettings.fitToPageOption_,
- saveAsPDFOptionSelected ? 'none' : 'block');
- expectTrue(fitToPageSettings.hasFitToPage());
+ this.initialSettings_.isDocumentModifiable_ = false;
+
+ var initialSettingsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.INITIAL_SETTINGS_SET);
+ initialSettingsSetEvent.initialSettings = this.initialSettings_;
+ this.nativeLayer_.dispatchEvent(initialSettingsSetEvent);
+
+ var localDestsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.LOCAL_DESTINATIONS_SET);
+ localDestsSetEvent.destinationInfos = this.localDestinationInfos_;
+ this.nativeLayer_.dispatchEvent(localDestsSetEvent);
+
+ var capsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.CAPABILITIES_SET);
+ capsSetEvent.settingsInfo = {
+ 'disableColorOption': false,
+ 'setColorAsDefault': true,
+ 'disableCopiesOption': true,
+ 'disableLandscapeOption': true,
+ 'printerDefaultDuplexValue': 0
+ };
+ this.nativeLayer_.dispatchEvent(capsSetEvent);
+
+ checkElementDisplayed(
+ $('other-options-settings').
+ querySelector('.other-options-settings-fit-to-page'),
+ true);
+ expectTrue(
+ $('other-options-settings').querySelector(
+ '.other-options-settings-fit-to-page-checkbox').checked);
});
// When the print scaling is disabled for the source "PDF", we show the fit
// to page option but the state is unchecked by default.
TEST_F('PrintPreviewWebUITest', 'PrintScalingDisabledForPlugin', function() {
- var savedArgs = new SaveMockArguments();
- this.mockHandler.expects(once()).getPreview(savedArgs.match(ANYTHING)).
- will(callFunctionWithSavedArgs(savedArgs, function(args) {
- updatePrintPreview(2, JSON.parse(args[0]).requestID);
- }));
-
- this.mockGlobals.expects(once()).updateWithPrinterCapabilities(
- savedArgs.match(ANYTHING)).
- will(callGlobalWithSavedArgs(
- savedArgs, 'updateWithPrinterCapabilities'));
-
- setInitialSettings({previewModifiable: false});
- var printerList = $('printer-list');
- assertNotEquals(null, printerList, 'printerList');
- assertGE(printerList.options.length, printerListMinLength);
- var saveAsPDFOptionSelected = false;
- var selectedPrinterOption = printerList.options[printerList.selectedIndex];
- if (selectedPrinterOption.text == saveAsPDFOptionStr &&
- selectedPrinterOption.value == saveAsPDFOptionStr) {
- saveAsPDFOptionSelected = true;
- }
- updateControlsWithSelectedPrinterCapabilities();
- printScalingDisabledForSourcePDF();
- checkSectionDisplayStyle(fitToPageSettings.fitToPageOption_,
- saveAsPDFOptionSelected ? 'none' : 'block');
- // Make sure the fit to page checkbox is unchecked.
- expectFalse(fitToPageSettings.hasFitToPage());
+ this.initialSettings_.isDocumentModifiable_ = false;
+
+ var initialSettingsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.INITIAL_SETTINGS_SET);
+ initialSettingsSetEvent.initialSettings = this.initialSettings_;
+ this.nativeLayer_.dispatchEvent(initialSettingsSetEvent);
+
+ var localDestsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.LOCAL_DESTINATIONS_SET);
+ localDestsSetEvent.destinationInfos = this.localDestinationInfos_;
+ this.nativeLayer_.dispatchEvent(localDestsSetEvent);
+
+ var capsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.CAPABILITIES_SET);
+ capsSetEvent.settingsInfo = {
+ 'disableColorOption': false,
+ 'setColorAsDefault': true,
+ 'disableCopiesOption': true,
+ 'disableLandscapeOption': true,
+ 'printerDefaultDuplexValue': 0
+ };
+ this.nativeLayer_.dispatchEvent(capsSetEvent);
+
+ // Indicate that the PDF does not support scaling by default.
+ cr.dispatchSimpleEvent(
+ this.nativeLayer_, print_preview.NativeLayer.EventType.DISABLE_SCALING);
+
+ checkElementDisplayed(
+ $('other-options-settings').
+ querySelector('.other-options-settings-fit-to-page'),
+ true);
+ expectFalse(
+ $('other-options-settings').querySelector(
+ '.other-options-settings-fit-to-page-checkbox').checked);
});
// Page layout has zero margins. Hide header and footer option.
-TEST_F('PrintPreviewWebUITest', 'PageLayoutHasNoMarginsHideHeaderFooter',
+TEST_F('PrintPreviewWebUITest',
+ 'PageLayoutHasNoMarginsHideHeaderFooter',
function() {
- setInitialSettings({previewModifiable: true});
- onDidGetDefaultPageLayout({
- contentWidth: 100, contentHeight: 200, marginLeft: 0, marginRight: 0,
- marginTop: 0, marginBottom: 0, printableAreaX: 0, printableAreaY: 0,
- printableAreaWidth: 100, printableAreaHeight: 200}, true);
- checkSectionDisplayStyle(headerFooterSettings.headerFooterOption_, 'none');
+ var initialSettingsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.INITIAL_SETTINGS_SET);
+ initialSettingsSetEvent.initialSettings = this.initialSettings_;
+ this.nativeLayer_.dispatchEvent(initialSettingsSetEvent);
+
+ var localDestsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.LOCAL_DESTINATIONS_SET);
+ localDestsSetEvent.destinationInfos = this.localDestinationInfos_;
+ this.nativeLayer_.dispatchEvent(localDestsSetEvent);
+
+ var capsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.CAPABILITIES_SET);
+ capsSetEvent.settingsInfo = {
+ 'disableColorOption': false,
+ 'setColorAsDefault': true,
+ 'disableCopiesOption': true,
+ 'disableLandscapeOption': true,
+ 'printerDefaultDuplexValue': 0
+ };
+ this.nativeLayer_.dispatchEvent(capsSetEvent);
+
+ checkElementDisplayed(
+ $('other-options-settings').
+ querySelector('.other-options-settings-header-footer'),
+ true);
+
+ printPreview.printTicketStore_.updateMarginsType(
+ print_preview.ticket_items.MarginsType.Value.CUSTOM);
+ printPreview.printTicketStore_.updateCustomMargins(
+ new print_preview.Margins(0, 0, 0, 0));
+
+ checkElementDisplayed(
+ $('other-options-settings').
+ querySelector('.other-options-settings-header-footer'),
+ false);
});
-// Page layout has non-zero margins. Show header and footer option.
-TEST_F('PrintPreviewWebUITest', 'PageLayoutHasMarginsShowHeaderFooter',
+// Page layout has half-inch margins. Show header and footer option.
+TEST_F('PrintPreviewWebUITest',
+ 'PageLayoutHasMarginsShowHeaderFooter',
function() {
- setInitialSettings({previewModifiable: true});
- onDidGetDefaultPageLayout({
- contentWidth: 100, contentHeight: 200, marginLeft: 3, marginRight: 2,
- marginTop: 4, marginBottom: 1, printableAreaX: 1, printableAreaY: 1,
- printableAreaWidth: 103, printableAreaHeight: 203}, true);
- checkSectionDisplayStyle(headerFooterSettings.headerFooterOption_, 'block');
+ var initialSettingsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.INITIAL_SETTINGS_SET);
+ initialSettingsSetEvent.initialSettings = this.initialSettings_;
+ this.nativeLayer_.dispatchEvent(initialSettingsSetEvent);
+
+ var localDestsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.LOCAL_DESTINATIONS_SET);
+ localDestsSetEvent.destinationInfos = this.localDestinationInfos_;
+ this.nativeLayer_.dispatchEvent(localDestsSetEvent);
+
+ var capsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.CAPABILITIES_SET);
+ capsSetEvent.settingsInfo = {
+ 'disableColorOption': false,
+ 'setColorAsDefault': true,
+ 'disableCopiesOption': true,
+ 'disableLandscapeOption': true,
+ 'printerDefaultDuplexValue': 0
+ };
+ this.nativeLayer_.dispatchEvent(capsSetEvent);
+
+ checkElementDisplayed(
+ $('other-options-settings').
+ querySelector('.other-options-settings-header-footer'),
+ true);
+
+ printPreview.printTicketStore_.updateMarginsType(
+ print_preview.ticket_items.MarginsType.Value.CUSTOM);
+ printPreview.printTicketStore_.updateCustomMargins(
+ new print_preview.Margins(36, 36, 36, 36));
+
+ checkElementDisplayed(
+ $('other-options-settings').
+ querySelector('.other-options-settings-header-footer'),
+ true);
});
// Page layout has zero top and bottom margins. Hide header and footer option.
-TEST_F('PrintPreviewWebUITest', 'ZeroTopAndBottomMarginsHideHeaderFooter',
+TEST_F('PrintPreviewWebUITest',
+ 'ZeroTopAndBottomMarginsHideHeaderFooter',
function() {
- setInitialSettings({previewModifiable: true});
- onDidGetDefaultPageLayout({
- contentWidth: 100, contentHeight: 200, marginLeft: 3, marginRight: 2,
- marginTop: 0, marginBottom: 0, printableAreaX: 1, printableAreaY: 1,
- printableAreaWidth: 98, printableAreaHeight: 198}, false);
- checkSectionDisplayStyle(headerFooterSettings.headerFooterOption_, 'none');
+ var initialSettingsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.INITIAL_SETTINGS_SET);
+ initialSettingsSetEvent.initialSettings = this.initialSettings_;
+ this.nativeLayer_.dispatchEvent(initialSettingsSetEvent);
+
+ var localDestsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.LOCAL_DESTINATIONS_SET);
+ localDestsSetEvent.destinationInfos = this.localDestinationInfos_;
+ this.nativeLayer_.dispatchEvent(localDestsSetEvent);
+
+ var capsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.CAPABILITIES_SET);
+ capsSetEvent.settingsInfo = {
+ 'disableColorOption': false,
+ 'setColorAsDefault': true,
+ 'disableCopiesOption': true,
+ 'disableLandscapeOption': true,
+ 'printerDefaultDuplexValue': 0
+ };
+ this.nativeLayer_.dispatchEvent(capsSetEvent);
+
+ checkElementDisplayed(
+ $('other-options-settings').
+ querySelector('.other-options-settings-header-footer'),
+ true);
+
+ printPreview.printTicketStore_.updateMarginsType(
+ print_preview.ticket_items.MarginsType.Value.CUSTOM);
+ printPreview.printTicketStore_.updateCustomMargins(
+ new print_preview.Margins(0, 36, 0, 36));
+
+ checkElementDisplayed(
+ $('other-options-settings').
+ querySelector('.other-options-settings-header-footer'),
+ false);
});
-// Page layout has zero top and non-zero bottom margin. Show header and footer
+// Page layout has zero top and half-inch bottom margin. Show header and footer
// option.
-TEST_F('PrintPreviewWebUITest', 'ZeroTopAndNonZeroBottomMarginShowHeaderFooter',
+TEST_F('PrintPreviewWebUITest',
+ 'ZeroTopAndNonZeroBottomMarginShowHeaderFooter',
function() {
- setInitialSettings({previewModifiable: true});
- onDidGetDefaultPageLayout({
- contentWidth: 100, contentHeight: 200, marginLeft: 6, marginRight: 4,
- marginTop: 0, marginBottom: 3, printableAreaX: 1, printableAreaY: 1,
- printableAreaWidth: 103, printableAreaHeight: 208}, false);
- checkSectionDisplayStyle(headerFooterSettings.headerFooterOption_, 'block');
+ var initialSettingsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.INITIAL_SETTINGS_SET);
+ initialSettingsSetEvent.initialSettings = this.initialSettings_;
+ this.nativeLayer_.dispatchEvent(initialSettingsSetEvent);
+
+ var localDestsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.LOCAL_DESTINATIONS_SET);
+ localDestsSetEvent.destinationInfos = this.localDestinationInfos_;
+ this.nativeLayer_.dispatchEvent(localDestsSetEvent);
+
+ var capsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.CAPABILITIES_SET);
+ capsSetEvent.settingsInfo = {
+ 'disableColorOption': false,
+ 'setColorAsDefault': true,
+ 'disableCopiesOption': true,
+ 'disableLandscapeOption': true,
+ 'printerDefaultDuplexValue': 0
+ };
+ this.nativeLayer_.dispatchEvent(capsSetEvent);
+
+ checkElementDisplayed(
+ $('other-options-settings').
+ querySelector('.other-options-settings-header-footer'),
+ true);
+
+ printPreview.printTicketStore_.updateMarginsType(
+ print_preview.ticket_items.MarginsType.Value.CUSTOM);
+ printPreview.printTicketStore_.updateCustomMargins(
+ new print_preview.Margins(0, 36, 36, 36));
+
+ checkElementDisplayed(
+ $('other-options-settings').
+ querySelector('.other-options-settings-header-footer'),
+ true);
});
// Test that the color settings are set according to the printer capabilities.
TEST_F('PrintPreviewWebUITest', 'TestColorSettings', function() {
- this.mockHandler.expects(once()).getPrinterCapabilities('FooDevice').
- will(callFunction(function() {
- updateWithPrinterCapabilities({
- disableColorOption: false,
- setColorAsDefault: true,
- disableCopiesOption: false,
- disableLandscapeOption: false,
- printerDefaultDuplexValue: print_preview.CopiesSettings.SIMPLEX,
- });
- }));
-
- updateControlsWithSelectedPrinterCapabilities();
- expectTrue(colorSettings.colorRadioButton.checked);
- expectFalse(colorSettings.bwRadioButton.checked);
-
- this.mockHandler.expects(once()).getPrinterCapabilities('FooDevice').
- will(callFunction(function() {
- updateWithPrinterCapabilities({
- disableColorOption: false,
- setColorAsDefault: false,
- disableCopiesOption: false,
- disableLandscapeOption: false,
- printerDefaultDuplexValue: print_preview.CopiesSettings.SIMPLEX,
- });
- }));
-
- updateControlsWithSelectedPrinterCapabilities();
- expectFalse(colorSettings.colorRadioButton.checked);
- expectTrue(colorSettings.bwRadioButton.checked);
+ var initialSettingsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.INITIAL_SETTINGS_SET);
+ initialSettingsSetEvent.initialSettings = this.initialSettings_;
+ this.nativeLayer_.dispatchEvent(initialSettingsSetEvent);
+
+ var localDestsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.LOCAL_DESTINATIONS_SET);
+ localDestsSetEvent.destinationInfos = this.localDestinationInfos_;
+ this.nativeLayer_.dispatchEvent(localDestsSetEvent);
+
+ checkSectionVisible($('color-settings'), true);
+
+ var capsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.CAPABILITIES_SET);
+ capsSetEvent.settingsInfo = {
+ 'disableColorOption': false,
+ 'setColorAsDefault': true,
+ 'disableCopiesOption': true,
+ 'disableLandscapeOption': true,
+ 'printerDefaultDuplexValue': 0
+ };
+ this.nativeLayer_.dispatchEvent(capsSetEvent);
+
+ checkSectionVisible($('color-settings'), true);
+
+ var colorOption = $('color-settings').getElementsByClassName(
+ 'color-settings-color-option')[0];
+ var bwOption = $('color-settings').getElementsByClassName(
+ 'color-settings-bw-option')[0];
+ expectTrue(colorOption.checked);
+ expectFalse(bwOption.checked);
+
+ var capsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.CAPABILITIES_SET);
+ capsSetEvent.settingsInfo = {
+ 'disableColorOption': false,
+ 'setColorAsDefault': false,
+ 'disableCopiesOption': false,
+ 'disableLandscapeOption': false,
+ 'printerDefaultDuplexValue': 0
+ };
+ this.nativeLayer_.dispatchEvent(capsSetEvent);
+
+ checkSectionVisible($('color-settings'), true);
+ expectFalse(colorOption.checked);
+ expectTrue(bwOption.checked);
});
// Test to verify that duplex settings are set according to the printer
// capabilities.
TEST_F('PrintPreviewWebUITest', 'TestDuplexSettings', function() {
- this.mockHandler.expects(once()).getPrinterCapabilities('FooDevice').
- will(callFunction(function() {
- updateWithPrinterCapabilities({
- disableColorOption: false,
- setColorAsDefault: false,
- disableCopiesOption: false,
- disableLandscapeOption: false,
- printerDefaultDuplexValue: print_preview.CopiesSettings.SIMPLEX,
- });
- }));
- updateControlsWithSelectedPrinterCapabilities();
- expectEquals(copiesSettings.duplexMode, print_preview.CopiesSettings.SIMPLEX);
- expectEquals(copiesSettings.twoSidedOption_.hidden, false);
+ var initialSettingsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.INITIAL_SETTINGS_SET);
+ // Need to override test defaults for the initial settings, because initial
+ // duplex value needs to be unspecified.
+ initialSettingsSetEvent.initialSettings =
+ new print_preview.NativeInitialSettings(
+ false /*isInKioskAutoPrintMode*/,
+ ',' /*thousandsDelimeter*/,
+ '.' /*decimalDelimeter*/,
+ 1 /*unitType*/,
+ true /*isDocumentModifiable*/,
+ 0 /*marginsType*/,
+ null /*customMargins*/,
+ null /*isDuplexEnabled*/,
+ false /*isHeaderFooterEnabled*/,
+ 'FooDevice' /*initialDestinationId*/);
+ this.nativeLayer_.dispatchEvent(initialSettingsSetEvent);
+
+ var localDestsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.LOCAL_DESTINATIONS_SET);
+ localDestsSetEvent.destinationInfos = this.localDestinationInfos_;
+ this.nativeLayer_.dispatchEvent(localDestsSetEvent);
+
+ var copiesDiv = $('copies-settings');
+ var duplexDiv = copiesDiv.getElementsByClassName('copies-settings-duplex')[0];
+ var duplexCheckbox = copiesDiv.getElementsByClassName(
+ 'copies-settings-duplex-checkbox')[0];
+
+ var capsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.CAPABILITIES_SET);
+ capsSetEvent.settingsInfo = {
+ 'disableColorOption': false,
+ 'setColorAsDefault': true,
+ 'disableCopiesOption': false,
+ 'disableLandscapeOption': true,
+ 'printerDefaultDuplexValue': 0
+ };
+ this.nativeLayer_.dispatchEvent(capsSetEvent);
+
+ checkSectionVisible(copiesDiv, true);
+ expectFalse(duplexDiv.hidden);
+ expectFalse(duplexCheckbox.checked);
// If the printer default duplex value is UNKNOWN_DUPLEX_MODE, hide the
// two sided option.
- this.mockHandler.expects(once()).getPrinterCapabilities('FooDevice').
- will(callFunction(function() {
- updateWithPrinterCapabilities({
- disableColorOption: false,
- setColorAsDefault: false,
- disableCopiesOption: false,
- disableLandscapeOption: false,
- printerDefaultDuplexValue:
- print_preview.CopiesSettings.UNKNOWN_DUPLEX_MODE,
- });
- }));
- updateControlsWithSelectedPrinterCapabilities();
- expectEquals(copiesSettings.duplexMode,
- print_preview.CopiesSettings.UNKNOWN_DUPLEX_MODE);
- expectEquals(copiesSettings.twoSidedOption_.hidden, true);
-
- this.mockHandler.expects(once()).getPrinterCapabilities('FooDevice').
- will(callFunction(function() {
- updateWithPrinterCapabilities({
- disableColorOption: false,
- setColorAsDefault: false,
- disableCopiesOption: false,
- disableLandscapeOption: false,
- printerDefaultDuplexValue: print_preview.CopiesSettings.SIMPLEX,
- });
- }));
- updateControlsWithSelectedPrinterCapabilities();
- expectEquals(copiesSettings.twoSidedOption_.hidden, false);
- expectEquals(copiesSettings.duplexMode, print_preview.CopiesSettings.SIMPLEX);
- copiesSettings.twoSidedCheckbox.checked = true;
- expectEquals(
- copiesSettings.duplexMode, print_preview.CopiesSettings.LONG_EDGE);
+ var capsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.CAPABILITIES_SET);
+ capsSetEvent.settingsInfo = {
+ 'disableColorOption': false,
+ 'setColorAsDefault': false,
+ 'disableCopiesOption': false,
+ 'disableLandscapeOption': false,
+ 'printerDefaultDuplexValue': -1
+ };
+ this.nativeLayer_.dispatchEvent(capsSetEvent);
+
+ checkSectionVisible(copiesDiv, true);
+ expectTrue(duplexDiv.hidden);
+
+ var capsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.CAPABILITIES_SET);
+ capsSetEvent.settingsInfo = {
+ 'disableColorOption': false,
+ 'setColorAsDefault': false,
+ 'disableCopiesOption': false,
+ 'disableLandscapeOption': false,
+ 'printerDefaultDuplexValue': 1
+ };
+ this.nativeLayer_.dispatchEvent(capsSetEvent);
+
+ checkSectionVisible(copiesDiv, true);
+ expectFalse(duplexDiv.hidden);
+ expectTrue(duplexCheckbox.checked);
});
// Test that changing the selected printer updates the preview.
TEST_F('PrintPreviewWebUITest', 'TestPrinterChangeUpdatesPreview', function() {
- var savedArgs = new SaveMockArguments();
- this.mockHandler.expects(once()).getPreview(savedArgs.match(ANYTHING)).
- will(callFunctionWithSavedArgs(savedArgs, function(args) {
- updatePrintPreview(2, JSON.parse(args[0]).requestID);
- }));
-
- this.mockGlobals.expects(once()).updateWithPrinterCapabilities(
- savedArgs.match(ANYTHING)).
- will(callGlobalWithSavedArgs(
- savedArgs, 'updateWithPrinterCapabilities'));
-
- var printerList = $('printer-list');
- assertNotEquals(null, printerList, 'printerList');
- assertGE(printerList.options.length, printerListMinLength);
- expectEquals(fooIndex, printerList.selectedIndex,
- 'fooIndex=' + fooIndex);
- var oldLastPreviewRequestID = lastPreviewRequestID;
- ++printerList.selectedIndex;
- updateControlsWithSelectedPrinterCapabilities();
- expectNotEquals(oldLastPreviewRequestID, lastPreviewRequestID);
+
+ var initialSettingsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.INITIAL_SETTINGS_SET);
+ initialSettingsSetEvent.initialSettings = this.initialSettings_;
+ this.nativeLayer_.dispatchEvent(initialSettingsSetEvent);
+
+ var localDestsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.LOCAL_DESTINATIONS_SET);
+ localDestsSetEvent.destinationInfos = this.localDestinationInfos_;
+ this.nativeLayer_.dispatchEvent(localDestsSetEvent);
+
+ var capsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.CAPABILITIES_SET);
+ capsSetEvent.settingsInfo = {
+ 'disableColorOption': false,
+ 'setColorAsDefault': true,
+ 'disableCopiesOption': true,
+ 'disableLandscapeOption': true,
+ 'printerDefaultDuplexValue': 0
+ };
+ this.nativeLayer_.dispatchEvent(capsSetEvent);
+
+ var previewGenerator = mock(print_preview.PreviewGenerator);
+ printPreview.previewArea_.previewGenerator_ = previewGenerator.proxy();
+ previewGenerator.expects(once()).requestPreview();
+
+ var barDestination;
+ var destinations = printPreview.destinationStore_.destinations;
+ for (var destination, i = 0; destination = destinations[i]; i++) {
+ if (destination.id == 'BarDevice') {
+ barDestination = destination;
+ break;
+ }
+ }
+
+ printPreview.destinationStore_.selectDestination(barDestination);
+
+ var capsSetEvent =
+ new cr.Event(print_preview.NativeLayer.EventType.CAPABILITIES_SET);
+ capsSetEvent.settingsInfo = {
+ 'disableColorOption': true,
+ 'setColorAsDefault': false,
+ 'disableCopiesOption': true,
+ 'disableLandscapeOption': true,
+ 'printerDefaultDuplexValue': 0
+ };
+ this.nativeLayer_.dispatchEvent(capsSetEvent);
});
-/**
- * Test fixture to test case when no PDF plugin exists.
- * @extends {PrintPreviewWebUITest}
- * @constructor
- */
-function PrintPreviewNoPDFWebUITest() {}
+// Test that error message is displayed when plugin doesn't exist.
+TEST_F('PrintPreviewWebUITest', 'TestNoPDFPluginErrorMessage', function() {
+ var previewAreaEl = $('preview-area');
-PrintPreviewNoPDFWebUITest.prototype = {
- __proto__: PrintPreviewWebUITest.prototype,
+ var loadingMessageEl =
+ previewAreaEl.getElementsByClassName('preview-area-loading-message')[0];
+ expectEquals('none', loadingMessageEl.style.display);
- /**
- * Provide a typedef for C++ to correspond to JS subclass.
- * @type {?string}
- * @override
- */
- typedefCppFixture: 'PrintPreviewWebUITest',
+ var previewFailedMessageEl = previewAreaEl.getElementsByClassName(
+ 'preview-area-preview-failed-message')[0];
+ expectEquals('none', previewFailedMessageEl.style.display);
- /**
- * Always return false to simulate failure and check expected error condition.
- * @return {boolean} Always false.
- * @override
- */
- checkCompatiblePluginExists: function() {
- return false;
- },
-};
+ var printFailedMessageEl =
+ previewAreaEl.getElementsByClassName('preview-area-print-failed')[0];
+ expectEquals('none', printFailedMessageEl.style.display);
-// Test that error message is displayed when plugin doesn't exist.
-TEST_F('PrintPreviewNoPDFWebUITest', 'TestErrorMessage', function() {
- var errorButton = $('error-button');
- assertNotEquals(null, errorButton);
- expectFalse(errorButton.disabled);
- var errorText = $('custom-message');
- assertNotEquals(null, errorText);
- expectFalse(errorText.hidden);
+ var customMessageEl =
+ previewAreaEl.getElementsByClassName('preview-area-custom-message')[0];
+ expectEquals('', customMessageEl.style.display);
});
« no previous file with comments | « chrome/chrome_tests.gypi ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698