Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(979)

Unified Diff: content/renderer/media/peer_connection_handler_jsep_unittest.cc

Issue 10383151: Refactor MediaStreamImpl and PeerConnection glue implementation after WebKit changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());
}

Powered by Google App Engine
This is Rietveld 408576698