| 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);
|
|
|