Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
michael@0 | 1 | <!DOCTYPE HTML> |
michael@0 | 2 | <html> |
michael@0 | 3 | <head> |
michael@0 | 4 | <title>Test for audio controller in windows</title> |
michael@0 | 5 | <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> |
michael@0 | 6 | <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> |
michael@0 | 7 | </head> |
michael@0 | 8 | <body> |
michael@0 | 9 | <pre id="test"> |
michael@0 | 10 | </pre> |
michael@0 | 11 | |
michael@0 | 12 | <script type="application/javascript"> |
michael@0 | 13 | |
michael@0 | 14 | SimpleTest.waitForExplicitFinish(); |
michael@0 | 15 | |
michael@0 | 16 | var expectedNotification = null; |
michael@0 | 17 | |
michael@0 | 18 | var observer = { |
michael@0 | 19 | observe: function(subject, topic, data) { |
michael@0 | 20 | is(topic, "media-playback", "media-playback received"); |
michael@0 | 21 | is(data, expectedNotification, "This is the right notification"); |
michael@0 | 22 | runTest(); |
michael@0 | 23 | } |
michael@0 | 24 | }; |
michael@0 | 25 | |
michael@0 | 26 | var observerService = SpecialPowers.Cc["@mozilla.org/observer-service;1"] |
michael@0 | 27 | .getService(SpecialPowers.Ci.nsIObserverService); |
michael@0 | 28 | |
michael@0 | 29 | var audio = new Audio(); |
michael@0 | 30 | audio.src = "audio.ogg"; |
michael@0 | 31 | |
michael@0 | 32 | var tests = [ |
michael@0 | 33 | function() { |
michael@0 | 34 | SpecialPowers.pushPrefEnv({"set": [["media.useAudioChannelService", true]]}, runTest); |
michael@0 | 35 | }, |
michael@0 | 36 | |
michael@0 | 37 | function() { |
michael@0 | 38 | observerService.addObserver(observer, "media-playback", false); |
michael@0 | 39 | ok(true, "Observer set"); |
michael@0 | 40 | runTest(); |
michael@0 | 41 | }, |
michael@0 | 42 | |
michael@0 | 43 | function() { |
michael@0 | 44 | expectedNotification = 'active'; |
michael@0 | 45 | audio.play(); |
michael@0 | 46 | }, |
michael@0 | 47 | |
michael@0 | 48 | function() { |
michael@0 | 49 | expectedNotification = 'inactive'; |
michael@0 | 50 | audio.pause(); |
michael@0 | 51 | }, |
michael@0 | 52 | |
michael@0 | 53 | function() { |
michael@0 | 54 | observerService.removeObserver(observer, "media-playback"); |
michael@0 | 55 | ok(true, "Observer removed"); |
michael@0 | 56 | runTest(); |
michael@0 | 57 | } |
michael@0 | 58 | ]; |
michael@0 | 59 | |
michael@0 | 60 | function runTest() { |
michael@0 | 61 | if (!tests.length) { |
michael@0 | 62 | SimpleTest.finish(); |
michael@0 | 63 | return; |
michael@0 | 64 | } |
michael@0 | 65 | |
michael@0 | 66 | var test = tests.shift(); |
michael@0 | 67 | test(); |
michael@0 | 68 | } |
michael@0 | 69 | |
michael@0 | 70 | runTest(); |
michael@0 | 71 | |
michael@0 | 72 | </script> |
michael@0 | 73 | </body> |
michael@0 | 74 | </html> |
michael@0 | 75 |