| Index: content/renderer/media/peer_connection_handler_jsep_unittest.cc
|
| diff --git a/content/renderer/media/peer_connection_handler_jsep_unittest.cc b/content/renderer/media/peer_connection_handler_jsep_unittest.cc
|
| index aa8463df3a2140b487ada8708772ab0df9b65610..b7b04f6e8bd511b29ce7d48e89d6ce878f853edf 100644
|
| --- a/content/renderer/media/peer_connection_handler_jsep_unittest.cc
|
| +++ b/content/renderer/media/peer_connection_handler_jsep_unittest.cc
|
| @@ -5,15 +5,12 @@
|
| #include <string>
|
|
|
| #include "base/memory/scoped_ptr.h"
|
| -#include "base/message_loop.h"
|
| #include "base/utf_string_conversions.h"
|
| +#include "content/renderer/media/media_stream_extra_data.h"
|
| #include "content/renderer/media/mock_media_stream_dependency_factory.h"
|
| -#include "content/renderer/media/mock_media_stream_impl.h"
|
| #include "content/renderer/media/mock_web_peer_connection_00_handler_client.h"
|
| #include "content/renderer/media/mock_peer_connection_impl.h"
|
| #include "content/renderer/media/peer_connection_handler_jsep.h"
|
| -#include "content/renderer/media/rtc_video_decoder.h"
|
| -#include "jingle/glue/thread_wrapper.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "third_party/libjingle/source/talk/app/webrtc/peerconnection.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebICECandidateDescriptor.h"
|
| @@ -24,25 +21,12 @@
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebSessionDescriptionDescriptor.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebString.h"
|
|
|
| -namespace webrtc {
|
| -
|
| -class MockVideoRendererWrapper : public VideoRendererWrapperInterface {
|
| - public:
|
| - virtual cricket::VideoRenderer* renderer() OVERRIDE { return NULL; }
|
| -
|
| - protected:
|
| - virtual ~MockVideoRendererWrapper() {}
|
| -};
|
| -
|
| -} // namespace webrtc
|
| -
|
| class PeerConnectionHandlerJsepUnderTest : public PeerConnectionHandlerJsep {
|
| public:
|
| PeerConnectionHandlerJsepUnderTest(
|
| WebKit::WebPeerConnection00HandlerClient* client,
|
| - MediaStreamImpl* msi,
|
| MediaStreamDependencyFactory* dependency_factory)
|
| - : PeerConnectionHandlerJsep(client, msi, dependency_factory) {
|
| + : PeerConnectionHandlerJsep(client, dependency_factory) {
|
| }
|
|
|
| webrtc::MockPeerConnectionImpl* native_peer_connection() {
|
| @@ -58,7 +42,6 @@ class PeerConnectionHandlerJsepTest : public ::testing::Test {
|
|
|
| void SetUp() {
|
| mock_client_.reset(new WebKit::MockWebPeerConnection00HandlerClient());
|
| - mock_ms_impl_.reset(new MockMediaStreamImpl());
|
| mock_dependency_factory_.reset(
|
| new MockMediaStreamDependencyFactory(NULL));
|
| mock_dependency_factory_->CreatePeerConnectionFactory(NULL,
|
| @@ -67,9 +50,8 @@ class PeerConnectionHandlerJsepTest : public ::testing::Test {
|
| NULL,
|
| NULL);
|
| pc_handler_.reset(
|
| - new PeerConnectionHandlerJsepUnderTest(
|
| - mock_client_.get(), mock_ms_impl_.get(),
|
| - mock_dependency_factory_.get()));
|
| + new PeerConnectionHandlerJsepUnderTest(mock_client_.get(),
|
| + mock_dependency_factory_.get()));
|
|
|
| WebKit::WebString server_config(
|
| WebKit::WebString::fromUTF8("STUN stun.l.google.com:19302"));
|
| @@ -80,6 +62,39 @@ class PeerConnectionHandlerJsepTest : public ::testing::Test {
|
| ASSERT_TRUE(mock_peer_connection_);
|
| }
|
|
|
| + // Creates a WebKit local MediaStream.
|
| + WebKit::WebMediaStreamDescriptor CreateLocalMediaStream(
|
| + const std::string& stream_label) {
|
| + std::string video_track_label("video-label");
|
| + std::string audio_track_label("audio-label");
|
| +
|
| + talk_base::scoped_refptr<webrtc::LocalMediaStreamInterface> native_stream(
|
| + mock_dependency_factory_->CreateLocalMediaStream(stream_label));
|
| + talk_base::scoped_refptr<webrtc::LocalAudioTrackInterface> audio_track(
|
| + mock_dependency_factory_->CreateLocalAudioTrack(audio_track_label,
|
| + NULL));
|
| + native_stream->AddTrack(audio_track);
|
| + talk_base::scoped_refptr<webrtc::LocalVideoTrackInterface> video_track(
|
| + mock_dependency_factory_->CreateLocalVideoTrack(video_track_label, 0));
|
| + native_stream->AddTrack(video_track);
|
| +
|
| + WebKit::WebVector<WebKit::WebMediaStreamSource> audio_sources(
|
| + static_cast<size_t>(1));
|
| + audio_sources[0].initialize(WebKit::WebString::fromUTF8(video_track_label),
|
| + WebKit::WebMediaStreamSource::TypeAudio,
|
| + WebKit::WebString::fromUTF8("audio_track"));
|
| + WebKit::WebVector<WebKit::WebMediaStreamSource> video_sources(
|
| + static_cast<size_t>(1));
|
| + video_sources[0].initialize(WebKit::WebString::fromUTF8(video_track_label),
|
| + WebKit::WebMediaStreamSource::TypeVideo,
|
| + WebKit::WebString::fromUTF8("video_track"));
|
| + WebKit::WebMediaStreamDescriptor local_stream;
|
| + local_stream.initialize(UTF8ToUTF16(stream_label), audio_sources,
|
| + video_sources);
|
| + local_stream.setExtraData(new MediaStreamExtraData(native_stream));
|
| + return local_stream;
|
| + }
|
| +
|
| // Creates a remote MediaStream and adds it to the mocked native
|
| // peer connection.
|
| talk_base::scoped_refptr<webrtc::MediaStreamInterface>
|
| @@ -107,7 +122,6 @@ class PeerConnectionHandlerJsepTest : public ::testing::Test {
|
| }
|
|
|
| scoped_ptr<WebKit::MockWebPeerConnection00HandlerClient> mock_client_;
|
| - scoped_ptr<MockMediaStreamImpl> mock_ms_impl_;
|
| scoped_ptr<MockMediaStreamDependencyFactory> mock_dependency_factory_;
|
| scoped_ptr<PeerConnectionHandlerJsepUnderTest> pc_handler_;
|
|
|
| @@ -190,51 +204,21 @@ TEST_F(PeerConnectionHandlerJsepTest, Basic) {
|
| EXPECT_EQ(UTF16ToUTF8(sdp), mock_peer_connection_->ice_sdp());
|
|
|
| // Add stream.
|
| - // TODO(grunell): Add an audio track as well.
|
| - std::string stream_label("stream-label");
|
| - std::string video_track_label("video-label");
|
| -
|
| - talk_base::scoped_refptr<webrtc::LocalMediaStreamInterface> native_stream(
|
| - mock_dependency_factory_->CreateLocalMediaStream(stream_label));
|
| - talk_base::scoped_refptr<webrtc::LocalVideoTrackInterface> local_video_track(
|
| - mock_dependency_factory_->CreateLocalVideoTrack(video_track_label, 0));
|
| - native_stream->AddTrack(local_video_track);
|
| - mock_ms_impl_->AddLocalStream(native_stream);
|
| - WebKit::WebVector<WebKit::WebMediaStreamSource> source_vector(
|
| - static_cast<size_t>(1));
|
| - source_vector[0].initialize(WebKit::WebString::fromUTF8(video_track_label),
|
| - WebKit::WebMediaStreamSource::TypeVideo,
|
| - WebKit::WebString::fromUTF8("RemoteVideo"));
|
| - WebKit::WebMediaStreamDescriptor local_stream;
|
| - local_stream.initialize(UTF8ToUTF16(stream_label), source_vector);
|
| + std::string stream_label = "local_stream";
|
| + WebKit::WebMediaStreamDescriptor local_stream(
|
| + CreateLocalMediaStream(stream_label));
|
| +
|
| pc_handler_->addStream(local_stream);
|
| EXPECT_EQ(stream_label, mock_peer_connection_->stream_label());
|
| EXPECT_TRUE(mock_peer_connection_->stream_changes_committed());
|
|
|
| - // On add stream.
|
| - std::string remote_stream_label(stream_label);
|
| - remote_stream_label += "-remote";
|
| - std::string remote_video_track_label(video_track_label);
|
| - remote_video_track_label += "-remote";
|
| - // We use a local stream as a remote since for testing purposes we really
|
| - // only need the MediaStreamInterface.
|
| - talk_base::scoped_refptr<webrtc::LocalMediaStreamInterface> remote_stream(
|
| - mock_dependency_factory_->CreateLocalMediaStream(remote_stream_label));
|
| - talk_base::scoped_refptr<webrtc::LocalVideoTrackInterface> remote_video_track(
|
| - mock_dependency_factory_->CreateLocalVideoTrack(remote_video_track_label,
|
| - 0));
|
| - remote_video_track->set_enabled(true);
|
| - remote_stream->AddTrack(remote_video_track);
|
| - mock_peer_connection_->AddRemoteStream(remote_stream);
|
| + // On add stream. ( Remote stream received)
|
| + std::string remote_stream_label("remote_stream");
|
| + talk_base::scoped_refptr<webrtc::MediaStreamInterface> remote_stream(
|
| + AddRemoteMockMediaStream(remote_stream_label, "video", "audio"));
|
| pc_handler_->OnAddStream(remote_stream);
|
| EXPECT_EQ(remote_stream_label, mock_client_->stream_label());
|
|
|
| - // Set renderer.
|
| - talk_base::scoped_refptr<webrtc::MockVideoRendererWrapper> renderer(
|
| - new talk_base::RefCountedObject<webrtc::MockVideoRendererWrapper>());
|
| - pc_handler_->SetRemoteVideoRenderer(remote_video_track_label, renderer);
|
| - EXPECT_EQ(renderer, remote_video_track->GetRenderer());
|
| -
|
| // Remove stream.
|
| WebKit::WebVector<WebKit::WebMediaStreamDescriptor> empty_streams(
|
| static_cast<size_t>(0));
|
| @@ -309,15 +293,4 @@ TEST_F(PeerConnectionHandlerJsepTest, ReceiveMultipleRemoteStreams) {
|
|
|
| pc_handler_->OnAddStream(stream_2);
|
| EXPECT_EQ(stream_label_2, mock_client_->stream_label());
|
| -
|
| - // Set renderer.
|
| - talk_base::scoped_refptr<webrtc::MockVideoRendererWrapper> renderer1(
|
| - new talk_base::RefCountedObject<webrtc::MockVideoRendererWrapper>());
|
| - pc_handler_->SetRemoteVideoRenderer(video_track_label_1, renderer1);
|
| - EXPECT_EQ(renderer1, stream_1->video_tracks()->at(0)->GetRenderer());
|
| -
|
| - talk_base::scoped_refptr<webrtc::MockVideoRendererWrapper> renderer2(
|
| - new talk_base::RefCountedObject<webrtc::MockVideoRendererWrapper>());
|
| - pc_handler_->SetRemoteVideoRenderer(video_track_label_2, renderer2);
|
| - EXPECT_EQ(renderer2, stream_2->video_tracks()->at(0)->GetRenderer());
|
| }
|
|
|