Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/command_line.h" | 6 #include "base/command_line.h" |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
| 9 #include "base/sync_socket.h" | 9 #include "base/sync_socket.h" |
| 10 #include "content/browser/media/capture/audio_mirroring_manager.h" | 10 #include "content/browser/media/capture/audio_mirroring_manager.h" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 48 | 48 |
| 49 private: | 49 private: |
| 50 DISALLOW_COPY_AND_ASSIGN(MockAudioMirroringManager); | 50 DISALLOW_COPY_AND_ASSIGN(MockAudioMirroringManager); |
| 51 }; | 51 }; |
| 52 | 52 |
| 53 class MockAudioRendererHost : public AudioRendererHost { | 53 class MockAudioRendererHost : public AudioRendererHost { |
| 54 public: | 54 public: |
| 55 MockAudioRendererHost(media::AudioManager* audio_manager, | 55 MockAudioRendererHost(media::AudioManager* audio_manager, |
| 56 AudioMirroringManager* mirroring_manager, | 56 AudioMirroringManager* mirroring_manager, |
| 57 MediaInternals* media_internals, | 57 MediaInternals* media_internals, |
| 58 MediaStreamManager* media_stream_manager) | 58 MediaStreamManager* media_stream_manager, |
| 59 const ResourceContext::SaltCallback& salt_callback) | |
| 59 : AudioRendererHost(kRenderProcessId, | 60 : AudioRendererHost(kRenderProcessId, |
| 60 audio_manager, | 61 audio_manager, |
| 61 mirroring_manager, | 62 mirroring_manager, |
| 62 media_internals, | 63 media_internals, |
| 63 media_stream_manager), | 64 media_stream_manager, |
| 65 salt_callback), | |
| 64 shared_memory_length_(0) {} | 66 shared_memory_length_(0) {} |
| 65 | 67 |
| 66 // A list of mock methods. | 68 // A list of mock methods. |
| 67 MOCK_METHOD2(OnStreamCreated, void(int stream_id, int length)); | 69 MOCK_METHOD2(OnStreamCreated, void(int stream_id, int length)); |
| 68 MOCK_METHOD1(OnStreamPlaying, void(int stream_id)); | 70 MOCK_METHOD1(OnStreamPlaying, void(int stream_id)); |
| 69 MOCK_METHOD1(OnStreamPaused, void(int stream_id)); | 71 MOCK_METHOD1(OnStreamPaused, void(int stream_id)); |
| 70 MOCK_METHOD1(OnStreamError, void(int stream_id)); | 72 MOCK_METHOD1(OnStreamError, void(int stream_id)); |
| 71 | 73 |
| 72 private: | 74 private: |
| 73 virtual ~MockAudioRendererHost() { | 75 virtual ~MockAudioRendererHost() { |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 133 } | 135 } |
| 134 } | 136 } |
| 135 | 137 |
| 136 scoped_ptr<base::SharedMemory> shared_memory_; | 138 scoped_ptr<base::SharedMemory> shared_memory_; |
| 137 scoped_ptr<base::SyncSocket> sync_socket_; | 139 scoped_ptr<base::SyncSocket> sync_socket_; |
| 138 uint32 shared_memory_length_; | 140 uint32 shared_memory_length_; |
| 139 | 141 |
| 140 DISALLOW_COPY_AND_ASSIGN(MockAudioRendererHost); | 142 DISALLOW_COPY_AND_ASSIGN(MockAudioRendererHost); |
| 141 }; | 143 }; |
| 142 | 144 |
| 145 namespace { | |
| 146 std::string ReturnMockSalt() { | |
| 147 return std::string(); | |
| 148 } | |
| 149 | |
| 150 ResourceContext::SaltCallback GetMockSaltCallback() { | |
| 151 return base::Bind(&ReturnMockSalt); | |
| 152 } | |
| 153 } | |
| 154 | |
| 143 class AudioRendererHostTest : public testing::Test { | 155 class AudioRendererHostTest : public testing::Test { |
| 144 public: | 156 public: |
| 145 AudioRendererHostTest() { | 157 AudioRendererHostTest() { |
| 146 audio_manager_.reset(media::AudioManager::CreateForTesting()); | 158 audio_manager_.reset(media::AudioManager::CreateForTesting()); |
| 147 base::CommandLine::ForCurrentProcess()->AppendSwitch( | 159 base::CommandLine::ForCurrentProcess()->AppendSwitch( |
| 148 switches::kUseFakeDeviceForMediaStream); | 160 switches::kUseFakeDeviceForMediaStream); |
| 149 media_stream_manager_.reset(new MediaStreamManager(audio_manager_.get())); | 161 media_stream_manager_.reset(new MediaStreamManager(audio_manager_.get())); |
| 150 host_ = new MockAudioRendererHost(audio_manager_.get(), | 162 host_ = new MockAudioRendererHost(audio_manager_.get(), |
| 151 &mirroring_manager_, | 163 &mirroring_manager_, |
| 152 MediaInternals::GetInstance(), | 164 MediaInternals::GetInstance(), |
| 153 media_stream_manager_.get()); | 165 media_stream_manager_.get(), |
| 166 GetMockSaltCallback()); | |
| 154 | 167 |
| 155 // Simulate IPC channel connected. | 168 // Simulate IPC channel connected. |
| 156 host_->set_peer_process_for_testing(base::Process::Current()); | 169 host_->set_peer_process_for_testing(base::Process::Current()); |
| 157 } | 170 } |
| 158 | 171 |
| 159 ~AudioRendererHostTest() override { | 172 ~AudioRendererHostTest() override { |
| 160 // Simulate closing the IPC channel and give the audio thread time to close | 173 // Simulate closing the IPC channel and give the audio thread time to close |
| 161 // the underlying streams. | 174 // the underlying streams. |
| 162 host_->OnChannelClosing(); | 175 host_->OnChannelClosing(); |
| 163 SyncWithAudioThread(); | 176 SyncWithAudioThread(); |
| (...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 327 Create(false); | 340 Create(false); |
| 328 Play(); | 341 Play(); |
| 329 SimulateError(); | 342 SimulateError(); |
| 330 Close(); | 343 Close(); |
| 331 } | 344 } |
| 332 | 345 |
| 333 TEST_F(AudioRendererHostTest, CreateUnifiedStreamAndClose) { | 346 TEST_F(AudioRendererHostTest, CreateUnifiedStreamAndClose) { |
| 334 Create(true); | 347 Create(true); |
| 335 Close(); | 348 Close(); |
| 336 } | 349 } |
| 337 | 350 |
|
miu
2015/06/03 21:01:01
Please add one or more unit tests for this new fun
| |
| 338 // TODO(hclam): Add tests for data conversation in low latency mode. | 351 // TODO(hclam): Add tests for data conversation in low latency mode. |
| 339 | 352 |
| 340 } // namespace content | 353 } // namespace content |
| OLD | NEW |