Bug 1271669 - Test that we can pc.addTrack() with any MediaStream. r=jib

MozReview-Commit-ID: KvcN1RtGN5X

--HG--
extra : rebase_source : 08648ed731cfa4d52f79ff19ed79fcf933ef15a0
extra : histedit_source : e0e7e3c0b8c7f50af1cd466d2f981caaed7859e0
This commit is contained in:
Andreas Pehrson 2016-05-20 10:51:56 +02:00
parent 2c3aeb1b17
commit 58ae6c5d6c
2 changed files with 72 additions and 0 deletions

View File

@ -141,6 +141,8 @@ skip-if = toolkit == 'gonk' || buildapp == 'mulet' # b2g(Bug 960442, video suppo
# skip-if = toolkit == 'gonk' || buildapp == 'mulet' # b2g (Bug 1059867)
[test_peerConnection_close.html]
[test_peerConnection_closeDuringIce.html]
[test_peerConnection_constructedStream.html]
skip-if = toolkit == 'gonk' || buildapp == 'mulet' || android_version == '18' # b2g(Bug 960442, video support for WebRTC is disabled on b2g), android(Bug 1189784, timeouts on 4.3 emulator)
[test_peerConnection_errorCallbacks.html]
[test_peerConnection_iceFailure.html]
skip-if = toolkit == 'gonk' || buildapp == 'mulet' || os == 'linux' || os == 'mac' || os == 'win' || android_version == '18' # Disabling because of test failures on B2G emulator (Bug 1180388 for win, mac and linux), android(Bug 1189784, timeouts on 4.3 emulator)

View File

@ -0,0 +1,70 @@
<!DOCTYPE HTML>
<html>
<head>
<script type="application/javascript" src="pc.js"></script>
</head>
<body>
<pre id="test">
<script type="application/javascript;version=1.8">
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>