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

Unified Diff: content/browser/renderer_host/media/media_stream_dispatcher_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: 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/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 76eef568dfe5c37cb3d4039358374cfc19302149..a8f88376b2391b0b8ce02b911e740d31c6dc5eaa 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
@@ -8,6 +8,7 @@
#include "content/browser/renderer_host/media/media_stream_dispatcher_host.h"
#include "content/browser/renderer_host/media/media_stream_manager.h"
#include "content/browser/renderer_host/media/video_capture_manager.h"
+#include "content/browser/resource_context.h"
#include "content/common/media/media_stream_messages.h"
#include "content/common/media/media_stream_options.h"
#include "ipc/ipc_message_macros.h"
@@ -23,12 +24,38 @@ const int kProcessId = 5;
const int kRenderId = 6;
const int kPageRequestId = 7;
+namespace content {
+// Test version of ResourceContext
+class MockMediaStreamResourceContext : public ResourceContext {
scherkus (not reviewing) 2011/08/16 19:24:09 you might be able to use MockResourceContext cont
mflodman_chromium_OOO 2011/08/19 11:07:09 This part was removed based on review feedback fro
+ public:
+ MockMediaStreamResourceContext() {}
+ virtual ~MockMediaStreamResourceContext() {}
+
+ 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
+
namespace media_stream {
class MockMediaStreamDispatcherHost : public MediaStreamDispatcherHost {
public:
- explicit MockMediaStreamDispatcherHost(MessageLoop* message_loop)
- : MediaStreamDispatcherHost(kProcessId),
+ MockMediaStreamDispatcherHost(content::ResourceContext* resource_context,
+ MessageLoop* message_loop)
+ : MediaStreamDispatcherHost(resource_context, kProcessId),
message_loop_(message_loop) {}
virtual ~MockMediaStreamDispatcherHost() {}
@@ -41,9 +68,7 @@ class MockMediaStreamDispatcherHost : public MediaStreamDispatcherHost {
MOCK_METHOD2(OnVideoDeviceFailed, void(int routing_id, int index));
// Accessor to private functions.
- void OnGenerateStream(
- int page_request_id,
- const StreamOptions& components) {
+ void OnGenerateStream(int page_request_id, const StreamOptions& components) {
MediaStreamDispatcherHost::OnGenerateStream(kRenderId,
page_request_id,
components,
@@ -104,8 +129,7 @@ class MockMediaStreamDispatcherHost : public MediaStreamDispatcherHost {
video_devices_ = video_device_list;
}
- void OnStreamGenerationFailed(const IPC::Message& msg,
- int request_id) {
+ void OnStreamGenerationFailed(const IPC::Message& msg, int request_id) {
OnStreamGenerationFailed(msg.routing_id(), request_id);
message_loop_->PostTask(FROM_HERE, new MessageLoop::QuitTask());
label_= "";
@@ -138,23 +162,37 @@ class MediaStreamDispatcherHostTest : public testing::Test {
protected:
virtual void SetUp() {
- // Create message loop so that
- // DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)) passes.
message_loop_.reset(new MessageLoop(MessageLoop::TYPE_IO));
+ // ResourceContext must be created on UI thread.
+ ui_thread_.reset(new BrowserThread(BrowserThread::UI, message_loop_.get()));
+ resource_context_.reset(new content::MockMediaStreamResourceContext());
+
+ // MediaStreamManager must be created and called on IO thread.
io_thread_.reset(new BrowserThread(BrowserThread::IO, message_loop_.get()));
- // Make sure the MediaStreamManager exist and use
- // fake audio / video devices.
- MediaStreamManager* manager = MediaStreamManager::Get();
- manager->UseFakeDevice();
+ // Create a MediaStreamManager instance and hand over ownership to
+ // ResourceContext.
+ MediaStreamManager* media_stream_manager = new MediaStreamManager();
+ resource_context_->set_media_stream_manager(media_stream_manager);
+
+ // Make sure we use fake devices to avoid long delays.
+ resource_context_->media_stream_manager()->UseFakeDevice();
+
+ host_ = new MockMediaStreamDispatcherHost(resource_context_.get(),
+ message_loop_.get());
+ }
- host_ =
- new MockMediaStreamDispatcherHost(message_loop_.get());
+ virtual void TearDown() {
+ // Delete the threads in correct order.
+ io_thread_.reset();
+ ui_thread_.reset();
}
scoped_refptr<MockMediaStreamDispatcherHost> host_;
scoped_ptr<MessageLoop> message_loop_;
+ scoped_ptr<BrowserThread> ui_thread_;
scoped_ptr<BrowserThread> io_thread_;
+ scoped_ptr<content::ResourceContext> resource_context_;
};
TEST_F(MediaStreamDispatcherHostTest, GenerateStream) {
@@ -223,7 +261,8 @@ TEST_F(MediaStreamDispatcherHostTest, FailDevice) {
EXPECT_CALL(*host_, OnVideoDeviceFailed(kRenderId, 0));
int session_id = host_->video_devices_[0].session_id;
- MediaStreamManager::Get()->video_capture_manager()->Error(session_id);
+ resource_context_->media_stream_manager()->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