Chromium Code Reviews| Index: content/test/webrtc_audio_device_test.cc |
| =================================================================== |
| --- content/test/webrtc_audio_device_test.cc (revision 225319) |
| +++ content/test/webrtc_audio_device_test.cc (working copy) |
| @@ -77,6 +77,55 @@ |
| DISALLOW_COPY_AND_ASSIGN(WebRTCMockRenderProcess); |
| }; |
| +class TestAudioRendererHost : public AudioRendererHost { |
| + public: |
| + TestAudioRendererHost( |
| + int render_process_id, |
| + media::AudioManager* audio_manager, |
| + AudioMirroringManager* mirroring_manager, |
| + MediaInternals* media_internals, |
| + MediaStreamManager* media_stream_manager, |
| + IPC::Channel* channel) |
| + : AudioRendererHost(render_process_id, audio_manager, mirroring_manager, |
| + media_internals, media_stream_manager), |
| + channel_(channel) {} |
| + virtual bool Send(IPC::Message* message) OVERRIDE { |
| + if (channel_) |
| + return channel_->Send(message); |
| + return false; |
| + } |
| + void ResetChannel() { |
| + channel_ = NULL; |
| + } |
| + |
| + private: |
| + IPC::Channel* channel_; |
| +}; |
| + |
| +class TestAudioInputRendererHost : public AudioInputRendererHost { |
| + public: |
| + TestAudioInputRendererHost( |
| + media::AudioManager* audio_manager, |
| + MediaStreamManager* media_stream_manager, |
| + AudioMirroringManager* audio_mirroring_manager, |
| + media::UserInputMonitor* user_input_monitor, |
| + IPC::Channel* channel) |
| + : AudioInputRendererHost(audio_manager, media_stream_manager, |
| + audio_mirroring_manager, user_input_monitor), |
|
scherkus (not reviewing)
2013/09/26 19:57:37
nit: fix indent?
looks off
jam
2013/09/26 20:22:39
Done.
|
| + channel_(channel) {} |
| + virtual bool Send(IPC::Message* message) OVERRIDE { |
| + if (channel_) |
| + return channel_->Send(message); |
| + return false; |
| + } |
| + void ResetChannel() { |
| + channel_ = NULL; |
| + } |
| + |
| + private: |
| + IPC::Channel* channel_; |
| +}; |
| + |
| // Utility scoped class to replace the global content client's renderer for the |
| // duration of the test. |
| class ReplaceContentClientRenderer { |
| @@ -258,24 +307,23 @@ |
| void MAYBE_WebRTCAudioDeviceTest::CreateChannel(const char* name) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| + channel_.reset(new IPC::Channel(name, IPC::Channel::MODE_SERVER, this)); |
| + ASSERT_TRUE(channel_->Connect()); |
| + |
| static const int kRenderProcessId = 1; |
| - audio_render_host_ = new AudioRendererHost( |
| + audio_render_host_ = new TestAudioRendererHost( |
| kRenderProcessId, audio_manager_.get(), mirroring_manager_.get(), |
| - media_internals_.get(), media_stream_manager_.get()); |
| - audio_render_host_->OnChannelConnected(base::GetCurrentProcId()); |
| + media_internals_.get(), media_stream_manager_.get(), channel_.get()); |
| + audio_render_host_->set_peer_pid_for_testing(base::GetCurrentProcId()); |
| audio_input_renderer_host_ = |
| - new AudioInputRendererHost(audio_manager_.get(), |
| - media_stream_manager_.get(), |
| - mirroring_manager_.get(), |
| - NULL); |
| - audio_input_renderer_host_->OnChannelConnected(base::GetCurrentProcId()); |
| - |
| - channel_.reset(new IPC::Channel(name, IPC::Channel::MODE_SERVER, this)); |
| - ASSERT_TRUE(channel_->Connect()); |
| - |
| - audio_render_host_->OnFilterAdded(channel_.get()); |
| - audio_input_renderer_host_->OnFilterAdded(channel_.get()); |
| + new TestAudioInputRendererHost(audio_manager_.get(), |
| + media_stream_manager_.get(), |
| + mirroring_manager_.get(), |
| + NULL, |
| + channel_.get()); |
| + audio_input_renderer_host_->set_peer_pid_for_testing( |
| + base::GetCurrentProcId()); |
| } |
| void MAYBE_WebRTCAudioDeviceTest::DestroyChannel() { |
| @@ -284,6 +332,8 @@ |
| audio_render_host_->OnFilterRemoved(); |
| audio_input_renderer_host_->OnChannelClosing(); |
| audio_input_renderer_host_->OnFilterRemoved(); |
| + audio_render_host_->ResetChannel(); |
| + audio_input_renderer_host_->ResetChannel(); |
| channel_.reset(); |
| audio_render_host_ = NULL; |
| audio_input_renderer_host_ = NULL; |