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

Unified Diff: content/browser/renderer_host/media/media_stream_dispatcher_host_unittest.cc

Issue 10662049: Move the device enumerate/open/close work to device thread from IO thread (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: addressed Magnus' comments. Created 8 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/media/media_stream_dispatcher_host_unittest.cc
diff --git a/content/browser/renderer_host/media/media_stream_dispatcher_host_unittest.cc b/content/browser/renderer_host/media/media_stream_dispatcher_host_unittest.cc
index 0539bb84d2080a9eb0c725b04d81a8f0fa266147..46f9093c05246488d0a730c209bb0fc62046ec8c 100644
--- a/content/browser/renderer_host/media/media_stream_dispatcher_host_unittest.cc
+++ b/content/browser/renderer_host/media/media_stream_dispatcher_host_unittest.cc
@@ -17,7 +17,6 @@
#include "content/test/test_content_browser_client.h"
#include "content/test/test_content_client.h"
#include "ipc/ipc_message_macros.h"
-#include "media/audio/audio_manager.h"
#include "net/url_request/url_request_context.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -40,9 +39,8 @@ class MockMediaStreamDispatcherHost : public MediaStreamDispatcherHost,
public content::TestContentBrowserClient {
public:
MockMediaStreamDispatcherHost(content::ResourceContext* resource_context,
- MessageLoop* message_loop,
- media::AudioManager* audio_manager)
- : MediaStreamDispatcherHost(resource_context, kProcessId, audio_manager),
+ MessageLoop* message_loop)
+ : MediaStreamDispatcherHost(resource_context, kProcessId),
message_loop_(message_loop) {}
// A list of mock methods.
@@ -162,17 +160,15 @@ class MediaStreamDispatcherHostTest : public testing::Test {
io_thread_.reset(new BrowserThreadImpl(BrowserThread::IO,
message_loop_.get()));
- audio_manager_.reset(media::AudioManager::Create());
-
// Create our own media observer.
media_observer_.reset(new MockMediaObserver());
// Make sure we use fake devices to avoid long delays.
MediaStreamManager::GetForResourceContext(
- &resource_context_, audio_manager_.get())->UseFakeDevice();
+ &resource_context_)->UseFakeDevice();
- host_ = new MockMediaStreamDispatcherHost(
- &resource_context_, message_loop_.get(), audio_manager_.get());
+ host_ = new MockMediaStreamDispatcherHost(&resource_context_,
+ message_loop_.get());
// Use the fake content client and browser.
old_client_ = content::GetContentClient();
@@ -183,8 +179,7 @@ class MediaStreamDispatcherHostTest : public testing::Test {
}
virtual void TearDown() {
- // Needed to make sure the manager finishes all tasks on its own thread.
- SyncWithVideoCaptureManagerThread();
+ message_loop_->RunAllPending();
// Recover the old browser client and content client.
content::GetContentClient()->set_browser_for_testing(old_browser_client_);
@@ -192,40 +187,10 @@ class MediaStreamDispatcherHostTest : public testing::Test {
content_client_.reset();
}
- // Called on the VideoCaptureManager thread.
- static void PostQuitMessageLoop(MessageLoop* message_loop) {
- message_loop->PostTask(FROM_HERE, MessageLoop::QuitClosure());
- }
-
- // Called on the main thread.
- static void PostQuitOnVideoCaptureManagerThread(
- MessageLoop* message_loop,
- media_stream::MediaStreamManager* media_stream_manager) {
- media_stream_manager->video_capture_manager()->GetMessageLoop()->
- PostTask(FROM_HERE,
- base::Bind(&PostQuitMessageLoop, message_loop));
- }
-
- // SyncWithVideoCaptureManagerThread() waits until all pending tasks on the
- // video_capture_manager thread are executed while also processing pending
- // task in message_loop_ on the current thread. It is used to synchronize
- // with the video capture manager thread when we are stopping a video
- // capture device.
- void SyncWithVideoCaptureManagerThread() {
- message_loop_->PostTask(
- FROM_HERE,
- base::Bind(&PostQuitOnVideoCaptureManagerThread,
- message_loop_.get(),
- MediaStreamManager::GetForResourceContext(
- &resource_context_, audio_manager_.get())));
- message_loop_->Run();
- }
-
scoped_refptr<MockMediaStreamDispatcherHost> host_;
scoped_ptr<MessageLoop> message_loop_;
scoped_ptr<BrowserThreadImpl> ui_thread_;
scoped_ptr<BrowserThreadImpl> io_thread_;
- scoped_ptr<media::AudioManager> audio_manager_;
content::MockResourceContext resource_context_;
content::ContentClient* old_client_;
content::ContentBrowserClient* old_browser_client_;
@@ -346,9 +311,8 @@ TEST_F(MediaStreamDispatcherHostTest, FailDevice) {
EXPECT_CALL(*host_, OnVideoDeviceFailed(kRenderId, 0));
int session_id = host_->video_devices_[0].session_id;
- MediaStreamManager::GetForResourceContext(
- &resource_context_, audio_manager_.get())->
- video_capture_manager()->Error(session_id);
+ MediaStreamManager::GetForResourceContext(&resource_context_)->
+ video_capture_manager()->Error(session_id);
WaitForResult();
EXPECT_EQ(host_->video_devices_.size(), 0u);
EXPECT_EQ(host_->NumberOfStreams(), 1u);

Powered by Google App Engine
This is Rietveld 408576698