blob: 1bb50eef65a42c51f5a6f20dbc95343bca72bbea (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
<!DOCTYPE HTML>
<html>
<head>
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
</head>
<body onload="run()">
<script>
SimpleTest.waitForExplicitFinish();
async function run() {
try {
let printerList = Cc["@mozilla.org/gfx/printerlist;1"].getService(
Ci.nsIPrinterList
);
var settingsSvc = Cc["@mozilla.org/gfx/printsettings-service;1"].getService(
Ci.nsIPrintSettingsService
);
let printers = await printerList.printers;
for (let printer of printers) {
printer.QueryInterface(Ci.nsIPrinter);
let printerInfo = await printer.printerInfo;
// Look up the printer's defaultSettings:
let defaultSettings = printerInfo.defaultSettings;
// Let the printer impose its defaults onto a fresh settings object:
let freshSettings = settingsSvc.createNewPrintSettings();
printerList.initPrintSettingsFromPrinter(printer.name, freshSettings);
// Make sure they agree on the default orientation:
is(freshSettings.orientation, defaultSettings.orientation,
"initPrintSettingsFromPrinter should produce the same orientation " +
"as the printer's defaultSettings");
}
// This ok() just lets us avoid failure-due-to-no-tests-being-run, on
// devices that have no printers available & hence skip the loop above:
ok(true, "Finished traversing printers.");
} catch (e) {
ok(false, `Error thrown while retrieving printer info: ${e}.`);
console.error(e);
}
SimpleTest.finish();
}
</script>
</body>
</html>
|