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

Unified Diff: chrome/browser/resources/print_preview/print_preview.js

Issue 335583004: Added a test that currently is able to print to pdf. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Made observer_ in UIDoneLoadingMessageHandler point to a constant address. Created 6 years, 5 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
Index: chrome/browser/resources/print_preview/print_preview.js
diff --git a/chrome/browser/resources/print_preview/print_preview.js b/chrome/browser/resources/print_preview/print_preview.js
index ac3a0ab789135db2746d6fe3b522398b759867d9..97ffbdbd70b821b6dd528957d2917cd8c4668d84 100644
--- a/chrome/browser/resources/print_preview/print_preview.js
+++ b/chrome/browser/resources/print_preview/print_preview.js
@@ -285,7 +285,10 @@ cr.define('print_preview', function() {
this.nativeLayer_,
print_preview.NativeLayer.EventType.PRIVET_PRINT_FAILED,
this.onPrivetPrintFailed_.bind(this));
-
+ this.tracker.add(
+ this.nativeLayer_,
+ print_preview.NativeLayer.EventType.MANIPULATE_SETTINGS_FOR_TEST,
+ this.onManipulateSettingsForTest_.bind(this));
this.tracker.add(
$('system-dialog-link'),
@@ -691,6 +694,7 @@ cr.define('print_preview', function() {
onPreviewGenerationDone_: function() {
this.isPreviewGenerationInProgress_ = false;
this.printHeader_.isPrintButtonEnabled = true;
+ this.nativeLayer_.previewReadyForTest();
this.printIfReady_();
},
@@ -890,6 +894,140 @@ cr.define('print_preview', function() {
},
/**
+ * Called when the print preview settings need to be changed for testing.
+ * @param {Event} event Event object that contains the option that is to
+ * be changed and what to set that option.
+ * @private
+ */
+ onManipulateSettingsForTest_: function(event) {
+ if ('selectSaveAsPdfDestination' in event.settings) {
+ this.saveAsPdfForTest_(); // No parameters
+ } else if ('layoutSettings' in event.settings) {
+ this.setLayoutSettingsForTest_(event.settings.layoutSettings.portrait);
+ } else if ('pageRange' in event.settings) {
+ this.setPageRangeForTest_(event.settings.pageRange);
+ } else if ('headersAndFooters' in event.settings) {
+ this.setHeadersAndFootersForTest_(event.settings.headersAndFooters);
+ } else if ('backgroundColorsAndImages' in event.settings) {
+ this.setBackgroundColorsAndImagesForTest_(
+ event.settings.backgroundColorsAndImages);
+ } else if ('margins' in event.settings) {
+ this.setMarginsForTest_(event.settings.margins);
+ }
+ },
+
+ /**
+ * Called by onManipulateSettingsForTest_(). Sets the print destination
+ * as a pdf.
+ * @private
+ */
+ saveAsPdfForTest_: function() {
+ if (print_preview.Destination.GooglePromotedId.SAVE_AS_PDF ==
+ this.destinationStore_.selectedDestination.id) {
+ this.nativeLayer_.previewReadyForTest();
+ return;
+ }
+
+ var destinations = this.destinationStore_.destinations();
+ var pdfDestination = null;
+ for (var i = 0; i < destinations.length; i++) {
+ if (destinations[i].id ==
+ print_preview.Destination.GooglePromotedId.SAVE_AS_PDF) {
+ pdfDestination = destinations[i];
+ break;
+ }
+ }
+
+ if (pdfDestination)
+ this.destinationStore_.selectDestination(pdfDestination);
+ else
+ this.nativeLayer_.previewFailedForTest();
+ },
+
+ /**
+ * Called by onManipulateSettingsForTest_(). Sets the layout settings to
+ * either portrait or landscape.
+ * @param {boolean} portrait Whether to use portrait page layout;
+ * if false: landscape.
+ * @private
+ */
+ setLayoutSettingsForTest_: function(portrait) {
+ var element = document.querySelector(portrait ?
+ '.layout-settings-portrait-radio' :
+ '.layout-settings-landscape-radio');
+ if (element.checked)
+ this.nativeLayer_.previewReadyForTest();
+ else
+ element.click();
+ },
+
+ /**
+ * Called by onManipulateSettingsForTest_(). Sets the page range for
+ * for the print preview settings.
+ * @param {string} pageRange Sets the page range to the desired value(s).
+ * Ex: "1-5,9" means pages 1 through 5 and page 9 will be printed.
+ * @private
+ */
+ setPageRangeForTest_: function(pageRange) {
+ var textbox = document.querySelector('.page-settings-custom-input');
+ if (textbox.value == pageRange) {
+ this.nativeLayer_.previewReadyForTest();
+ } else {
+ textbox.value = pageRange;
+ document.querySelector('.page-settings-custom-radio').click();
+ }
+ },
+
+ /**
+ * Called by onManipulateSettings_(). Checks or unchecks the headers and
+ * footers option on print preview.
+ * @param {boolean} headersAndFooters Whether the "Headers and Footers"
+ * checkbox should be checked.
+ * @private
+ */
+ setHeadersAndFootersForTest_: function(headersAndFooters) {
+ var checkbox = document.querySelector('.header-footer-checkbox');
+ if (headersAndFooters == checkbox.checked)
+ this.nativeLayer_.previewReadyForTest();
+ else
+ checkbox.click();
+ },
+
+ /**
+ * Called by onManipulateSettings_(). Checks or unchecks the background
+ * colors and images option on print preview.
+ * @param {boolean} backgroundColorsAndImages If true, the checkbox should
+ * be checked. Otherwise it should be unchecked.
+ * @private
+ */
+ setBackgroundColorsAndImagesForTest_: function(backgroundColorsAndImages) {
+ var checkbox = document.querySelector('.css-background-checkbox');
+ if (backgroundColorsAndImages == checkbox.checked)
+ this.nativeLayer_.previewReadyForTest();
+ else
+ checkbox.click();
+ },
+
+ /**
+ * Called by onManipulateSettings_(). Sets the margin settings
+ * that are desired. Custom margin settings aren't currently supported.
+ * @param {number} margins The desired margins combobox index. Must be
+ * a valid index or else the test fails.
+ * @private
+ */
+ setMarginsForTest_: function(margins) {
+ var combobox = document.querySelector('.margin-settings-select');
+ if (margins == combobox.selectedIndex) {
+ this.nativeLayer_.previewReadyForTest();
+ } else if (margins >= 0 && margins < combobox.length) {
+ combobox.selectedIndex = margins;
+ this.marginSettings_.onSelectChange_();
+ } else {
+ this.nativeLayer_.previewFailedForTest();
+ }
+ },
+
+ /**
* Called when the open-cloud-print-dialog link is clicked. Opens the Google
* Cloud Print web dialog.
* @private
« no previous file with comments | « chrome/browser/resources/print_preview/native_layer.js ('k') | chrome/browser/ui/webui/print_preview/print_preview_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698