summaryrefslogtreecommitdiffstats
path: root/toolkit/components/printing/tests/browser_empty_paper_sizes.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /toolkit/components/printing/tests/browser_empty_paper_sizes.js
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/components/printing/tests/browser_empty_paper_sizes.js')
-rw-r--r--toolkit/components/printing/tests/browser_empty_paper_sizes.js97
1 files changed, 97 insertions, 0 deletions
diff --git a/toolkit/components/printing/tests/browser_empty_paper_sizes.js b/toolkit/components/printing/tests/browser_empty_paper_sizes.js
new file mode 100644
index 0000000000..a7ce568bb8
--- /dev/null
+++ b/toolkit/components/printing/tests/browser_empty_paper_sizes.js
@@ -0,0 +1,97 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+add_task(async function testSanityCheckPaperList() {
+ const mockPrinterName = "Fake Printer";
+ await PrintHelper.withTestPage(async helper => {
+ let paperList = [
+ PrintHelper.createMockPaper({
+ id: "regular",
+ name: "Regular Paper",
+ }),
+ PrintHelper.createMockPaper({
+ id: "large",
+ name: "Large Size",
+ width: 720,
+ height: 1224,
+ }),
+ ];
+ helper.addMockPrinter({ name: mockPrinterName, paperList });
+ await helper.startPrint();
+ await helper.dispatchSettingsChange({ printerName: mockPrinterName });
+ await helper.waitForSettingsEvent();
+
+ is(
+ helper.settings.printerName,
+ mockPrinterName,
+ "The Fake Printer is current printer"
+ );
+ is(
+ Object.values(helper.win.PrintSettingsViewProxy.availablePaperSizes)
+ .length,
+ 2,
+ "There are 2 paper sizes"
+ );
+ ok(
+ helper.win.PrintSettingsViewProxy.availablePaperSizes.regular,
+ "'regular' paper size is available"
+ );
+ ok(
+ helper.win.PrintSettingsViewProxy.availablePaperSizes.large,
+ "'large' paper size is available"
+ );
+ });
+});
+
+add_task(async function testEmptyPaperListGetsFallbackPaperSizes() {
+ const mockPrinterName = "Fake Printer";
+ await PrintHelper.withTestPage(async helper => {
+ helper.addMockPrinter(mockPrinterName);
+ await helper.startPrint();
+
+ is(
+ Object.values(helper.win.PrintSettingsViewProxy.availablePrinters).length,
+ 2,
+ "There are 2 available printers"
+ );
+ ok(
+ helper.win.PrintSettingsViewProxy.availablePrinters[mockPrinterName],
+ "The Fake Printer is one of our availablePrinters"
+ );
+
+ await helper.dispatchSettingsChange({ printerName: mockPrinterName });
+ await helper.waitForSettingsEvent();
+
+ is(
+ helper.settings.printerName,
+ mockPrinterName,
+ "The Fake Printer is current printer"
+ );
+ is(
+ helper.get("printer-picker").value,
+ mockPrinterName,
+ "The Fake Printer is selected"
+ );
+
+ let printerList = Cc["@mozilla.org/gfx/printerlist;1"].createInstance(
+ Ci.nsIPrinterList
+ );
+ let fallbackPaperList = await printerList.fallbackPaperList;
+ let paperPickerSizes = Array.from(
+ helper.get("paper-size-picker").options
+ ).map(o => o.value);
+ for (let paper of fallbackPaperList) {
+ ok(
+ helper.win.PrintSettingsViewProxy.availablePaperSizes[paper.id],
+ "Fallback paper size: " + paper.id + " is available"
+ );
+ ok(
+ paperPickerSizes.includes(paper.id),
+ "There is a paper size options for " + paper.id
+ );
+ }
+ await helper.closeDialog();
+ });
+});