diff options
Diffstat (limited to 'dom/browser-element/mochitest/browserElement_AudioChannel_nested.js')
-rw-r--r-- | dom/browser-element/mochitest/browserElement_AudioChannel_nested.js | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/dom/browser-element/mochitest/browserElement_AudioChannel_nested.js b/dom/browser-element/mochitest/browserElement_AudioChannel_nested.js new file mode 100644 index 000000000..2ed432b2a --- /dev/null +++ b/dom/browser-element/mochitest/browserElement_AudioChannel_nested.js @@ -0,0 +1,69 @@ +/* Any copyright is dedicated to the public domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +// Bug 1113086 - tests for AudioChannel API into BrowserElement + +"use strict"; + +SimpleTest.waitForExplicitFinish(); +browserElementTestHelpers.setEnabledPref(true); + +function runTests() { + var iframe = document.createElement('iframe'); + iframe.setAttribute('mozbrowser', 'true'); + + var listener = function(e) { + var message = e.detail.message; + if (/^OK/.exec(message)) { + ok(true, "Message from app: " + message); + } else if (/^KO/.exec(message)) { + ok(false, "Message from app: " + message); + } else if (/DONE/.exec(message)) { + ok(true, "Messaging from app complete"); + iframe.removeEventListener('mozbrowsershowmodalprompt', listener); + SimpleTest.finish(); + } + } + + function audio_loadend() { + ok("mute" in iframe, "iframe.mute exists"); + ok("unmute" in iframe, "iframe.unmute exists"); + ok("getMuted" in iframe, "iframe.getMuted exists"); + ok("getVolume" in iframe, "iframe.getVolume exists"); + ok("setVolume" in iframe, "iframe.setVolume exists"); + + ok("allowedAudioChannels" in iframe, "allowedAudioChannels exist"); + var channels = iframe.allowedAudioChannels; + is(channels.length, 9, "9 audio channel by default"); + + var ac = channels[0]; + + ok(ac instanceof BrowserElementAudioChannel, "Correct class"); + ok("getVolume" in ac, "ac.getVolume exists"); + ok("setVolume" in ac, "ac.setVolume exists"); + ok("getMuted" in ac, "ac.getMuted exists"); + ok("setMuted" in ac, "ac.setMuted exists"); + ok("isActive" in ac, "ac.isActive exists"); + + info("Setting the volume..."); + ac.setVolume(0.5); + + ac.onactivestatechanged = function() { + ok(true, "activestatechanged event received."); + ac.onactivestatechanged = null; + } + } + + iframe.addEventListener('mozbrowserloadend', audio_loadend); + iframe.addEventListener('mozbrowsershowmodalprompt', listener, false); + document.body.appendChild(iframe); + + iframe.src = 'chrome://mochitests/content/chrome/dom/browser-element/mochitest/file_browserElement_AudioChannel_nested.html'; +} + +addEventListener('testready', function() { + SpecialPowers.pushPrefEnv({'set': [["b2g.system_startup_url", window.location.href]]}, + function() { + SimpleTest.executeSoon(runTests); + }); +}); |