diff options
Diffstat (limited to 'dom/base/test/test_noAudioNotification.html')
-rw-r--r-- | dom/base/test/test_noAudioNotification.html | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/dom/base/test/test_noAudioNotification.html b/dom/base/test/test_noAudioNotification.html new file mode 100644 index 0000000000..18ac833a8b --- /dev/null +++ b/dom/base/test/test_noAudioNotification.html @@ -0,0 +1,77 @@ +<!DOCTYPE HTML> +<html> +<head> + <title>Test for video controller in windows</title> + <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> +</head> +<body> +<pre id="test"> +</pre> + +<script type="application/javascript"> + +SimpleTest.waitForExplicitFinish(); + +var observer = { + observe: function(subject, topic, data) { + ok(false, "should not receive audio-playback notification!"); + } +}; + +var observerService = SpecialPowers.Cc["@mozilla.org/observer-service;1"] + .getService(SpecialPowers.Ci.nsIObserverService); + +var video = document.createElement("video"); +video.loop = true; +video.src = "noaudio.webm"; + +video.onplay = video.onpause = function() { + // Yield to the event loop a few times to make sure that audio-playback is not dispatched. + SimpleTest.executeSoon(function() { + SimpleTest.executeSoon(function() { + SimpleTest.executeSoon(function() { + runTest(); + }); + }); + }); +}; + +var tests = [ + function() { + observerService.addObserver(observer, "audio-playback", false); + ok(true, "Observer set"); + runTest(); + }, + + function() { + video.play(); + }, + + function() { + video.pause(); + }, + + function() { + observerService.removeObserver(observer, "audio-playback"); + ok(true, "Observer removed"); + runTest(); + } +]; + +function runTest() { + if (!tests.length) { + SimpleTest.finish(); + return; + } + + var test = tests.shift(); + test(); +} + +runTest(); + +</script> +</body> +</html> + |