| 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 9e5488196d7e76621394c0fa008121aa2026487e..b1153637a8070df76ea0aeb2eb518dca77a4ce2a 100644
|
| --- a/content/browser/renderer_host/media/video_capture_host_unittest.cc
|
| +++ b/content/browser/renderer_host/media/video_capture_host_unittest.cc
|
| @@ -15,6 +15,7 @@
|
| #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"
|
|
|
| @@ -67,9 +68,37 @@ class DumpVideo {
|
| int expected_size_;
|
| };
|
|
|
| +namespace content {
|
| +// Test version of ResourceContext
|
| +class MockVideoCaptureResourceContext : public ResourceContext {
|
| + public:
|
| + MockVideoCaptureResourceContext() {}
|
| + virtual ~MockVideoCaptureResourceContext() {}
|
| +
|
| + virtual media_stream::MediaStreamManager* media_stream_manger() const {
|
| + return media_stream_manager_.get();
|
| + }
|
| +
|
| + void set_media_stream_manager(
|
| + media_stream::MediaStreamManager* media_stream_manager) {
|
| + media_stream_manager_ = media_stream_manager;
|
| + }
|
| +
|
| + private:
|
| + // Pure virtual in ResourceContext.
|
| + virtual void EnsureInitialized() const {}
|
| +
|
| + scoped_refptr<media_stream::MediaStreamManager> media_stream_manager_;
|
| +};
|
| +
|
| +} // namespace content
|
| +
|
| 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());
|
| @@ -190,14 +219,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()));
|
| + resource_context_.reset(new content::MockVideoCaptureResourceContext());
|
| +
|
| + // MediaStreamManager must be created on the IO thread.
|
| io_thread_.reset(new BrowserThread(BrowserThread::IO, message_loop_.get()));
|
| +
|
| + // Create a MediaStreamManager ad hand over ownership to ResourceContext.
|
| + media_stream::MediaStreamManager* media_stream_manager =
|
| + new media_stream::MediaStreamManager();
|
| + resource_context_->set_media_stream_manager(media_stream_manager);
|
| +
|
| // Setup the VideoCaptureManager to use fake video capture device.
|
| #ifndef TEST_REAL_CAPTURE_DEVICE
|
| - media_stream::VideoCaptureManager* manager =
|
| - media_stream::MediaStreamManager::Get()->video_capture_manager();
|
| - manager->UseFakeDevice();
|
| + resource_context_->media_stream_manager()->video_capture_manager()->
|
| + UseFakeDevice();
|
| #endif
|
| - host_ = new MockVideoCaptureHost();
|
| + host_ = new MockVideoCaptureHost(resource_context_.get());
|
|
|
| // Simulate IPC channel connected.
|
| host_->OnChannelConnected(base::GetCurrentProcId());
|
| @@ -223,6 +263,7 @@ class VideoCaptureHostTest : public testing::Test {
|
| SyncWithVideoCaptureManagerThread();
|
|
|
| io_thread_.reset();
|
| + ui_thread_.reset();
|
| }
|
|
|
| // Called on the VideoCaptureManager thread.
|
| @@ -231,8 +272,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));
|
| @@ -246,7 +288,8 @@ class VideoCaptureHostTest : public testing::Test {
|
| void SyncWithVideoCaptureManagerThread() {
|
| message_loop_->PostTask(
|
| FROM_HERE, NewRunnableFunction(&PostQuitOnVideoCaptureManagerThread,
|
| - message_loop_.get()));
|
| + message_loop_.get(),
|
| + resource_context_.get()));
|
| message_loop_->Run();
|
| }
|
|
|
| @@ -342,7 +385,9 @@ 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<content::ResourceContext> resource_context_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(VideoCaptureHostTest);
|
| };
|
|
|