mirror of
https://github.com/servo/servo.git
synced 2025-08-11 00:15:32 +01:00
Update web-platform-tests to revision 3f9178031eec5374c9a7d5709a7e11ba4a1955ed
This commit is contained in:
parent
4997ec26c2
commit
a5af9a106a
192 changed files with 3943 additions and 1927 deletions
59
tests/wpt/web-platform-tests/media-source/idlharness.any.js
Normal file
59
tests/wpt/web-platform-tests/media-source/idlharness.any.js
Normal file
|
@ -0,0 +1,59 @@
|
|||
// META: script=/resources/WebIDLParser.js
|
||||
// META: script=/resources/idlharness.js
|
||||
|
||||
// https://w3c.github.io/media-source/
|
||||
|
||||
'use strict';
|
||||
|
||||
var mediaSource;
|
||||
var sourceBuffer;
|
||||
var video = document.createElement("video");
|
||||
|
||||
promise_test(async t => {
|
||||
const srcs = ['media-source', 'dom', 'html', 'url'];
|
||||
const [idl, dom, html, url] = await Promise.all(
|
||||
srcs.map(i => fetch(`/interfaces/${i}.idl`).then(r => r.text())));
|
||||
|
||||
var idlArray = new IdlArray();
|
||||
idlArray.add_idls(idl);
|
||||
idlArray.add_dependency_idls(dom);
|
||||
idlArray.add_dependency_idls(html);
|
||||
idlArray.add_dependency_idls(url);
|
||||
|
||||
const testIdls = new Promise(resolve => {
|
||||
try {
|
||||
mediaSource = new MediaSource();
|
||||
video.src = URL.createObjectURL(mediaSource);
|
||||
mediaSource.addEventListener("sourceopen", function () {
|
||||
var defaultType ='video/webm;codecs="vp8,vorbis"';
|
||||
if (MediaSource.isTypeSupported(defaultType)) {
|
||||
sourceBuffer = mediaSource.addSourceBuffer(defaultType);
|
||||
} else {
|
||||
sourceBuffer = mediaSource.addSourceBuffer('video/mp4');
|
||||
}
|
||||
sourceBuffer.addEventListener("updateend", function (e) {
|
||||
mediaSource.endOfStream();
|
||||
resolve();
|
||||
});
|
||||
sourceBuffer.appendBuffer(new ArrayBuffer());
|
||||
});
|
||||
} catch (e) {
|
||||
// Will be surfaced in idlharness.js's test_object below.
|
||||
}
|
||||
})
|
||||
|
||||
idlArray.add_objects({
|
||||
MediaSource: ['mediaSource'],
|
||||
SourceBuffer: ['sourceBuffer'],
|
||||
SourceBufferList: ['mediaSource.sourceBuffers']
|
||||
});
|
||||
|
||||
const timeout = new Promise((_, reject) => t.step_timeout(reject, 3000));
|
||||
return Promise
|
||||
.race([testIdls, timeout])
|
||||
.then(() => { idlArray.test(); })
|
||||
.catch(() => {
|
||||
idlArray.test();
|
||||
return Promise.reject('Failed to create media-source objects')
|
||||
});
|
||||
}, 'media-source interfaces');
|
Loading…
Add table
Add a link
Reference in a new issue