Bug 1286722: [MSE] P2. Add mochitests for event handler attributes. r=gerald
authorJean-Yves Avenard <jyavenard@mozilla.com>
Thu, 14 Jul 2016 18:27:18 +1000
changeset 305061 5b9850e2567a
parent 305060 501b4b7d83ea
child 305062 37b4f4a716a4
push id30612
push userjyavenard@mozilla.com
push dateFri, 15 Jul 2016 15:39:02 +0000
treeherderautoland@5b9850e2567a [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersgerald
bugs1286722
milestone50.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1286722: [MSE] P2. Add mochitests for event handler attributes. r=gerald MozReview-Commit-ID: HTJgziOHcbW
dom/media/mediasource/test/mochitest.ini
dom/media/mediasource/test/test_OnEvents.html
--- a/dom/media/mediasource/test/mochitest.ini
+++ b/dom/media/mediasource/test/mochitest.ini
@@ -77,16 +77,17 @@ skip-if = ((os == "win" && os_version ==
 [test_MediaSource.html]
 [test_MediaSource_memory_reporting.html]
 [test_MediaSource_mp4.html]
 skip-if = ((os == "win" && os_version == "5.1") || (toolkit == 'android')) # Not supported on xp and android 2.3
 [test_MediaSource_disabled.html]
 [test_MultipleInitSegments.html]
 [test_MultipleInitSegments_mp4.html]
 skip-if = ((os == "win" && os_version == "5.1") || (toolkit == 'android')) # Not supported on xp and android 2.3
+[test_OnEvents.html]
 [test_PlayEvents.html]
 skip-if = ((os == "win" && os_version == "5.1") || (toolkit == 'android')) # Not supported on xp and android 2.3
 [test_ResumeAfterClearing_mp4.html]
 skip-if = ((os == "win" && os_version == "5.1") || (toolkit == 'android')) # Not supported on xp and android 2.3
 [test_SeekableAfterEndOfStream.html]
 [test_SeekableAfterEndOfStream_mp4.html]
 skip-if = ((os == "win" && os_version == "5.1") || (toolkit == 'android')) # Not supported on xp and android 2.3
 [test_SeekableAfterEndOfStreamSplit.html]
new file mode 100644
--- /dev/null
+++ b/dom/media/mediasource/test/test_OnEvents.html
@@ -0,0 +1,65 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+  <title>MSE: live seekable range</title>
+  <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+  <script type="text/javascript" src="mediasource.js"></script>
+  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+</head>
+<body>
+<pre id="test">
+<script class="testbody" type="text/javascript">
+
+SimpleTest.waitForExplicitFinish();
+
+runWithMSE(function (ms, v) {
+  function initEvent(e) {
+    v['got' + e] = false;
+  }
+  function receiveEvent(e) {
+    v['got' + e] = true;
+  }
+  var msevents = ["onsourceopen", "onsourceended"];
+  msevents.forEach(function(e) {
+    initEvent(e);
+    ms[e] = function() { receiveEvent(e); };
+  });
+
+  var sblistevents = ["onaddsourcebuffer", "onremovesourcebuffer"];
+  sblistevents.forEach(function(e) {
+    initEvent(e);
+    ms.sourceBuffers[e] = function() { receiveEvent(e); };
+  });
+
+  ms.addEventListener("sourceopen", function () {
+    var sb = ms.addSourceBuffer("video/webm");
+
+    var sbevents = ["onupdatestart", "onupdate", "onupdateend", "onabort"];
+    sbevents.forEach(function(e) {
+      initEvent(e);
+      sb[e] = function() { receiveEvent(e); };
+    });
+
+    fetchAndLoad(sb, 'seek', [''], '.webm')
+    .then(function() {
+      fetchWithXHR('seek.webm')
+      .then(function(arrayBuffer) {
+        sb.appendBuffer(arrayBuffer);
+        ms.removeSourceBuffer(sb); // will fire abort and removesourcebuffer
+        ms.endOfStream(); // will fire sourceended
+        once(ms, "sourceended").then(function() {
+          var events = ["onsourceopen", "onsourceended", "onupdatestart", "onupdate", "onupdateend", "onabort", "onaddsourcebuffer", "onremovesourcebuffer"];
+          events.forEach(function(e) {
+            ok(v['got' + e], "got " + e);
+          });
+          SimpleTest.finish();
+        });
+      });
+    });
+  });
+});
+
+</script>
+</pre>
+</body>
+</html>