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

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

Issue 1122393004: Add support for switching the audio output device for HTMLMediaElements. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changes to MediaPlayers so that they invoke callbacks in the correct threads. First complete implem… Created 5 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 "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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698