summaryrefslogtreecommitdiffstats
path: root/b2g/chrome/content/test/mochitest/test_recordingStatus_iframe.html
diff options
context:
space:
mode:
Diffstat (limited to 'b2g/chrome/content/test/mochitest/test_recordingStatus_iframe.html')
-rw-r--r--b2g/chrome/content/test/mochitest/test_recordingStatus_iframe.html71
1 files changed, 71 insertions, 0 deletions
diff --git a/b2g/chrome/content/test/mochitest/test_recordingStatus_iframe.html b/b2g/chrome/content/test/mochitest/test_recordingStatus_iframe.html
new file mode 100644
index 000000000..88c33c897
--- /dev/null
+++ b/b2g/chrome/content/test/mochitest/test_recordingStatus_iframe.html
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+ <title>Test for Recording Status in iframe</title>
+ <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+ <script type="text/javascript;version=1.7" src="RecordingStatusHelper.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+</head>
+<body>
+
+<pre id="test">
+<iframe id="gum-iframe"></iframe>
+<script class="testbody" type="text/javascript;version=1.7">
+SimpleTest.waitForExplicitFinish();
+
+function test() {
+ TestInit().then(function(eventHelper) {
+ /* step 1: load iframe whilch creates audio stream
+ * expect: see one mozChromeEvent for audio recording start.
+ */
+ let eventDeferred = expectEvent({ active: true,
+ isAudio: true,
+ isVideo: false
+ }, eventHelper);
+
+ let loadDeferred = new Promise(function(resolve, reject) {
+ let gumIframe = document.getElementById('gum-iframe');
+ gumIframe.src = 'file_getusermedia_iframe.html';
+
+ window.addEventListener('message', function(event) {
+ if (event.data === 'start-finished') {
+ resolve();
+ }
+ }, false);
+
+ gumIframe.onload = function() {
+ info('start audio stream in iframe');
+ gumIframe.contentWindow.postMessage('start', window.location.origin);
+ };
+ });
+
+ return expectAll([eventDeferred, loadDeferred]);
+ }).then(function([eventHelper]) {
+ /* step 2: close the audio stream
+ * expect: see one mozChromeEvent for recording stop.
+ */
+ let eventDeferred = expectEvent({ active: false,
+ isAudio: false,
+ isVideo: false
+ }, eventHelper);
+
+ let win = document.getElementById('gum-iframe').contentWindow;
+ win.postMessage('stop', window.location.origin);
+ info('stop audio stream in iframe');
+ return eventDeferred;
+ }).then(function(eventHelper) {
+ eventHelper.finish();
+ SimpleTest.finish();
+ });
+}
+
+SpecialPowers.pushPrefEnv({
+ "set": [
+ ['media.navigator.permission.disabled', true]
+ ]
+}, test);
+
+</script>
+</pre>
+</body>
+</html>