1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/layout/base/tests/chrome/printpreview_bug482976_helper.xul Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,82 @@ 1.4 +<?xml version="1.0"?> 1.5 +<?xml-stylesheet type="text/css" href="chrome://global/skin"?> 1.6 +<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" 1.7 + type="text/css"?> 1.8 +<!-- 1.9 +https://bugzilla.mozilla.org/show_bug.cgi?id=482976 1.10 +--> 1.11 +<window title="Mozilla Bug 482976" onload="run1()" 1.12 + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> 1.13 +<iframe src="about:blank" type="content"></iframe> 1.14 +<iframe src="about:blank" type="content"></iframe> 1.15 +<script type="application/javascript"> 1.16 +<![CDATA[ 1.17 +var is = window.opener.wrappedJSObject.is; 1.18 +var ok = window.opener.wrappedJSObject.ok; 1.19 +var todo = window.opener.wrappedJSObject.todo; 1.20 +var SimpleTest = window.opener.wrappedJSObject.SimpleTest; 1.21 +var gWbp; 1.22 +function printpreview() { 1.23 + gWbp = window.frames[1].QueryInterface(Components.interfaces.nsIInterfaceRequestor) 1.24 + .getInterface(Components.interfaces.nsIWebBrowserPrint); 1.25 + var listener = { 1.26 + onLocationChange: function(webProgress, request, location, flags) { }, 1.27 + onProgressChange: function(webProgress, request, curSelfProgress, 1.28 + maxSelfProgress, curTotalProgress, 1.29 + maxTotalProgress) { }, 1.30 + onSecurityChange: function(webProgress, request, state) { }, 1.31 + onStateChange: function(webProgress, request, stateFlags, status) { }, 1.32 + onStatusChange: function(webProgress, request, status, message) { }, 1.33 + QueryInterface: function(iid) { 1.34 + if (iid.equals(Components.interfaces.nsIWebProgessListener) || 1.35 + iid.equals(Components.interfaces.nsISupportsWeakReference)) 1.36 + return this; 1.37 + throw Components.results.NS_NOINTERFACE; 1.38 + } 1.39 + } 1.40 + var prefs = Components.classes["@mozilla.org/preferences-service;1"] 1.41 + .getService(Components.interfaces.nsIPrefBranch); 1.42 + prefs.setBoolPref('print.show_print_progress', false); 1.43 + //XXX I would have thought this would work, instead I'm forced to use prefs service 1.44 + gWbp.globalPrintSettings.showPrintProgress = false; 1.45 + gWbp.printPreview(gWbp.globalPrintSettings, window.frames[0], listener); 1.46 + prefs.clearUserPref('print.show_print_progress'); 1.47 +} 1.48 + 1.49 +function exitprintpreview() { 1.50 + window.frames[1].QueryInterface(Components.interfaces.nsIInterfaceRequestor) 1.51 + .getInterface(Components.interfaces.nsIWebBrowserPrint).exitPrintPreview(); 1.52 +} 1.53 + 1.54 +function finish() { 1.55 + SimpleTest.finish(); 1.56 + window.close(); 1.57 +} 1.58 + 1.59 +function run1() 1.60 +{ 1.61 +/** Test for Bug 482976 **/ 1.62 + var printService = Components.classes["@mozilla.org/gfx/printsettings-service;1"] 1.63 + .getService(Components.interfaces.nsIPrintSettingsService); 1.64 + 1.65 + try { 1.66 + Components.classes["@mozilla.org/gfx/printerenumerator;1"] 1.67 + .getService(Components.interfaces.nsIPrinterEnumerator); 1.68 + } catch(e) { 1.69 + todo(false, "Test skipped on MacOSX, as the print preview code doesn't work there"); 1.70 + finish(); 1.71 + return; 1.72 + } 1.73 + 1.74 + if (printService.defaultPrinterName != '') { 1.75 + printpreview(); 1.76 + ok(gWbp.doingPrintPreview, "Should be doing print preview"); 1.77 + exitprintpreview(); 1.78 + ok(!gWbp.doingPrintPreview, "Should not be doing print preview anymore"); 1.79 + } else { 1.80 + todo(false, "No printer seems installed on this machine, that is necessary for this test"); 1.81 + } 1.82 + finish(); 1.83 +} 1.84 +]]></script> 1.85 +</window>