mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-11 05:39:41 +02:00
This excludes dom/, otherwise the file size is too large for phabricator to handle. This is an autogenerated commit to handle scripts loading mochitest harness files, in the simple case where the script src is on the same line as the tag. This was generated with https://bug1544322.bmoattachments.org/attachment.cgi?id=9058170 using the `--part 2` argument. Differential Revision: https://phabricator.services.mozilla.com/D27456 --HG-- extra : moz-landing-system : lando
95 lines
3 KiB
HTML
95 lines
3 KiB
HTML
<!DOCTYPE HTML>
|
|
<!-- Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ -->
|
|
<html>
|
|
<head>
|
|
<title>Test for Alerts Service</title>
|
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
|
</head>
|
|
|
|
<body>
|
|
<p id="display"></p>
|
|
|
|
<br>Alerts service, without observer "asynchronous" case.
|
|
<br>
|
|
<br>A notification should soon appear somewhere.
|
|
<br>If there has been no crash when the notification (later) disappears, assume all is good.
|
|
|
|
<pre id="test">
|
|
<script class="testbody" type="text/javascript">
|
|
/* eslint-env mozilla/frame-script */
|
|
|
|
const Cc = SpecialPowers.Cc;
|
|
const Ci = SpecialPowers.Ci;
|
|
|
|
const chromeScript = SpecialPowers.loadChromeScript(_ => {
|
|
const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
|
|
const {setTimeout} = ChromeUtils.import("resource://gre/modules/Timer.jsm");
|
|
|
|
function anyXULAlertsVisible() {
|
|
var windows = Services.wm.getEnumerator("alert:alert");
|
|
return windows.hasMoreElements();
|
|
}
|
|
|
|
addMessageListener("anyXULAlertsVisible", anyXULAlertsVisible);
|
|
|
|
addMessageListener("waitForAlerts", function waitForAlerts() {
|
|
if (anyXULAlertsVisible()) {
|
|
setTimeout(waitForAlerts, 1000);
|
|
} else {
|
|
sendAsyncMessage("waitedForAlerts");
|
|
}
|
|
});
|
|
});
|
|
|
|
function waitForAlertsThenFinish() {
|
|
chromeScript.addMessageListener("waitedForAlerts", function waitedForAlerts() {
|
|
chromeScript.removeMessageListener("waitedForAlerts", waitedForAlerts);
|
|
ok(true, "Alert disappeared.");
|
|
SimpleTest.finish();
|
|
});
|
|
chromeScript.sendAsyncMessage("waitForAlerts");
|
|
}
|
|
|
|
function runTest() {
|
|
if (!("@mozilla.org/alerts-service;1" in Cc)) {
|
|
todo(false, "Alerts service does not exist in this application");
|
|
} else {
|
|
ok(true, "Alerts service exists in this application");
|
|
|
|
var notifier;
|
|
try {
|
|
notifier = Cc["@mozilla.org/alerts-service;1"].
|
|
getService(Ci.nsIAlertsService);
|
|
ok(true, "Alerts service is available");
|
|
} catch (ex) {
|
|
todo(false, "Alerts service is not available.", ex);
|
|
}
|
|
|
|
if (notifier) {
|
|
try {
|
|
notifier.showAlertNotification(null, "Notification test",
|
|
"This notification has no observer");
|
|
ok(true, "showAlertNotification() succeeded");
|
|
} catch (ex) {
|
|
todo(false, "showAlertNotification() failed.", ex);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
SimpleTest.requestFlakyTimeout("untriaged");
|
|
|
|
// sendSyncMessage returns an array of arrays: the outer array is from the
|
|
// message manager, and the inner array is from the chrome script's listeners.
|
|
// See the comment in test_SpecialPowersLoadChromeScript.html.
|
|
var [[alertsVisible]] = chromeScript.sendSyncMessage("anyXULAlertsVisible");
|
|
ok(!alertsVisible, "Alerts should not be present at the start of the test.");
|
|
runTest();
|
|
setTimeout(waitForAlertsThenFinish, 1000);
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|