Index: content/browser/renderer_host/media/audio_renderer_host_unittest.cc |
diff --git a/content/browser/renderer_host/media/audio_renderer_host_unittest.cc b/content/browser/renderer_host/media/audio_renderer_host_unittest.cc |
index 41d6ffb367814d179de470a8976fbf5d5f95499b..56fecdc1eb2a30b74eb6fe2938a8d2a5b446a382 100644 |
--- a/content/browser/renderer_host/media/audio_renderer_host_unittest.cc |
+++ b/content/browser/renderer_host/media/audio_renderer_host_unittest.cc |
@@ -18,6 +18,7 @@ |
#include "content/browser/media/capture/audio_mirroring_manager.h" |
#include "content/browser/media/media_internals.h" |
#include "content/browser/renderer_host/media/audio_input_device_manager.h" |
+#include "content/browser/renderer_host/media/audio_stream_registry.h" |
#include "content/browser/renderer_host/media/media_stream_manager.h" |
#include "content/common/media/audio_messages.h" |
#include "content/public/browser/media_device_id.h" |
@@ -63,7 +64,6 @@ void ValidateRenderFrameId(int render_process_id, |
base::Bind(callback, frame_exists)); |
} |
- |
class MockAudioMirroringManager : public AudioMirroringManager { |
public: |
MockAudioMirroringManager() {} |
@@ -94,6 +94,14 @@ class MockRenderProcessHostWithSignaling : public MockRenderProcessHost { |
base::RunLoop* auth_run_loop_; |
}; |
+class MockAudioStreamRegistry : public AudioStreamRegistry { |
+ public: |
+ explicit MockAudioStreamRegistry(int process_id) {} |
+ MOCK_METHOD0(RegisterStream, void()); |
+ MOCK_METHOD0(DeregisterStream, void()); |
+ MOCK_METHOD1(StreamStateChanged, void(bool)); |
+}; |
+ |
class FakeAudioManagerWithAssociations : public media::FakeAudioManager { |
public: |
FakeAudioManagerWithAssociations( |
@@ -127,11 +135,13 @@ class MockAudioRendererHost : public AudioRendererHost { |
public: |
MockAudioRendererHost(base::RunLoop* auth_run_loop, |
int render_process_id, |
+ AudioStreamRegistry* stream_registry, |
media::AudioManager* audio_manager, |
AudioMirroringManager* mirroring_manager, |
MediaStreamManager* media_stream_manager, |
const std::string& salt) |
: AudioRendererHost(render_process_id, |
+ stream_registry, |
audio_manager, |
mirroring_manager, |
media_stream_manager, |
@@ -235,13 +245,15 @@ class AudioRendererHostTest : public testing::Test { |
audio_manager_(base::MakeUnique<FakeAudioManagerWithAssociations>( |
base::ThreadTaskRunnerHandle::Get(), |
log_factory.get())), |
- render_process_host_(&browser_context_, &auth_run_loop_) { |
+ render_process_host_(&browser_context_, &auth_run_loop_), |
+ stream_registry_(render_process_host_.GetID()) { |
base::CommandLine::ForCurrentProcess()->AppendSwitch( |
switches::kUseFakeDeviceForMediaStream); |
media_stream_manager_.reset(new MediaStreamManager(audio_manager_.get())); |
host_ = new MockAudioRendererHost( |
- &auth_run_loop_, render_process_host_.GetID(), audio_manager_.get(), |
- &mirroring_manager_, media_stream_manager_.get(), kSalt); |
+ &auth_run_loop_, render_process_host_.GetID(), &stream_registry_, |
+ audio_manager_.get(), &mirroring_manager_, media_stream_manager_.get(), |
+ kSalt); |
// Simulate IPC channel connected. |
host_->set_peer_process_for_testing(base::Process::Current()); |
@@ -340,6 +352,7 @@ class AudioRendererHostTest : public testing::Test { |
OnDeviceAuthorized(kStreamId, expected_device_status, _, _)); |
if (expected_device_status == media::OUTPUT_DEVICE_STATUS_OK) { |
+ EXPECT_CALL(stream_registry_, RegisterStream()); |
EXPECT_CALL(*host_.get(), WasNotifiedOfCreation(kStreamId, _)); |
EXPECT_CALL(mirroring_manager_, AddDiverter(render_process_host_.GetID(), |
kRenderFrameId, NotNull())) |
@@ -363,11 +376,13 @@ class AudioRendererHostTest : public testing::Test { |
expected_device_status == media::OUTPUT_DEVICE_STATUS_OK) |
host_->OnCreateStream(kStreamId, kRenderFrameId, params); |
- if (expected_device_status == media::OUTPUT_DEVICE_STATUS_OK) |
+ if (expected_device_status == media::OUTPUT_DEVICE_STATUS_OK) { |
// At some point in the future, a corresponding RemoveDiverter() call must |
// be made. |
+ EXPECT_CALL(stream_registry_, DeregisterStream()); |
EXPECT_CALL(mirroring_manager_, RemoveDiverter(NotNull())) |
.RetiresOnSaturation(); |
+ } |
SyncWithAudioThread(); |
} |
@@ -514,6 +529,7 @@ class AudioRendererHostTest : public testing::Test { |
MockAudioMirroringManager mirroring_manager_; |
base::RunLoop auth_run_loop_; |
MockRenderProcessHostWithSignaling render_process_host_; |
+ MockAudioStreamRegistry stream_registry_; |
scoped_refptr<MockAudioRendererHost> host_; |
DISALLOW_COPY_AND_ASSIGN(AudioRendererHostTest); |