summaryrefslogtreecommitdiffstats
path: root/toolkit/components/printing/tests/browser_print_paper_sizes.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/printing/tests/browser_print_paper_sizes.js')
-rw-r--r--toolkit/components/printing/tests/browser_print_paper_sizes.js120
1 files changed, 120 insertions, 0 deletions
diff --git a/toolkit/components/printing/tests/browser_print_paper_sizes.js b/toolkit/components/printing/tests/browser_print_paper_sizes.js
new file mode 100644
index 0000000000..6f81a2a0b4
--- /dev/null
+++ b/toolkit/components/printing/tests/browser_print_paper_sizes.js
@@ -0,0 +1,120 @@
+"use strict";
+
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+async function selectPaperOptionWithValue(helper, value) {
+ let paperSelect = helper.get("paper-size-picker");
+ paperSelect.dispatchSettingsChange({
+ paperId: value,
+ });
+ await helper.awaitAnimationFrame();
+}
+
+add_task(async function testBadPaperSizeUnitCorrection() {
+ await PrintHelper.withTestPage(async helper => {
+ // Set prefs to select a non-default paper size
+ await SpecialPowers.pushPrefEnv({
+ set: [
+ ["print.printer_Mozilla_Save_to_PDF.print_paper_id", "na_letter"],
+ // paperSizeUnit is a bogus value, but the dimensions are correct for inches
+ ["print.printer_Mozilla_Save_to_PDF.print_paper_size_unit", 99],
+ ["print.printer_Mozilla_Save_to_PDF.print_paper_height", "11.0"],
+ ["print.printer_Mozilla_Save_to_PDF.print_paper_width", "8.50"],
+ ],
+ });
+ await helper.startPrint();
+
+ let paperSelect = helper.get("paper-size-picker");
+ is(paperSelect.value, "na_letter", "The expected paper size is selected");
+ is(
+ helper.viewSettings.paperId,
+ "na_letter",
+ "The settings have the expected paperId"
+ );
+ is(
+ helper.viewSettings.paperSizeUnit,
+ helper.settings.kPaperSizeInches,
+ "Check paperSizeUnit"
+ );
+ is(helper.viewSettings.paperWidth.toFixed(1), "8.5", "Check paperWidth");
+ is(helper.viewSettings.paperHeight.toFixed(1), "11.0", "Check paperHeight");
+
+ await selectPaperOptionWithValue(helper, "iso_a3");
+ is(paperSelect.value, "iso_a3", "The expected paper size is selected");
+ is(
+ helper.viewSettings.paperId,
+ "iso_a3",
+ "The settings have the expected paperId"
+ );
+ is(
+ helper.viewSettings.paperSizeUnit,
+ helper.settings.kPaperSizeInches,
+ "Check paperSizeUnit"
+ );
+ is(helper.viewSettings.paperWidth.toFixed(1), "11.7", "Check paperWidth");
+ is(helper.viewSettings.paperHeight.toFixed(1), "16.5", "Check paperHeight");
+
+ await SpecialPowers.popPrefEnv();
+ await helper.closeDialog();
+ });
+});
+
+add_task(async function testMismatchedPaperSizeUnitCorrection() {
+ await PrintHelper.withTestPage(async helper => {
+ // Set prefs to select a non-default paper size
+ await SpecialPowers.pushPrefEnv({
+ set: [
+ ["print.printer_Mozilla_Save_to_PDF.print_paper_id", "na_ledger"],
+ // paperSizeUnit is millimeters, but the dimensions are correct for inches
+ ["print.printer_Mozilla_Save_to_PDF.print_paper_size_unit", 1],
+ ["print.printer_Mozilla_Save_to_PDF.print_paper_width", "11.0"],
+ ["print.printer_Mozilla_Save_to_PDF.print_paper_height", "17.0"],
+ ],
+ });
+ await helper.startPrint();
+
+ let paperSelect = helper.get("paper-size-picker");
+ is(paperSelect.value, "na_ledger", "The expected paper size is selected");
+
+ // We expect to honor the paperSizeUnit, and convert paperWidth/Height to that unit
+ is(
+ helper.viewSettings.paperId,
+ "na_ledger",
+ "The settings have the expected paperId"
+ );
+ is(
+ helper.viewSettings.paperSizeUnit,
+ helper.settings.kPaperSizeMillimeters,
+ "Check paperSizeUnit"
+ );
+ is(helper.viewSettings.paperWidth.toFixed(1), "279.4", "Check paperWidth");
+ is(
+ helper.viewSettings.paperHeight.toFixed(1),
+ "431.8",
+ "Check paperHeight"
+ );
+
+ await selectPaperOptionWithValue(helper, "iso_a3");
+ is(paperSelect.value, "iso_a3", "The expected paper size is selected");
+ is(
+ helper.viewSettings.paperId,
+ "iso_a3",
+ "The settings have the expected paperId"
+ );
+ is(
+ helper.viewSettings.paperSizeUnit,
+ helper.settings.kPaperSizeMillimeters,
+ "Check paperSizeUnit"
+ );
+ is(helper.viewSettings.paperWidth.toFixed(1), "297.0", "Check paperWidth");
+ is(
+ helper.viewSettings.paperHeight.toFixed(1),
+ "420.0",
+ "Check paperHeight"
+ );
+
+ await SpecialPowers.popPrefEnv();
+ await helper.closeDialog();
+ });
+});