OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <string> | 5 #include <string> |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
9 #include "content/browser/browser_thread_impl.h" | 9 #include "content/browser/browser_thread_impl.h" |
10 #include "content/browser/renderer_host/media/media_stream_dispatcher_host.h" | 10 #include "content/browser/renderer_host/media/media_stream_dispatcher_host.h" |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 message_loop_->PostTask(FROM_HERE, MessageLoop::QuitClosure()); | 121 message_loop_->PostTask(FROM_HERE, MessageLoop::QuitClosure()); |
122 label_= ""; | 122 label_= ""; |
123 } | 123 } |
124 | 124 |
125 MessageLoop* message_loop_; | 125 MessageLoop* message_loop_; |
126 MediaStreamManager* manager_; | 126 MediaStreamManager* manager_; |
127 }; | 127 }; |
128 | 128 |
129 class MediaStreamDispatcherHostTest : public testing::Test { | 129 class MediaStreamDispatcherHostTest : public testing::Test { |
130 public: | 130 public: |
131 MediaStreamDispatcherHostTest() : old_client_(NULL), | 131 MediaStreamDispatcherHostTest() : old_browser_client_(NULL) {} |
132 old_browser_client_(NULL) {} | |
133 virtual ~MediaStreamDispatcherHostTest() {} | 132 virtual ~MediaStreamDispatcherHostTest() {} |
134 | 133 |
135 void WaitForResult() { | 134 void WaitForResult() { |
136 message_loop_->Run(); | 135 message_loop_->Run(); |
137 } | 136 } |
138 | 137 |
139 protected: | 138 protected: |
140 virtual void SetUp() OVERRIDE { | 139 virtual void SetUp() OVERRIDE { |
141 // MediaStreamManager must be created and called on IO thread. | 140 // MediaStreamManager must be created and called on IO thread. |
142 message_loop_.reset(new MessageLoop(MessageLoop::TYPE_IO)); | 141 message_loop_.reset(new MessageLoop(MessageLoop::TYPE_IO)); |
143 io_thread_.reset(new BrowserThreadImpl(BrowserThread::IO, | 142 io_thread_.reset(new BrowserThreadImpl(BrowserThread::IO, |
144 message_loop_.get())); | 143 message_loop_.get())); |
145 | 144 |
146 // Create our own media observer. | 145 // Create our own media observer. |
147 media_observer_.reset(new MockMediaObserver()); | 146 media_observer_.reset(new MockMediaObserver()); |
148 | 147 |
149 // Create our own MediaStreamManager. | 148 // Create our own MediaStreamManager. |
150 audio_manager_.reset(media::AudioManager::Create()); | 149 audio_manager_.reset(media::AudioManager::Create()); |
151 media_stream_manager_.reset(new MediaStreamManager(audio_manager_.get())); | 150 media_stream_manager_.reset(new MediaStreamManager(audio_manager_.get())); |
152 // Make sure we use fake devices to avoid long delays. | 151 // Make sure we use fake devices to avoid long delays. |
153 media_stream_manager_->UseFakeDevice(); | 152 media_stream_manager_->UseFakeDevice(); |
154 | 153 |
155 host_ = new MockMediaStreamDispatcherHost(message_loop_.get(), | 154 host_ = new MockMediaStreamDispatcherHost(message_loop_.get(), |
156 media_stream_manager_.get()); | 155 media_stream_manager_.get()); |
157 | 156 |
158 // Use the fake content client and browser. | 157 // Use the fake content client and browser. |
159 old_client_ = GetContentClient(); | |
160 old_browser_client_ = GetContentClient()->browser(); | |
161 content_client_.reset(new TestContentClient); | 158 content_client_.reset(new TestContentClient); |
162 SetContentClient(content_client_.get()); | 159 SetContentClient(content_client_.get()); |
163 content_client_->set_browser_for_testing(host_); | 160 old_browser_client_ = SetBrowserClientForTesting(host_); |
164 } | 161 } |
165 | 162 |
166 virtual void TearDown() OVERRIDE { | 163 virtual void TearDown() OVERRIDE { |
167 message_loop_->RunUntilIdle(); | 164 message_loop_->RunUntilIdle(); |
168 | 165 |
169 // Recover the old browser client and content client. | 166 // Recover the old browser client and content client. |
170 GetContentClient()->set_browser_for_testing(old_browser_client_); | 167 SetBrowserClientForTesting(old_browser_client_); |
171 SetContentClient(old_client_); | |
172 content_client_.reset(); | 168 content_client_.reset(); |
173 | 169 |
174 // Delete the IO message loop to delete the device thread, | 170 // Delete the IO message loop to delete the device thread, |
175 // AudioInputDeviceManager and VideoCaptureManager. | 171 // AudioInputDeviceManager and VideoCaptureManager. |
176 message_loop_.reset(); | 172 message_loop_.reset(); |
177 } | 173 } |
178 | 174 |
179 scoped_refptr<MockMediaStreamDispatcherHost> host_; | 175 scoped_refptr<MockMediaStreamDispatcherHost> host_; |
180 scoped_ptr<MessageLoop> message_loop_; | 176 scoped_ptr<MessageLoop> message_loop_; |
181 scoped_ptr<BrowserThreadImpl> io_thread_; | 177 scoped_ptr<BrowserThreadImpl> io_thread_; |
182 scoped_ptr<media::AudioManager> audio_manager_; | 178 scoped_ptr<media::AudioManager> audio_manager_; |
183 scoped_ptr<MediaStreamManager> media_stream_manager_; | 179 scoped_ptr<MediaStreamManager> media_stream_manager_; |
184 ContentClient* old_client_; | |
185 ContentBrowserClient* old_browser_client_; | 180 ContentBrowserClient* old_browser_client_; |
186 scoped_ptr<ContentClient> content_client_; | 181 scoped_ptr<ContentClient> content_client_; |
187 scoped_ptr<MockMediaObserver> media_observer_; | 182 scoped_ptr<MockMediaObserver> media_observer_; |
188 }; | 183 }; |
189 | 184 |
190 TEST_F(MediaStreamDispatcherHostTest, GenerateStream) { | 185 TEST_F(MediaStreamDispatcherHostTest, GenerateStream) { |
191 StreamOptions options(MEDIA_NO_SERVICE, MEDIA_DEVICE_VIDEO_CAPTURE); | 186 StreamOptions options(MEDIA_NO_SERVICE, MEDIA_DEVICE_VIDEO_CAPTURE); |
192 | 187 |
193 EXPECT_CALL(*host_, GetMediaObserver()) | 188 EXPECT_CALL(*host_, GetMediaObserver()) |
194 .WillRepeatedly(Return(media_observer_.get())); | 189 .WillRepeatedly(Return(media_observer_.get())); |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
363 EXPECT_EQ(host_->NumberOfStreams(), 1u); | 358 EXPECT_EQ(host_->NumberOfStreams(), 1u); |
364 | 359 |
365 ASSERT_FALSE(close_callback.is_null()); | 360 ASSERT_FALSE(close_callback.is_null()); |
366 close_callback.Run(); | 361 close_callback.Run(); |
367 message_loop_->RunUntilIdle(); | 362 message_loop_->RunUntilIdle(); |
368 | 363 |
369 EXPECT_EQ(host_->NumberOfStreams(), 0u); | 364 EXPECT_EQ(host_->NumberOfStreams(), 0u); |
370 } | 365 } |
371 | 366 |
372 }; // namespace content | 367 }; // namespace content |
OLD | NEW |