gecko-dev/toolkit/components/printing/tests/browser_print_scaling.js

47 строки
1.5 KiB
JavaScript

/* 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();
});
});