Index: content/browser/renderer_host/media/video_capture_host_unittest.cc |
diff --git a/content/browser/renderer_host/media/video_capture_host_unittest.cc b/content/browser/renderer_host/media/video_capture_host_unittest.cc |
index e80266ab8a1751a2f937f82ec29b648962522789..a526b0483df845cb0d7ef2dd21f63e0a4fb3ca22 100644 |
--- a/content/browser/renderer_host/media/video_capture_host_unittest.cc |
+++ b/content/browser/renderer_host/media/video_capture_host_unittest.cc |
@@ -12,9 +12,11 @@ |
#include "base/stl_util.h" |
#include "base/stringprintf.h" |
#include "content/browser/browser_thread.h" |
+#include "content/browser/mock_resource_context.h" |
#include "content/browser/renderer_host/media/media_stream_manager.h" |
#include "content/browser/renderer_host/media/video_capture_host.h" |
#include "content/browser/renderer_host/media/video_capture_manager.h" |
+#include "content/browser/resource_context.h" |
#include "content/common/media/video_capture_messages.h" |
#include "media/video/capture/video_capture_types.h" |
@@ -66,7 +68,10 @@ class DumpVideo { |
class MockVideoCaptureHost : public VideoCaptureHost { |
public: |
- MockVideoCaptureHost() : return_buffers_(false), dump_video_(false) {} |
+ explicit MockVideoCaptureHost(content::ResourceContext* resource_context) |
+ : VideoCaptureHost(resource_context), |
+ return_buffers_(false), |
+ dump_video_(false) {} |
virtual ~MockVideoCaptureHost() { |
STLDeleteContainerPairSecondPointers(filled_dib_.begin(), |
filled_dib_.end()); |
@@ -187,14 +192,25 @@ class VideoCaptureHostTest : public testing::Test { |
virtual void SetUp() { |
// Create a message loop so VideoCaptureHostTest can use it. |
message_loop_.reset(new MessageLoop(MessageLoop::TYPE_IO)); |
+ |
+ // ResourceContext must be created on the UI thread. |
+ ui_thread_.reset(new BrowserThread(BrowserThread::UI, message_loop_.get())); |
+ |
+ // MediaStreamManager must be created on the IO thread. |
io_thread_.reset(new BrowserThread(BrowserThread::IO, message_loop_.get())); |
- // Setup the VideoCaptureManager to use fake video capture device. |
+ |
+ // Create a MediaStreamManager instance and hand over pointer to |
+ // ResourceContext. |
+ media_stream_manager_.reset(new media_stream::MediaStreamManager()); |
+ |
#ifndef TEST_REAL_CAPTURE_DEVICE |
- media_stream::VideoCaptureManager* manager = |
- media_stream::MediaStreamManager::Get()->video_capture_manager(); |
- manager->UseFakeDevice(); |
+ media_stream_manager_->UseFakeDevice(); |
#endif |
- host_ = new MockVideoCaptureHost(); |
+ |
+ content::MockResourceContext::GetInstance()->set_media_stream_manager( |
+ media_stream_manager_.get()); |
+ host_ = new MockVideoCaptureHost( |
+ content::MockResourceContext::GetInstance()); |
// Simulate IPC channel connected. |
host_->OnChannelConnected(base::GetCurrentProcId()); |
@@ -219,7 +235,7 @@ class VideoCaptureHostTest : public testing::Test { |
// We need to continue running message_loop_ to complete all destructions. |
SyncWithVideoCaptureManagerThread(); |
- io_thread_.reset(); |
+ content::MockResourceContext::GetInstance()->set_media_stream_manager(NULL); |
} |
// Called on the VideoCaptureManager thread. |
@@ -228,8 +244,9 @@ class VideoCaptureHostTest : public testing::Test { |
} |
// Called on the main thread. |
- static void PostQuitOnVideoCaptureManagerThread(MessageLoop* message_loop) { |
- media_stream::MediaStreamManager::Get()->video_capture_manager()-> |
+ static void PostQuitOnVideoCaptureManagerThread( |
+ MessageLoop* message_loop, content::ResourceContext* resource_context) { |
+ resource_context->media_stream_manager()->video_capture_manager()-> |
GetMessageLoop()->PostTask(FROM_HERE, |
NewRunnableFunction( |
&PostQuitMessageLoop, message_loop)); |
@@ -242,8 +259,10 @@ class VideoCaptureHostTest : public testing::Test { |
// capture device. |
void SyncWithVideoCaptureManagerThread() { |
message_loop_->PostTask( |
- FROM_HERE, NewRunnableFunction(&PostQuitOnVideoCaptureManagerThread, |
- message_loop_.get())); |
+ FROM_HERE, |
+ NewRunnableFunction(&PostQuitOnVideoCaptureManagerThread, |
+ message_loop_.get(), |
+ content::MockResourceContext::GetInstance())); |
message_loop_->Run(); |
} |
@@ -337,9 +356,12 @@ class VideoCaptureHostTest : public testing::Test { |
} |
scoped_refptr<MockVideoCaptureHost> host_; |
+ |
private: |
scoped_ptr<MessageLoop> message_loop_; |
+ scoped_ptr<BrowserThread> ui_thread_; |
scoped_ptr<BrowserThread> io_thread_; |
+ scoped_ptr<media_stream::MediaStreamManager> media_stream_manager_; |
DISALLOW_COPY_AND_ASSIGN(VideoCaptureHostTest); |
}; |