| 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 |