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

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

Issue 7649016: Removing singleton property of MediaStreamManager and creating thread first when needed. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Changing unit tests based on review by scherkus. Created 9 years, 4 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/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..50503a48b6cc568e85148a0cd5b4edaf598d9d47 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"
@@ -69,7 +71,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());
@@ -190,14 +195,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());
@@ -222,7 +238,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.
@@ -231,8 +247,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));
@@ -245,8 +262,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();
}
@@ -342,7 +361,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<media_stream::MediaStreamManager> media_stream_manager_;
DISALLOW_COPY_AND_ASSIGN(VideoCaptureHostTest);
};

Powered by Google App Engine
This is Rietveld 408576698