summaryrefslogtreecommitdiffstats
path: root/layout/base/tests/chrome/test_get_printer_orientation.html
diff options
context:
space:
mode:
Diffstat (limited to 'layout/base/tests/chrome/test_get_printer_orientation.html')
-rw-r--r--layout/base/tests/chrome/test_get_printer_orientation.html50
1 files changed, 50 insertions, 0 deletions
diff --git a/layout/base/tests/chrome/test_get_printer_orientation.html b/layout/base/tests/chrome/test_get_printer_orientation.html
new file mode 100644
index 0000000000..1bb50eef65
--- /dev/null
+++ b/layout/base/tests/chrome/test_get_printer_orientation.html
@@ -0,0 +1,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>