michael@0: Cu.import("resource://gre/modules/Services.jsm"); michael@0: michael@0: function test() { michael@0: waitForExplicitFinish(); michael@0: michael@0: let mutObserverAlarmSet = null; michael@0: let mutObserverAlarmFired = null; michael@0: michael@0: let alarmSet = false; michael@0: michael@0: loadWebapp("alarm.webapp", undefined, function onLoad() { michael@0: let principal = document.getElementById("content").contentDocument.defaultView.document.nodePrincipal; michael@0: let permValue = Services.perms.testExactPermissionFromPrincipal(principal, "alarms"); michael@0: is(permValue, Ci.nsIPermissionManager.ALLOW_ACTION, "Alarm permission: allow."); michael@0: michael@0: let msgSet = gAppBrowser.contentDocument.getElementById("msgSet"); michael@0: mutObserverAlarmSet = new MutationObserver(function(mutations) { michael@0: is(msgSet.textContent, "Success.", "Alarm added."); michael@0: alarmSet = true; michael@0: }); michael@0: mutObserverAlarmSet.observe(msgSet, { childList: true }); michael@0: michael@0: let msgFired = gAppBrowser.contentDocument.getElementById("msgFired"); michael@0: mutObserverAlarmFired = new MutationObserver(function(mutations) { michael@0: is(msgFired.textContent, "Alarm fired.", "Alarm fired."); michael@0: michael@0: ok(alarmSet, "Alarm set before firing."); michael@0: michael@0: finish(); michael@0: }); michael@0: mutObserverAlarmFired.observe(msgFired, { childList: true }); michael@0: }); michael@0: michael@0: registerCleanupFunction(function() { michael@0: mutObserverAlarmSet.disconnect(); michael@0: mutObserverAlarmFired.disconnect(); michael@0: }); michael@0: }