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 305073 5b9850e2567a
parent 305072 501b4b7d83ea
child 305074 37b4f4a716a4
push id30453
push usercbook@mozilla.com
push dateSun, 17 Jul 2016 07:16:01 +0000
treeherdermozilla-central@9ee862a030f3 [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>