Bug 1358399. P5 - rewrite test_eme_stream_capture_blocked_case1.html using the new helper functions. draft
authorJW Wang <jwwang@mozilla.com>
Fri, 21 Apr 2017 17:37:30 +0800
changeset 568429 1c2763d3aec1ea867f705757b99393b909afd931
parent 568428 7810959dfcb69427870517598ea858536ea6a28c
child 568430 9b6118ecd19f331dd511532f799ae3d243a6a75b
push id55869
push userjwwang@mozilla.com
push dateWed, 26 Apr 2017 06:34:41 +0000
bugs1358399
milestone55.0a1
Bug 1358399. P5 - rewrite test_eme_stream_capture_blocked_case1.html using the new helper functions. Note we don't need to pass the 'onlyLoadFirstFragments' flag since we ensure the test won't finish until LoadTest() is resolved. MozReview-Commit-ID: 2cFDGhqWkrP
dom/media/test/test_eme_stream_capture_blocked_case1.html
--- a/dom/media/test/test_eme_stream_capture_blocked_case1.html
+++ b/dom/media/test/test_eme_stream_capture_blocked_case1.html
@@ -17,29 +17,49 @@ function startTest(test, token)
   // Three cases:
   // 1. setting MediaKeys on an element captured by MediaElementSource should fail, and
   // 2. creating a MediaElementSource on a media element with a MediaKeys should fail, and
   // 3. capturing a media element with mozCaptureStream that has a MediaKeys should fail.
 
   // Case 1. setting MediaKeys on an element captured by MediaElementSource should fail.
   var p1 = new EMEPromise;
   var case1token = token + "_case1";
-  var setKeysFailed = function() {
-    ok(true, TimeStamp(case1token) + " setMediaKeys failed as expected.");
-    p1.resolve();
-  };
-  var v1 = SetupEME(test, case1token,  { onSetKeysFail: setKeysFailed });
+  let v1 = document.createElement("video");
+
+  function setMediaKeys() {
+    let p = new EMEPromise;
+    CreateMediaKeys(v1, test, case1token)
+    .then(mediaKeys => {
+      v1.setMediaKeys(mediaKeys)
+      .then(() => {
+        p.reject(`${case1token} setMediaKeys shouldn't succeed.`);
+      }, () => {
+        ok(true, TimeStamp(case1token) + " setMediaKeys failed as expected.");
+        p.resolve();
+      })
+    }, p.reject);
+    return p.promise;
+  }
+
   var context = new AudioContext();
   var node = context.createMediaElementSource(v1);
   v1.addEventListener("loadeddata", function(ev) {
     ok(false, TimeStamp(case1token) + " should never reach loadeddata, as setMediaKeys should fail");
   });
+
   manager.started(case1token);
-  var p2 = LoadTest(test, v1, case1token, { onlyLoadFirstFragments:2, noEndOfStream:false });
-  EMEPromiseAll(v1, case1token, [p1.promise, p2]);
+
+  Promise.all([
+    LoadTest(test, v1, case1token, { noEndOfStream:false }),
+    setMediaKeys()])
+  .catch(reason => ok(false, reason))
+  .then(() => {
+    CleanUpMedia(v1);
+    manager.finished(case1token);
+  });
 }
 
 function beginTest() {
   manager.runTests(gEMETests, startTest);
 }
 
 if (!IsMacOSSnowLeopardOrEarlier()) {
   SimpleTest.waitForExplicitFinish();