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

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

Issue 9845033: Move the MediaObserver getter from ResourceContext to ContentBrowserClient, since we only need to s… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix dcheck Created 8 years, 9 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 | Annotate | Revision Log
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/environment.h" 6 #include "base/environment.h"
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/process_util.h" 9 #include "base/process_util.h"
10 #include "base/sync_socket.h" 10 #include "base/sync_socket.h"
11 #include "content/browser/browser_thread_impl.h" 11 #include "content/browser/browser_thread_impl.h"
12 #include "content/browser/renderer_host/media/audio_renderer_host.h" 12 #include "content/browser/renderer_host/media/audio_renderer_host.h"
13 #include "content/browser/renderer_host/media/mock_media_observer.h" 13 #include "content/browser/renderer_host/media/mock_media_observer.h"
14 #include "content/common/media/audio_messages.h" 14 #include "content/common/media/audio_messages.h"
15 #include "content/test/mock_resource_context.h"
16 #include "ipc/ipc_message_utils.h" 15 #include "ipc/ipc_message_utils.h"
17 #include "media/audio/audio_manager.h" 16 #include "media/audio/audio_manager.h"
18 #include "media/audio/fake_audio_output_stream.h" 17 #include "media/audio/fake_audio_output_stream.h"
19 #include "net/url_request/url_request_context.h" 18 #include "net/url_request/url_request_context.h"
20 #include "testing/gmock/include/gmock/gmock.h" 19 #include "testing/gmock/include/gmock/gmock.h"
21 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
22 21
23 using ::testing::_; 22 using ::testing::_;
24 using ::testing::AtLeast; 23 using ::testing::AtLeast;
25 using ::testing::DoAll; 24 using ::testing::DoAll;
(...skipping 11 matching lines...) Expand all
37 static bool IsRunningHeadless() { 36 static bool IsRunningHeadless() {
38 scoped_ptr<base::Environment> env(base::Environment::Create()); 37 scoped_ptr<base::Environment> env(base::Environment::Create());
39 if (env->HasVar("CHROME_HEADLESS")) 38 if (env->HasVar("CHROME_HEADLESS"))
40 return true; 39 return true;
41 return false; 40 return false;
42 } 41 }
43 42
44 class MockAudioRendererHost : public AudioRendererHost { 43 class MockAudioRendererHost : public AudioRendererHost {
45 public: 44 public:
46 explicit MockAudioRendererHost( 45 explicit MockAudioRendererHost(
47 content::ResourceContext* resource_context, 46 AudioManager* audio_manager,
48 AudioManager* audio_manager) 47 content::MediaObserver* media_observer)
49 : AudioRendererHost(resource_context, audio_manager), 48 : AudioRendererHost(audio_manager, media_observer),
50 shared_memory_length_(0) { 49 shared_memory_length_(0) {
51 } 50 }
52 51
53 virtual ~MockAudioRendererHost() { 52 virtual ~MockAudioRendererHost() {
54 // Make sure all audio streams have been deleted. 53 // Make sure all audio streams have been deleted.
55 EXPECT_EQ(0u, audio_entries_.size()); 54 EXPECT_EQ(0u, audio_entries_.size());
56 } 55 }
57 56
58 // A list of mock methods. 57 // A list of mock methods.
59 MOCK_METHOD2(OnStreamCreated, 58 MOCK_METHOD2(OnStreamCreated,
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 // Create a message loop so AudioRendererHost can use it. 156 // Create a message loop so AudioRendererHost can use it.
158 message_loop_.reset(new MessageLoop(MessageLoop::TYPE_IO)); 157 message_loop_.reset(new MessageLoop(MessageLoop::TYPE_IO));
159 158
160 // Claim to be on both the UI and IO threads to pass all the DCHECKS. 159 // Claim to be on both the UI and IO threads to pass all the DCHECKS.
161 io_thread_.reset(new BrowserThreadImpl(BrowserThread::IO, 160 io_thread_.reset(new BrowserThreadImpl(BrowserThread::IO,
162 message_loop_.get())); 161 message_loop_.get()));
163 ui_thread_.reset(new BrowserThreadImpl(BrowserThread::UI, 162 ui_thread_.reset(new BrowserThreadImpl(BrowserThread::UI,
164 message_loop_.get())); 163 message_loop_.get()));
165 audio_manager_.reset(AudioManager::Create()); 164 audio_manager_.reset(AudioManager::Create());
166 observer_.reset(new MockMediaObserver()); 165 observer_.reset(new MockMediaObserver());
167 resource_context_.set_media_observer(observer_.get()); 166 host_ = new MockAudioRendererHost(audio_manager_.get(), observer_.get());
168 host_ = new MockAudioRendererHost(&resource_context_, audio_manager_.get());
169 167
170 // Simulate IPC channel connected. 168 // Simulate IPC channel connected.
171 host_->OnChannelConnected(base::GetCurrentProcId()); 169 host_->OnChannelConnected(base::GetCurrentProcId());
172 } 170 }
173 171
174 virtual void TearDown() { 172 virtual void TearDown() {
175 // Simulate closing the IPC channel. 173 // Simulate closing the IPC channel.
176 host_->OnChannelClosing(); 174 host_->OnChannelClosing();
177 175
178 // Release the reference to the mock object. The object will be destructed 176 // Release the reference to the mock object. The object will be destructed
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 void EnableRealDevice() { mock_stream_ = false; } 304 void EnableRealDevice() { mock_stream_ = false; }
307 305
308 private: 306 private:
309 bool mock_stream_; 307 bool mock_stream_;
310 scoped_ptr<MockMediaObserver> observer_; 308 scoped_ptr<MockMediaObserver> observer_;
311 scoped_refptr<MockAudioRendererHost> host_; 309 scoped_refptr<MockAudioRendererHost> host_;
312 scoped_ptr<MessageLoop> message_loop_; 310 scoped_ptr<MessageLoop> message_loop_;
313 scoped_ptr<BrowserThreadImpl> io_thread_; 311 scoped_ptr<BrowserThreadImpl> io_thread_;
314 scoped_ptr<BrowserThreadImpl> ui_thread_; 312 scoped_ptr<BrowserThreadImpl> ui_thread_;
315 scoped_ptr<AudioManager> audio_manager_; 313 scoped_ptr<AudioManager> audio_manager_;
316 content::MockResourceContext resource_context_;
317 314
318 DISALLOW_COPY_AND_ASSIGN(AudioRendererHostTest); 315 DISALLOW_COPY_AND_ASSIGN(AudioRendererHostTest);
319 }; 316 };
320 317
321 TEST_F(AudioRendererHostTest, CreateAndClose) { 318 TEST_F(AudioRendererHostTest, CreateAndClose) {
322 if (!IsRunningHeadless()) 319 if (!IsRunningHeadless())
323 EnableRealDevice(); 320 EnableRealDevice();
324 321
325 Create(); 322 Create();
326 Close(); 323 Close();
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 EnableRealDevice(); 402 EnableRealDevice();
406 403
407 Create(); 404 Create();
408 Play(); 405 Play();
409 SimulateError(); 406 SimulateError();
410 Close(); 407 Close();
411 } 408 }
412 409
413 410
414 // TODO(hclam): Add tests for data conversation in low latency mode. 411 // TODO(hclam): Add tests for data conversation in low latency mode.
OLDNEW
« no previous file with comments | « content/browser/renderer_host/media/audio_renderer_host.cc ('k') | content/browser/renderer_host/render_message_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698