Bug 1269249: [MSE] P2. Add mochitest verifying behavior. r?jwwang draft
authorJean-Yves Avenard <jyavenard@mozilla.com>
Mon, 02 May 2016 15:23:53 +1000
changeset 358180 5bef7300770c026cc8fa58ebc6537d80374e4bbd
parent 358179 c14d7302571e3988a3152d7e6af6bc6f625191ce
child 519801 3d1c9154e1bc74bd360eaf50e7b29b1e08d99619
push id16954
push userbmo:jyavenard@mozilla.com
push dateMon, 02 May 2016 05:25:52 +0000
reviewersjwwang
bugs1269249
milestone49.0a1
Bug 1269249: [MSE] P2. Add mochitest verifying behavior. r?jwwang MozReview-Commit-ID: LxEjSyStUIE
dom/media/mediasource/test/test_FrameSelection_mp4.html
--- a/dom/media/mediasource/test/test_FrameSelection_mp4.html
+++ b/dom/media/mediasource/test/test_FrameSelection_mp4.html
@@ -18,16 +18,28 @@ var receivedSourceOpen = false;
 runWithMSE(function(ms, v) {
   ms.addEventListener("sourceopen", function() {
     ok(true, "Receive a sourceopen event");
     ok(!receivedSourceOpen, "Should only receive one sourceopen for this test");
     receivedSourceOpen = true;
     var sb = ms.addSourceBuffer("video/mp4");
     ok(sb, "Create a SourceBuffer");
 
+    // Log events for debugging.
+    var events = ["suspend", "play", "canplay", "canplaythrough", "loadstart", "loadedmetadata",
+                  "loadeddata", "playing", "ended", "error", "stalled", "emptied", "abort",
+                  "waiting", "pause", "durationchange", "seeking", "seeked"];
+    function logEvent(e) {
+      var v = e.target;
+      info("got " + e.type + " event");
+    }
+    events.forEach(function(e) {
+      v.addEventListener(e, logEvent, false);
+    });
+
     sb.addEventListener('error', (e) => { ok(false, "Got Error: " + e); SimpleTest.finish(); });
     fetchAndLoad(sb, 'bipbop/bipbop', ['init'], '.mp4')
     .then(function() {
       var promises = [];
       promises.push(fetchAndLoad(sb, 'bipbop/bipbop', range(1,3), '.m4s'));
       promises.push(once(v, "loadeddata"));
       return Promise.all(promises);
     }).then(function() {
@@ -40,16 +52,17 @@ runWithMSE(function(ms, v) {
     }).then(function() {
       sb.timestampOffset = 1.601666; // End of the video track buffered - time of first video sample (0.095).
       sb.appendWindowEnd = 1.796677; // Only allow room for three extra video frames (we need 3 as this video has b-frames).
       return fetchAndLoad(sb, 'bipbop/bipbop_480_624kbps-video', ['1'], '.m4s');
     }).then(function() {
       ms.endOfStream();
       var promises = [];
       promises.push(once(ms, "sourceended"));
+      promises.push(once(v, "playing"));
       promises.push(once(v, "ended"));
       return Promise.all(promises);
     }).then(function() {
       if(v.width, 640, "has proper width");
       if(v.height, 480, "has proper height");
       SimpleTest.finish();
     });
   });