Update web-platform-tests to revision 7a6f5673ff5d146ca5c09c6a1b42b7706cfee328

This commit is contained in:
WPT Sync Bot 2018-06-28 21:05:13 -04:00
parent e2fca1b228
commit 4787b28da3
261 changed files with 8195 additions and 4689 deletions

View file

@ -14,8 +14,8 @@
t.add_cleanup(() => pc1.close());
const stream = await navigator.mediaDevices.getUserMedia(
{audio: false, video: true});
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const videoTrack = stream.getVideoTracks()[0];
t.add_cleanup(() => videoTrack.stop());
pc1.addTrack(videoTrack, stream);
const offer = await pc1.createOffer();
await pc1.setLocalDescription(offer);

View file

@ -42,6 +42,7 @@
t.add_cleanup(() => pc.close());
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const [track] = stream.getTracks();
pc.close();
@ -64,6 +65,7 @@
t.add_cleanup(() => pc.close());
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const [track] = stream.getTracks();
const sender = pc.addTrack(track);
@ -95,6 +97,7 @@
t.add_cleanup(() => pc.close());
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const [track] = stream.getTracks();
const sender = pc.addTrack(track, stream);
@ -111,6 +114,7 @@
t.add_cleanup(() => pc.close());
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const [track] = stream.getTracks();
const stream2 = new MediaStream([track]);
@ -134,6 +138,7 @@
t.add_cleanup(() => pc.close());
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const [track] = stream.getTracks();
pc.addTrack(track, stream);

View file

@ -46,19 +46,17 @@
}, 'addTransceiver - Calling removeTrack when connection is closed should throw InvalidStateError');
promise_test(t => {
promise_test(async t => {
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());
return navigator.mediaDevices.getUserMedia({ audio: true })
.then(mediaStream => {
const [track] = mediaStream.getTracks();
const sender = pc.addTrack(track, mediaStream);
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const [track] = stream.getTracks();
const sender = pc.addTrack(track, stream);
pc.close();
assert_throws('InvalidStateError', () => pc.removeTrack(sender));
});
pc.close();
assert_throws('InvalidStateError', () => pc.removeTrack(sender));
}, 'addTrack - Calling removeTrack when connection is closed should throw InvalidStateError');
test(t => {
@ -73,20 +71,18 @@
}, 'addTransceiver - Calling removeTrack on different connection that is closed should throw InvalidStateError');
promise_test(t => {
promise_test(async t => {
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());
return navigator.mediaDevices.getUserMedia({ audio: true })
.then(mediaStream => {
const [track] = mediaStream.getTracks();
const sender = pc.addTrack(track, mediaStream);
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const [track] = stream.getTracks();
const sender = pc.addTrack(track, stream);
const pc2 = new RTCPeerConnection();
pc2.close();
assert_throws('InvalidStateError', () => pc2.removeTrack(sender));
});
const pc2 = new RTCPeerConnection();
pc2.close();
assert_throws('InvalidStateError', () => pc2.removeTrack(sender));
}, 'addTrack - Calling removeTrack on different connection that is closed should throw InvalidStateError');
/*
@ -104,19 +100,17 @@
}, 'addTransceiver - Calling removeTrack on different connection should throw InvalidAccessError');
promise_test(t => {
promise_test(async t => {
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());
return navigator.mediaDevices.getUserMedia({ audio: true })
.then(mediaStream => {
const [track] = mediaStream.getTracks();
const sender = pc.addTrack(track, mediaStream);
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const [track] = stream.getTracks();
const sender = pc.addTrack(track, stream);
const pc2 = new RTCPeerConnection();
assert_throws('InvalidAccessError', () => pc2.removeTrack(sender));
});
const pc2 = new RTCPeerConnection();
assert_throws('InvalidAccessError', () => pc2.removeTrack(sender));
}, 'addTrack - Calling removeTrack on different connection should throw InvalidAccessError')
/*
@ -139,21 +133,19 @@
}, 'addTransceiver - Calling removeTrack with valid sender should set sender.track to null');
promise_test(t => {
promise_test(async t => {
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());
return navigator.mediaDevices.getUserMedia({ audio: true })
.then(mediaStream => {
const [track] = mediaStream.getTracks();
const sender = pc.addTrack(track, mediaStream);
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const [track] = stream.getTracks();
const sender = pc.addTrack(track, stream);
assert_equals(sender.track, track);
assert_equals(sender.track, track);
pc.removeTrack(sender);
assert_equals(sender.track, null);
});
pc.removeTrack(sender);
assert_equals(sender.track, null);
}, 'addTrack - Calling removeTrack with valid sender should set sender.track to null');
/*

View file

@ -24,6 +24,7 @@
t.add_cleanup(() => callee.close());
const localStream =
await navigator.mediaDevices.getUserMedia({audio: true});
t.add_cleanup(() => localStream.getTracks().forEach(track => track.stop()));
caller.addTrack(localStream.getTracks()[0]);
const ontrackPromise = addEventListenerPromise(t, callee, 'track', e => {
assert_equals(e.track.id, localStream.getTracks()[0].id,
@ -41,6 +42,7 @@
t.add_cleanup(() => callee.close());
const localStream =
await navigator.mediaDevices.getUserMedia({audio: true});
t.add_cleanup(() => localStream.getTracks().forEach(track => track.stop()));
caller.addTrack(localStream.getTracks()[0], localStream);
const ontrackPromise = addEventListenerPromise(t, callee, 'track', e => {
assert_equals(e.track.id, localStream.getTracks()[0].id,
@ -63,6 +65,7 @@
let eventSequence = '';
const localStream =
await navigator.mediaDevices.getUserMedia({audio: true});
t.add_cleanup(() => localStream.getTracks().forEach(track => track.stop()));
caller.addTrack(localStream.getTracks()[0], localStream);
const ontrackPromise = addEventListenerPromise(t, callee, 'track', e => {
eventSequence += 'ontrack;';
@ -213,6 +216,7 @@
t.add_cleanup(() => callee.close());
const localStream =
await navigator.mediaDevices.getUserMedia({audio: true});
t.add_cleanup(() => localStream.getTracks().forEach(track => track.stop()));
caller.addTrack(localStream.getTracks()[0]);
const ontrackPromise = addEventListenerPromise(t, callee, 'track', e => {
assert_array_equals(callee.getReceivers(), [e.receiver],
@ -229,6 +233,7 @@
t.add_cleanup(() => callee.close());
const localStream =
await navigator.mediaDevices.getUserMedia({audio: true});
t.add_cleanup(() => localStream.getTracks().forEach(track => track.stop()));
const sender = caller.addTrack(localStream.getTracks()[0]);
const ontrackPromise = addEventListenerPromise(t, callee, 'track');
await exchangeOfferAnswer(caller, callee);
@ -246,7 +251,9 @@
t.add_cleanup(() => callee.close());
const localStream =
await navigator.mediaDevices.getUserMedia({audio: true});
const sender = caller.addTrack(localStream.getTracks()[0], localStream);
t.add_cleanup(() => localStream.getTracks().forEach(track => track.stop()));
const [track] = localStream.getTracks();
const sender = caller.addTrack(track, localStream);
const ontrackPromise = addEventListenerPromise(t, callee, 'track', e => {
assert_equals(e.streams.length, 1);
return e.streams[0];
@ -273,6 +280,7 @@
let eventSequence = '';
const localStream =
await navigator.mediaDevices.getUserMedia({audio: true});
t.add_cleanup(() => localStream.getTracks().forEach(track => track.stop()));
const sender = caller.addTrack(localStream.getTracks()[0], localStream);
const ontrackPromise = addEventListenerPromise(t, callee, 'track', e => {
assert_equals(e.streams.length, 1);
@ -299,6 +307,7 @@
t.add_cleanup(() => callee.close());
const localStream =
await navigator.mediaDevices.getUserMedia({audio: true});
t.add_cleanup(() => localStream.getTracks().forEach(track => track.stop()));
const sender = caller.addTrack(localStream.getTracks()[0], localStream);
const ontrackPromise = addEventListenerPromise(t, callee, 'track', e => {
assert_equals(e.streams.length, 1);
@ -324,6 +333,7 @@
let eventSequence = '';
const localStream =
await navigator.mediaDevices.getUserMedia({audio: true});
t.add_cleanup(() => localStream.getTracks().forEach(track => track.stop()));
const sender = caller.addTrack(localStream.getTracks()[0], localStream);
const ontrackPromise = addEventListenerPromise(t, callee, 'track', e => {
assert_equals(e.streams.length, 1);
@ -347,6 +357,7 @@
const pc = new RTCPeerConnection();
t.add_cleanup(() => pc.close());
const stream = await navigator.mediaDevices.getUserMedia({audio: true});
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const sender = pc.addTrack(stream.getTracks()[0]);
pc.removeTrack(sender);
pc.removeTrack(sender);

View file

@ -63,6 +63,7 @@
const callee = new RTCPeerConnection();
t.add_cleanup(() => callee.close());
const stream = await navigator.mediaDevices.getUserMedia({audio:true});
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const [track] = stream.getTracks();
caller.addTrack(track, stream);

View file

@ -58,6 +58,7 @@
const callee = new RTCPeerConnection();
t.add_cleanup(() => callee.close());
const stream = await navigator.mediaDevices.getUserMedia({audio:true});
t.add_cleanup(() => stream.getTracks().forEach(track => track.stop()));
const [track] = stream.getTracks();
const sender = caller.addTrack(track, stream);

View file

@ -0,0 +1,58 @@
/* a codemod for ensuring RTCPeerConnection is cleaned up in tests.
* For each `new RTCPeerConnection` add a
* `test.add_cleanup(() => pc.close())`
* Only applies in promise_tests if there is no add_cleanup in the
* test function body.
*/
export default function transformer(file, api) {
const j = api.jscodeshift;
return j(file.source)
// find each RTCPeerConnection constructor
.find(j.NewExpression, {callee: {type: 'Identifier', name: 'RTCPeerConnection'}})
// check it is inside a promise_test
.filter(path => {
// iterate parentPath until you find a CallExpression
let nextPath = path.parentPath;
while (nextPath && nextPath.value.type !== 'CallExpression') {
nextPath = nextPath.parentPath;
}
return nextPath && nextPath.value.callee.name === 'promise_test';
})
// check there is no add_cleanup in the function body
.filter(path => {
let nextPath = path.parentPath;
while (nextPath && nextPath.value.type !== 'CallExpression') {
nextPath = nextPath.parentPath;
}
const body = nextPath.value.arguments[0].body;
return j(body).find(j.Identifier, {name: 'add_cleanup'}).length === 0;
})
.forEach(path => {
// iterate parentPath until you find a CallExpression
let nextPath = path.parentPath;
while (nextPath && nextPath.value.type !== 'CallExpression') {
nextPath = nextPath.parentPath;
}
const declaration = path.parentPath.parentPath.parentPath;
const pc = path.parentPath.value.id;
declaration.insertAfter(
j.expressionStatement(
j.callExpression(
j.memberExpression(
nextPath.node.arguments[0].params[0],
j.identifier('add_cleanup')
),
[j.arrowFunctionExpression([],
j.callExpression(
j.memberExpression(pc, j.identifier('close'), false),
[]
)
)]
)
)
);
})
.toSource();
};

View file

@ -0,0 +1,34 @@
/*
* extract script content from a series of html files, run a
* jscodeshift codemod on them and overwrite the original file.
*
* Usage: node html-codemod.js codemod-file list of files to process
*/
const { JSDOM } = require('jsdom');
const fs = require('fs');
const {execFileSync} = require('child_process');
const codemod = process.argv[2];
const filenames = process.argv.slice(3);
filenames.forEach((filename) => {
const originalContent = fs.readFileSync(filename, 'utf-8');
const dom = new JSDOM(originalContent);
const document = dom.window.document;
const scriptTags = document.querySelectorAll('script');
const lastTag = scriptTags[scriptTags.length - 1];
const script = lastTag.innerHTML;
if (!script) {
console.log('NO SCRIPT FOUND', filename);
return;
}
const scriptFilename = filename + '.codemod.js';
const scriptFile = fs.writeFileSync(scriptFilename, script);
// exec jscodeshift
const output = execFileSync('./node_modules/.bin/jscodeshift', ['-t', codemod, scriptFilename]);
console.log(filename, output.toString()); // output jscodeshift output.
// read back file, resubstitute
const newScript = fs.readFileSync(scriptFilename, 'utf-8').toString();
const modifiedContent = originalContent.split(script).join(newScript);
fs.writeFileSync(filename, modifiedContent);
fs.unlinkSync(scriptFilename);
});

File diff suppressed because it is too large Load diff

View file

@ -7,7 +7,9 @@
},
"devDependencies": {
"eslint": "^4.11.0",
"eslint-plugin-html": "^4.0.0"
"eslint-plugin-html": "^4.0.0",
"jscodeshift": "^0.5.1",
"jsdom": "^11.11.0"
},
"license": "BSD",
"private": true