|
1 <?xml version="1.0"?> |
|
2 <?xml-stylesheet type="text/css" href="chrome://global/skin"?> |
|
3 <?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" |
|
4 type="text/css"?> |
|
5 <!-- |
|
6 https://bugzilla.mozilla.org/show_bug.cgi?id=482976 |
|
7 --> |
|
8 <window title="Mozilla Bug 482976" onload="run1()" |
|
9 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> |
|
10 <iframe src="about:blank" type="content"></iframe> |
|
11 <iframe src="about:blank" type="content"></iframe> |
|
12 <script type="application/javascript"> |
|
13 <![CDATA[ |
|
14 var is = window.opener.wrappedJSObject.is; |
|
15 var ok = window.opener.wrappedJSObject.ok; |
|
16 var todo = window.opener.wrappedJSObject.todo; |
|
17 var SimpleTest = window.opener.wrappedJSObject.SimpleTest; |
|
18 var gWbp; |
|
19 function printpreview() { |
|
20 gWbp = window.frames[1].QueryInterface(Components.interfaces.nsIInterfaceRequestor) |
|
21 .getInterface(Components.interfaces.nsIWebBrowserPrint); |
|
22 var listener = { |
|
23 onLocationChange: function(webProgress, request, location, flags) { }, |
|
24 onProgressChange: function(webProgress, request, curSelfProgress, |
|
25 maxSelfProgress, curTotalProgress, |
|
26 maxTotalProgress) { }, |
|
27 onSecurityChange: function(webProgress, request, state) { }, |
|
28 onStateChange: function(webProgress, request, stateFlags, status) { }, |
|
29 onStatusChange: function(webProgress, request, status, message) { }, |
|
30 QueryInterface: function(iid) { |
|
31 if (iid.equals(Components.interfaces.nsIWebProgessListener) || |
|
32 iid.equals(Components.interfaces.nsISupportsWeakReference)) |
|
33 return this; |
|
34 throw Components.results.NS_NOINTERFACE; |
|
35 } |
|
36 } |
|
37 var prefs = Components.classes["@mozilla.org/preferences-service;1"] |
|
38 .getService(Components.interfaces.nsIPrefBranch); |
|
39 prefs.setBoolPref('print.show_print_progress', false); |
|
40 //XXX I would have thought this would work, instead I'm forced to use prefs service |
|
41 gWbp.globalPrintSettings.showPrintProgress = false; |
|
42 gWbp.printPreview(gWbp.globalPrintSettings, window.frames[0], listener); |
|
43 prefs.clearUserPref('print.show_print_progress'); |
|
44 } |
|
45 |
|
46 function exitprintpreview() { |
|
47 window.frames[1].QueryInterface(Components.interfaces.nsIInterfaceRequestor) |
|
48 .getInterface(Components.interfaces.nsIWebBrowserPrint).exitPrintPreview(); |
|
49 } |
|
50 |
|
51 function finish() { |
|
52 SimpleTest.finish(); |
|
53 window.close(); |
|
54 } |
|
55 |
|
56 function run1() |
|
57 { |
|
58 /** Test for Bug 482976 **/ |
|
59 var printService = Components.classes["@mozilla.org/gfx/printsettings-service;1"] |
|
60 .getService(Components.interfaces.nsIPrintSettingsService); |
|
61 |
|
62 try { |
|
63 Components.classes["@mozilla.org/gfx/printerenumerator;1"] |
|
64 .getService(Components.interfaces.nsIPrinterEnumerator); |
|
65 } catch(e) { |
|
66 todo(false, "Test skipped on MacOSX, as the print preview code doesn't work there"); |
|
67 finish(); |
|
68 return; |
|
69 } |
|
70 |
|
71 if (printService.defaultPrinterName != '') { |
|
72 printpreview(); |
|
73 ok(gWbp.doingPrintPreview, "Should be doing print preview"); |
|
74 exitprintpreview(); |
|
75 ok(!gWbp.doingPrintPreview, "Should not be doing print preview anymore"); |
|
76 } else { |
|
77 todo(false, "No printer seems installed on this machine, that is necessary for this test"); |
|
78 } |
|
79 finish(); |
|
80 } |
|
81 ]]></script> |
|
82 </window> |