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
--- 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();