diff options
Diffstat (limited to 'toolkit/components/printing/tests/browser_print_scaling.js')
-rw-r--r-- | toolkit/components/printing/tests/browser_print_scaling.js | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/toolkit/components/printing/tests/browser_print_scaling.js b/toolkit/components/printing/tests/browser_print_scaling.js new file mode 100644 index 0000000000..85b8a68449 --- /dev/null +++ b/toolkit/components/printing/tests/browser_print_scaling.js @@ -0,0 +1,46 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +add_task(async function testInvalidScaleResetAfterDestinationChange() { + const mockPrinterName = "Fake Printer"; + await PrintHelper.withTestPage(async helper => { + helper.addMockPrinter(mockPrinterName); + await helper.startPrint(); + + let destinationPicker = helper.get("printer-picker"); + + await helper.openMoreSettings(); + let scaleRadio = helper.get("percent-scale-choice"); + await helper.assertSettingsChanged( + { shrinkToFit: true }, + { shrinkToFit: false }, + async () => { + await helper.waitForPreview(() => helper.click(scaleRadio)); + } + ); + let percentScale = helper.get("percent-scale"); + + let scaleError = helper.get("error-invalid-scale"); + + await helper.assertSettingsNotChanged({ scaling: 1 }, async () => { + ok(scaleError.hidden, "Scale error is hidden"); + await helper.text(percentScale, "9"); + await BrowserTestUtils.waitForAttributeRemoval("hidden", scaleError); + ok(!scaleError.hidden, "Scale error is showing"); + }); + + is(destinationPicker.disabled, false, "Destination picker is enabled"); + + // Select a new printer + await helper.dispatchSettingsChange({ printerName: mockPrinterName }); + await BrowserTestUtils.waitForCondition( + () => scaleError.hidden, + "Wait for scale error to be hidden" + ); + is(percentScale.value, "100", "Scale has reset to 100"); + + await helper.closeDialog(); + }); +}); |