| Index: content/renderer/media/rtc_peer_connection_handler_unittest.cc
|
| diff --git a/content/renderer/media/rtc_peer_connection_handler_unittest.cc b/content/renderer/media/rtc_peer_connection_handler_unittest.cc
|
| index e3e66df64f4b8f9a9746d6dd59ef92b5f667d298..01dff8a612e2a81ed12bfd217e0ff63a0df8e116 100644
|
| --- a/content/renderer/media/rtc_peer_connection_handler_unittest.cc
|
| +++ b/content/renderer/media/rtc_peer_connection_handler_unittest.cc
|
| @@ -3,6 +3,7 @@
|
| // found in the LICENSE file.
|
|
|
| #include <string>
|
| +#include <vector>
|
|
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/utf_string_conversions.h"
|
| @@ -654,6 +655,106 @@ TEST_F(RTCPeerConnectionHandlerTest, OnAddAndOnRemoveStream) {
|
| pc_handler_->OnRemoveStream(remote_stream);
|
| }
|
|
|
| +// This test that WebKit is notified about remote track state changes.
|
| +TEST_F(RTCPeerConnectionHandlerTest, RemoteTrackState) {
|
| + std::string remote_stream_label("remote_stream");
|
| + scoped_refptr<webrtc::MediaStreamInterface> remote_stream(
|
| + AddRemoteMockMediaStream(remote_stream_label, "video", "audio"));
|
| +
|
| + testing::InSequence sequence;
|
| + EXPECT_CALL(*mock_client_.get(), didAddRemoteStream(
|
| + testing::Property(&WebKit::WebMediaStream::label,
|
| + UTF8ToUTF16(remote_stream_label))));
|
| + pc_handler_->OnAddStream(remote_stream);
|
| + const WebKit::WebMediaStream& webkit_stream = mock_client_->remote_stream();
|
| +
|
| + WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_tracks;
|
| + webkit_stream.audioTracks(audio_tracks);
|
| + EXPECT_EQ(WebKit::WebMediaStreamSource::ReadyStateLive,
|
| + audio_tracks[0].source().readyState());
|
| +
|
| + WebKit::WebVector<WebKit::WebMediaStreamTrack> video_tracks;
|
| + webkit_stream.videoTracks(video_tracks);
|
| + EXPECT_EQ(WebKit::WebMediaStreamSource::ReadyStateLive,
|
| + video_tracks[0].source().readyState());
|
| +
|
| + remote_stream->GetAudioTracks()[0]->set_state(
|
| + webrtc::MediaStreamTrackInterface::kEnded);
|
| + EXPECT_EQ(WebKit::WebMediaStreamSource::ReadyStateEnded,
|
| + audio_tracks[0].source().readyState());
|
| +
|
| + remote_stream->GetVideoTracks()[0]->set_state(
|
| + webrtc::MediaStreamTrackInterface::kEnded);
|
| + EXPECT_EQ(WebKit::WebMediaStreamSource::ReadyStateEnded,
|
| + video_tracks[0].source().readyState());
|
| +}
|
| +
|
| +// TODO(perkj): Enable this test once https://codereview.chromium.org/14314003
|
| +// is landed.
|
| +TEST_F(RTCPeerConnectionHandlerTest,
|
| + DISABLED_RemoveAndAddAudioTrackFromRemoteStream) {
|
| + std::string remote_stream_label("remote_stream");
|
| + scoped_refptr<webrtc::MediaStreamInterface> remote_stream(
|
| + AddRemoteMockMediaStream(remote_stream_label, "video", "audio"));
|
| +
|
| + EXPECT_CALL(*mock_client_.get(), didAddRemoteStream(
|
| + testing::Property(&WebKit::WebMediaStream::label,
|
| + UTF8ToUTF16(remote_stream_label))));
|
| + pc_handler_->OnAddStream(remote_stream);
|
| + const WebKit::WebMediaStream& webkit_stream = mock_client_->remote_stream();
|
| +
|
| + WebKit::WebVector<WebKit::WebMediaStreamTrack> audio_tracks;
|
| + webkit_stream.audioTracks(audio_tracks);
|
| + EXPECT_EQ(1u, audio_tracks.size());
|
| +
|
| + // Remove the Webrtc audio track from the Webrtc MediaStream.
|
| + scoped_refptr<webrtc::AudioTrackInterface> webrtc_track =
|
| + remote_stream->GetAudioTracks()[0].get();
|
| + remote_stream->RemoveTrack(webrtc_track);
|
| + WebKit::WebVector<WebKit::WebMediaStreamTrack> modified_audio_tracks1;
|
| + webkit_stream.audioTracks(modified_audio_tracks1);
|
| + EXPECT_EQ(0u, modified_audio_tracks1.size());
|
| +
|
| + // Add the WebRtc audio track again.
|
| + remote_stream->AddTrack(webrtc_track);
|
| + WebKit::WebVector<WebKit::WebMediaStreamTrack> modified_audio_tracks2;
|
| + webkit_stream.audioTracks(modified_audio_tracks2);
|
| + EXPECT_EQ(1u, modified_audio_tracks2.size());
|
| +}
|
| +
|
| +// TODO(perkj): Enable this test once https://codereview.chromium.org/14314003
|
| +// is landed.
|
| +TEST_F(RTCPeerConnectionHandlerTest,
|
| + DISABLED_RemoveAndAddVideoTrackFromRemoteStream) {
|
| + std::string remote_stream_label("remote_stream");
|
| + scoped_refptr<webrtc::MediaStreamInterface> remote_stream(
|
| + AddRemoteMockMediaStream(remote_stream_label, "video", "video"));
|
| +
|
| + EXPECT_CALL(*mock_client_.get(), didAddRemoteStream(
|
| + testing::Property(&WebKit::WebMediaStream::label,
|
| + UTF8ToUTF16(remote_stream_label))));
|
| + pc_handler_->OnAddStream(remote_stream);
|
| + const WebKit::WebMediaStream& webkit_stream = mock_client_->remote_stream();
|
| +
|
| + WebKit::WebVector<WebKit::WebMediaStreamTrack> video_tracks;
|
| + webkit_stream.videoTracks(video_tracks);
|
| + EXPECT_EQ(1u, video_tracks.size());
|
| +
|
| + // Remove the Webrtc video track from the Webrtc MediaStream.
|
| + scoped_refptr<webrtc::VideoTrackInterface> webrtc_track =
|
| + remote_stream->GetVideoTracks()[0].get();
|
| + remote_stream->RemoveTrack(webrtc_track);
|
| + WebKit::WebVector<WebKit::WebMediaStreamTrack> modified_video_tracks1;
|
| + webkit_stream.videoTracks(modified_video_tracks1);
|
| + EXPECT_EQ(0u, modified_video_tracks1.size());
|
| +
|
| + // Add the WebRtc video track again.
|
| + remote_stream->AddTrack(webrtc_track);
|
| + WebKit::WebVector<WebKit::WebMediaStreamTrack> modified_video_tracks2;
|
| + webkit_stream.videoTracks(modified_video_tracks2);
|
| + EXPECT_EQ(1u, modified_video_tracks2.size());
|
| +}
|
| +
|
| TEST_F(RTCPeerConnectionHandlerTest, OnIceCandidate) {
|
| testing::InSequence sequence;
|
| EXPECT_CALL(*mock_tracker_.get(),
|
|
|