Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* Any copyright is dedicated to the Public Domain.
"use strict";
const PDF_PRINTER = "Mozilla Save to PDF";
function getDestinationNames(helper) {
let picker = helper.get("printer-picker");
return Array.from(picker.options).map(o => o.value);
}
add_task(async function testAutoDiscoveredPrintersSortedToBottom() {
await PrintHelper.withTestPage(async helper => {
// Add printers in a deliberately interleaved order to verify sorting is
// applied (not just preserving insertion order).
helper.addMockPrinter({ name: "Zebra Local", sortAfterLocal: false });
helper.addMockPrinter({ name: "Bonjour HP", sortAfterLocal: true });
helper.addMockPrinter({ name: "Apple Local", sortAfterLocal: false });
helper.addMockPrinter({ name: "Brother Network", sortAfterLocal: true });
await helper.startPrint();
let names = getDestinationNames(helper);
Assert.deepEqual(
names,
[
PDF_PRINTER,
"Apple Local",
"Zebra Local",
"Bonjour HP",
"Brother Network",
],
"Save-to-PDF first, then manually-added (alpha), then auto-discovered (alpha)"
);
await helper.closeDialog();
});
});
add_task(async function testSaveToPdfStaysFirstWhenAllAutoDiscovered() {
await PrintHelper.withTestPage(async helper => {
helper.addMockPrinter({ name: "Network A", sortAfterLocal: true });
helper.addMockPrinter({ name: "Network B", sortAfterLocal: true });
await helper.startPrint();
let names = getDestinationNames(helper);
Assert.deepEqual(
names,
[PDF_PRINTER, "Network A", "Network B"],
"Save-to-PDF remains at index 0"
);
await helper.closeDialog();
});
});