diff -r 000000000000 -r 6474c204b198 webapprt/test/chrome/browser_getUserMedia.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webapprt/test/chrome/browser_getUserMedia.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,42 @@ +Cu.import("resource://gre/modules/Services.jsm"); + +function test() { + waitForExplicitFinish(); + + Services.prefs.setBoolPref("media.navigator.permission.fake", true); + + let getUserMediaDialogOpened = false; + + let winObserver = function(win, topic) { + if (topic == "domwindowopened") { + win.addEventListener("load", function onLoadWindow() { + win.removeEventListener("load", onLoadWindow, false); + + if (win.document.documentURI == "chrome://webapprt/content/getUserMediaDialog.xul") { + getUserMediaDialogOpened = true; + win.close(); + } + }, false); + } + } + + Services.ww.registerNotification(winObserver); + + let mutObserver = null; + + loadWebapp("getUserMedia.webapp", undefined, function onLoad() { + let msg = gAppBrowser.contentDocument.getElementById("msg"); + mutObserver = new MutationObserver(function(mutations) { + is(msg.textContent, "PERMISSION_DENIED", "getUserMedia permission denied."); + ok(getUserMediaDialogOpened, "Prompt shown."); + finish(); + }); + mutObserver.observe(msg, { childList: true }); + }); + + registerCleanupFunction(function() { + Services.ww.unregisterNotification(winObserver); + mutObserver.disconnect(); + Services.prefs.clearUserPref("media.navigator.permission.fake"); + }); +}