зеркало из https://github.com/mozilla/gecko-dev.git
71 строка
2.3 KiB
HTML
71 строка
2.3 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<script type="application/javascript" src="pc.js"></script>
|
|
</head>
|
|
<body>
|
|
<pre id="test">
|
|
<script type="application/javascript">
|
|
createHTML({
|
|
bug: "1271669",
|
|
title: "Test that pc.addTrack() accepts any MediaStream",
|
|
visible: true
|
|
});
|
|
|
|
runNetworkTest(() => {
|
|
var test = new PeerConnectionTest();
|
|
var constructedStream;
|
|
var dummyStream = new MediaStream();
|
|
var dummyStreamTracks = [];
|
|
|
|
test.setMediaConstraints([ {audio: true, video: true}
|
|
, {audio: true}
|
|
, {video: true}
|
|
], []);
|
|
test.chain.replace("PC_LOCAL_GUM", [
|
|
function PC_LOCAL_GUM_CONSTRUCTED_STREAM(test) {
|
|
return getUserMedia(test.pcLocal.constraints[0]).then(stream => {
|
|
constructedStream = new MediaStream(stream.getTracks());
|
|
test.pcLocal.attachLocalStream(constructedStream);
|
|
});
|
|
},
|
|
function PC_LOCAL_GUM_DUMMY_STREAM(test) {
|
|
return getUserMedia(test.pcLocal.constraints[1])
|
|
.then(stream => dummyStreamTracks.push(...stream.getTracks()))
|
|
.then(() => getUserMedia(test.pcLocal.constraints[2]))
|
|
.then(stream => dummyStreamTracks.push(...stream.getTracks()))
|
|
.then(() => dummyStreamTracks.forEach(t =>
|
|
test.pcLocal.attachLocalTrack(t, dummyStream)));
|
|
},
|
|
]);
|
|
|
|
let checkSentTracksReceived = (sentStreamId, sentTracks) => {
|
|
let receivedStream =
|
|
test.pcRemote._pc.getRemoteStreams().find(s => s.id == sentStreamId);
|
|
ok(receivedStream, "We should receive a stream with with the sent stream's id (" + sentStreamId + ")");
|
|
if (!receivedStream) {
|
|
return;
|
|
}
|
|
|
|
is(receivedStream.getTracks().length, sentTracks.length,
|
|
"Should receive same number of tracks as were sent");
|
|
sentTracks.forEach(t =>
|
|
ok(receivedStream.getTracks().find(t2 => t.id == t2.id),
|
|
"The sent track (" + t.id + ") should exist on the receive side"));
|
|
};
|
|
|
|
test.chain.append([
|
|
function PC_REMOTE_CHECK_RECEIVED_CONSTRUCTED_STREAM() {
|
|
checkSentTracksReceived(constructedStream.id, constructedStream.getTracks());
|
|
},
|
|
function PC_REMOTE_CHECK_RECEIVED_DUMMY_STREAM() {
|
|
checkSentTracksReceived(dummyStream.id, dummyStreamTracks);
|
|
},
|
|
]);
|
|
test.run();
|
|
});
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|