diff options
Diffstat (limited to 'toolkit/components/printing/tests/browser_empty_paper_sizes.js')
-rw-r--r-- | toolkit/components/printing/tests/browser_empty_paper_sizes.js | 97 |
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(); + }); +}); |