gecko-dev/widget/tests/test_taskbar_progress.xul
Brian Grinstead 911776d674 Bug 1544322 - Part 3 - Remove the [type] attribute for multiline <script> tags loading files in chrome://mochikit/content/ r=bzbarsky
This is an autogenerated commit to handle scripts loading mochitest harness files, in
the case where the script src is on the line below the script tag.

This was generated with https://bug1544322.bmoattachments.org/attachment.cgi?id=9058170
using the `--part 3` argument.

Differential Revision: https://phabricator.services.mozilla.com/D27458

--HG--
extra : moz-landing-system : lando
2019-04-16 03:59:25 +00:00

123 lines
4.1 KiB
XML

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
type="text/css"?>
<window title="Taskbar Previews Test"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
onload="loaded();">
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
<script class="testbody" type="application/javascript">
<![CDATA[
ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
let TP = Ci.nsITaskbarProgress;
function IsWin7OrHigher() {
try {
var sysInfo = Cc["@mozilla.org/system-info;1"].
getService(Ci.nsIPropertyBag2);
var ver = parseFloat(sysInfo.getProperty("version"));
if (ver >= 6.1)
return true;
} catch (ex) { }
return false;
}
function winProgress() {
let taskbar = Cc["@mozilla.org/windows-taskbar;1"];
if (!taskbar) {
ok(false, "Taskbar service is always available");
return null;
}
taskbar = taskbar.getService(Ci.nsIWinTaskbar);
is(taskbar.available, IsWin7OrHigher(), "Expected availability of taskbar");
if (!taskbar.available)
return null;
// HACK from mconnor:
var wm = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator);
let win = wm.getMostRecentWindow("navigator:browser");
let docShell = win.docShell;
let progress = taskbar.getTaskbarProgress(docShell);
isnot(progress, null, "Progress is not null");
try {
taskbar.getTaskbarProgress(null);
ok(false, "Got progress for null docshell");
} catch (e) {
ok(true, "Cannot get progress for null docshell");
}
return progress;
}
function macProgress() {
let progress = Cc["@mozilla.org/widget/macdocksupport;1"];
if (!progress) {
ok(false, "Should have gotten Mac progress service.");
return null;
}
return progress.getService(TP);
}
SimpleTest.waitForExplicitFinish();
function loaded()
{
let isWin = /Win/.test(navigator.platform);
let progress = isWin ? winProgress() : macProgress();
if (!TP || !progress) {
SimpleTest.finish();
return;
}
function shouldThrow(s,c,m) {
try {
progress.setProgressState(s,c,m);
return false;
} catch (e) {
return true;
}
}
function doesntThrow(s,c,m) {
return !shouldThrow(s,c,m);
}
ok(doesntThrow(TP.STATE_NO_PROGRESS, 0, 0), "No progress state can be set");
ok(doesntThrow(TP.STATE_INDETERMINATE, 0, 0), "Indeterminate state can be set");
ok(doesntThrow(TP.STATE_NORMAL, 0, 0), "Normal state can be set");
ok(doesntThrow(TP.STATE_ERROR, 0, 0), "Error state can be set");
ok(doesntThrow(TP.STATE_PAUSED, 0, 0), "Paused state can be set");
ok(shouldThrow(TP.STATE_NO_PROGRESS, 1, 1), "Cannot set no progress with values");
ok(shouldThrow(TP.STATE_INDETERMINATE, 1, 1), "Cannot set indeterminate with values");
// Technically passes since unsigned(-1) > 10
ok(shouldThrow(TP.STATE_NORMAL, -1, 10), "Cannot set negative progress");
todo(shouldThrow(TP.STATE_NORMAL, 1, -1), "Cannot set negative progress");
todo(shouldThrow(TP.STATE_NORMAL, -1, -1), "Cannot set negative progress");
todo(shouldThrow(TP.STATE_NORMAL, -2, -1), "Cannot set negative progress");
ok(shouldThrow(TP.STATE_NORMAL, 5, 3), "Cannot set progress greater than max");
ok(doesntThrow(TP.STATE_NORMAL, 1, 5), "Normal state can be set with values");
ok(doesntThrow(TP.STATE_ERROR, 3, 6), "Error state can be set with values");
ok(doesntThrow(TP.STATE_PAUSED, 2, 9), "Paused state can be set with values");
SimpleTest.finish();
}
]]>
</script>
<body xmlns="http://www.w3.org/1999/xhtml">
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test"></pre>
</body>
</window>