mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-16 23:05:42 +00:00
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:
parent
2c3aeb1b17
commit
58ae6c5d6c
@ -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)
|
||||
|
@ -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>
|
Loading…
Reference in New Issue
Block a user