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

Side by Side Diff: content/browser/renderer_host/media/audio_renderer_host_unittest.cc

Issue 1987643002: Make default media device ID salts random by default (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: change return type from const string to string as it makes no difference Created 4 years, 6 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 unified diff | Download patch
OLDNEW
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 "content/browser/renderer_host/media/audio_renderer_host.h" 5 #include "content/browser/renderer_host/media/audio_renderer_host.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 private: 59 private:
60 DISALLOW_COPY_AND_ASSIGN(MockAudioMirroringManager); 60 DISALLOW_COPY_AND_ASSIGN(MockAudioMirroringManager);
61 }; 61 };
62 62
63 class MockAudioRendererHost : public AudioRendererHost { 63 class MockAudioRendererHost : public AudioRendererHost {
64 public: 64 public:
65 MockAudioRendererHost(media::AudioManager* audio_manager, 65 MockAudioRendererHost(media::AudioManager* audio_manager,
66 AudioMirroringManager* mirroring_manager, 66 AudioMirroringManager* mirroring_manager,
67 MediaInternals* media_internals, 67 MediaInternals* media_internals,
68 MediaStreamManager* media_stream_manager, 68 MediaStreamManager* media_stream_manager,
69 const ResourceContext::SaltCallback& salt_callback) 69 const std::string& salt)
70 : AudioRendererHost(kRenderProcessId, 70 : AudioRendererHost(kRenderProcessId,
71 audio_manager, 71 audio_manager,
72 mirroring_manager, 72 mirroring_manager,
73 media_internals, 73 media_internals,
74 media_stream_manager, 74 media_stream_manager,
75 salt_callback), 75 salt),
76 shared_memory_length_(0) {} 76 shared_memory_length_(0) {}
77 77
78 // A list of mock methods. 78 // A list of mock methods.
79 MOCK_METHOD4(OnDeviceAuthorized, 79 MOCK_METHOD4(OnDeviceAuthorized,
80 void(int stream_id, 80 void(int stream_id,
81 media::OutputDeviceStatus device_status, 81 media::OutputDeviceStatus device_status,
82 const media::AudioParameters& output_params, 82 const media::AudioParameters& output_params,
83 const std::string& matched_device_id)); 83 const std::string& matched_device_id));
84 MOCK_METHOD2(OnStreamCreated, void(int stream_id, int length)); 84 MOCK_METHOD2(OnStreamCreated, void(int stream_id, int length));
85 MOCK_METHOD1(OnStreamPlaying, void(int stream_id)); 85 MOCK_METHOD1(OnStreamPlaying, void(int stream_id));
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 } 163 }
164 164
165 std::unique_ptr<base::SharedMemory> shared_memory_; 165 std::unique_ptr<base::SharedMemory> shared_memory_;
166 std::unique_ptr<base::SyncSocket> sync_socket_; 166 std::unique_ptr<base::SyncSocket> sync_socket_;
167 uint32_t shared_memory_length_; 167 uint32_t shared_memory_length_;
168 168
169 DISALLOW_COPY_AND_ASSIGN(MockAudioRendererHost); 169 DISALLOW_COPY_AND_ASSIGN(MockAudioRendererHost);
170 }; 170 };
171 171
172 namespace { 172 namespace {
173 std::string ReturnMockSalt() {
174 return std::string();
175 }
176
177 ResourceContext::SaltCallback GetMockSaltCallback() {
178 return base::Bind(&ReturnMockSalt);
179 }
180 173
181 void WaitForEnumeration(base::RunLoop* loop, 174 void WaitForEnumeration(base::RunLoop* loop,
182 const AudioOutputDeviceEnumeration& e) { 175 const AudioOutputDeviceEnumeration& e) {
183 loop->Quit(); 176 loop->Quit();
184 } 177 }
178
185 } // namespace 179 } // namespace
186 180
187 class AudioRendererHostTest : public testing::Test { 181 class AudioRendererHostTest : public testing::Test {
188 public: 182 public:
189 AudioRendererHostTest() { 183 AudioRendererHostTest() {
190 audio_manager_ = media::AudioManager::CreateForTesting( 184 audio_manager_ = media::AudioManager::CreateForTesting(
191 base::ThreadTaskRunnerHandle::Get()); 185 base::ThreadTaskRunnerHandle::Get());
192 base::CommandLine::ForCurrentProcess()->AppendSwitch( 186 base::CommandLine::ForCurrentProcess()->AppendSwitch(
193 switches::kUseFakeDeviceForMediaStream); 187 switches::kUseFakeDeviceForMediaStream);
194 media_stream_manager_.reset(new MediaStreamManager(audio_manager_.get())); 188 media_stream_manager_.reset(new MediaStreamManager(audio_manager_.get()));
195 189
196 // Enable caching to make enumerations run in a single thread 190 // Enable caching to make enumerations run in a single thread
197 media_stream_manager_->audio_output_device_enumerator()->SetCachePolicy( 191 media_stream_manager_->audio_output_device_enumerator()->SetCachePolicy(
198 AudioOutputDeviceEnumerator::CACHE_POLICY_MANUAL_INVALIDATION); 192 AudioOutputDeviceEnumerator::CACHE_POLICY_MANUAL_INVALIDATION);
199 base::RunLoop().RunUntilIdle(); 193 base::RunLoop().RunUntilIdle();
200 base::RunLoop run_loop; 194 base::RunLoop run_loop;
201 media_stream_manager_->audio_output_device_enumerator()->Enumerate( 195 media_stream_manager_->audio_output_device_enumerator()->Enumerate(
202 base::Bind(&WaitForEnumeration, &run_loop)); 196 base::Bind(&WaitForEnumeration, &run_loop));
203 run_loop.Run(); 197 run_loop.Run();
204 198
205 host_ = new MockAudioRendererHost(audio_manager_.get(), &mirroring_manager_, 199 host_ =
206 MediaInternals::GetInstance(), 200 new MockAudioRendererHost(audio_manager_.get(), &mirroring_manager_,
207 media_stream_manager_.get(), 201 MediaInternals::GetInstance(),
208 GetMockSaltCallback()); 202 media_stream_manager_.get(), std::string());
209 203
210 // Simulate IPC channel connected. 204 // Simulate IPC channel connected.
211 host_->set_peer_process_for_testing(base::Process::Current()); 205 host_->set_peer_process_for_testing(base::Process::Current());
212 } 206 }
213 207
214 ~AudioRendererHostTest() override { 208 ~AudioRendererHostTest() override {
215 // Simulate closing the IPC channel and give the audio thread time to close 209 // Simulate closing the IPC channel and give the audio thread time to close
216 // the underlying streams. 210 // the underlying streams.
217 host_->OnChannelClosing(); 211 host_->OnChannelClosing();
218 SyncWithAudioThread(); 212 SyncWithAudioThread();
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 } 401 }
408 402
409 TEST_F(AudioRendererHostTest, CreateInvalidDevice) { 403 TEST_F(AudioRendererHostTest, CreateInvalidDevice) {
410 Create(false, kInvalidDeviceId, url::Origin(GURL(kSecurityOrigin))); 404 Create(false, kInvalidDeviceId, url::Origin(GURL(kSecurityOrigin)));
411 Close(); 405 Close();
412 } 406 }
413 407
414 // TODO(hclam): Add tests for data conversation in low latency mode. 408 // TODO(hclam): Add tests for data conversation in low latency mode.
415 409
416 } // namespace content 410 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698