5 <title>Test Adding and Removing Alarms with Alarm API
</title>
6 <link rel=
"stylesheet" type=
"text/css" href=
"/tests/SimpleTest/test.css"/>
7 <script type=
"application/javascript" src=
"/tests/SimpleTest/SimpleTest.js"></script>
11 <div id=
"content" style=
"display: none"></div>
13 <script type=
"application/javascript">
17 function checkNumberOfAlarms(n, cbk) {
20 domRequest = navigator.mozAlarms.getAll();
23 "Unexpected exception trying to get all alarms.");
25 domRequest.onsuccess = function(e) {
26 ok(e.target.result.length === n,
"Correct number of alarms set.");
31 // Add alarm and then remove it
32 function testAddRemove() {
33 var tomorrow = new Date();
34 tomorrow.setDate(tomorrow.getDate() +
1);
38 domRequest = navigator.mozAlarms.getAll();
41 "Unexpected exception trying to get all alarms.");
43 return SimpleTest.finish();
45 domRequest.onsuccess = function(e) {
46 var initialAlarmsN = e.target.result.length;
50 dr = navigator.mozAlarms.add(tomorrow,
"honorTimezone", null);
53 "Unexpected exception trying add alarm.");
55 return SimpleTest.finish();
57 dr.onsuccess = function(ev) {
58 var alarmId = ev.target.result;
60 checkNumberOfAlarms(initialAlarmsN +
1, function() {
61 navigator.mozAlarms.remove(alarmId);
63 checkNumberOfAlarms(initialAlarmsN, function() {
73 function startTests() {
75 SpecialPowers.pushPrefEnv({
"set": [[
"dom.mozAlarms.enabled", true]]}, function() {
77 // Currently applicable only on FxOS
78 if (navigator.userAgent.indexOf(
"Mobile") != -
1 &&
79 navigator.appVersion.indexOf(
"Android") == -
1) {
84 ok(true,
"mozAlarms on Firefox OS only.");
91 SimpleTest.expectAssertions(
0,
9);
92 SimpleTest.waitForExplicitFinish();
93 if (SpecialPowers.hasPermission(
"alarms", document)) {
96 // Add the permission and reload so it's propogated
97 SpecialPowers.addPermission(
"alarms", true, document);
98 window.location.reload();