| 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 <map> | 5 #include <map> |
| 6 #include <string> | 6 #include <string> |
| 7 | 7 |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 173 return 0; | 173 return 0; |
| 174 std::map<int, base::SharedMemory*>::iterator it = filled_dib_.begin(); | 174 std::map<int, base::SharedMemory*>::iterator it = filled_dib_.begin(); |
| 175 int h = it->first; | 175 int h = it->first; |
| 176 delete it->second; | 176 delete it->second; |
| 177 filled_dib_.erase(it); | 177 filled_dib_.erase(it); |
| 178 | 178 |
| 179 return h; | 179 return h; |
| 180 } | 180 } |
| 181 | 181 |
| 182 private: | 182 private: |
| 183 virtual ~MockVideoCaptureHost() { | 183 ~MockVideoCaptureHost() override { |
| 184 STLDeleteContainerPairSecondPointers(filled_dib_.begin(), | 184 STLDeleteContainerPairSecondPointers(filled_dib_.begin(), |
| 185 filled_dib_.end()); | 185 filled_dib_.end()); |
| 186 } | 186 } |
| 187 | 187 |
| 188 // This method is used to dispatch IPC messages to the renderer. We intercept | 188 // This method is used to dispatch IPC messages to the renderer. We intercept |
| 189 // these messages here and dispatch to our mock methods to verify the | 189 // these messages here and dispatch to our mock methods to verify the |
| 190 // conversation between this object and the renderer. | 190 // conversation between this object and the renderer. |
| 191 virtual bool Send(IPC::Message* message) override { | 191 bool Send(IPC::Message* message) override { |
| 192 CHECK(message); | 192 CHECK(message); |
| 193 | 193 |
| 194 // In this method we dispatch the messages to the according handlers as if | 194 // In this method we dispatch the messages to the according handlers as if |
| 195 // we are the renderer. | 195 // we are the renderer. |
| 196 bool handled = true; | 196 bool handled = true; |
| 197 IPC_BEGIN_MESSAGE_MAP(MockVideoCaptureHost, *message) | 197 IPC_BEGIN_MESSAGE_MAP(MockVideoCaptureHost, *message) |
| 198 IPC_MESSAGE_HANDLER(VideoCaptureMsg_NewBuffer, OnNewBufferCreatedDispatch) | 198 IPC_MESSAGE_HANDLER(VideoCaptureMsg_NewBuffer, OnNewBufferCreatedDispatch) |
| 199 IPC_MESSAGE_HANDLER(VideoCaptureMsg_FreeBuffer, OnBufferFreedDispatch) | 199 IPC_MESSAGE_HANDLER(VideoCaptureMsg_FreeBuffer, OnBufferFreedDispatch) |
| 200 IPC_MESSAGE_HANDLER(VideoCaptureMsg_BufferReady, OnBufferFilledDispatch) | 200 IPC_MESSAGE_HANDLER(VideoCaptureMsg_BufferReady, OnBufferFilledDispatch) |
| 201 IPC_MESSAGE_HANDLER(VideoCaptureMsg_MailboxBufferReady, | 201 IPC_MESSAGE_HANDLER(VideoCaptureMsg_MailboxBufferReady, |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 // This is an integration test of VideoCaptureHost in conjunction with | 279 // This is an integration test of VideoCaptureHost in conjunction with |
| 280 // MediaStreamManager, VideoCaptureManager, VideoCaptureController, and | 280 // MediaStreamManager, VideoCaptureManager, VideoCaptureController, and |
| 281 // VideoCaptureDevice. | 281 // VideoCaptureDevice. |
| 282 class VideoCaptureHostTest : public testing::Test { | 282 class VideoCaptureHostTest : public testing::Test { |
| 283 public: | 283 public: |
| 284 VideoCaptureHostTest() | 284 VideoCaptureHostTest() |
| 285 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP), | 285 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP), |
| 286 message_loop_(base::MessageLoopProxy::current()), | 286 message_loop_(base::MessageLoopProxy::current()), |
| 287 opened_session_id_(kInvalidMediaCaptureSessionId) {} | 287 opened_session_id_(kInvalidMediaCaptureSessionId) {} |
| 288 | 288 |
| 289 virtual void SetUp() override { | 289 void SetUp() override { |
| 290 SetBrowserClientForTesting(&browser_client_); | 290 SetBrowserClientForTesting(&browser_client_); |
| 291 | 291 |
| 292 #if defined(OS_CHROMEOS) | 292 #if defined(OS_CHROMEOS) |
| 293 chromeos::CrasAudioHandler::InitializeForTesting(); | 293 chromeos::CrasAudioHandler::InitializeForTesting(); |
| 294 #endif | 294 #endif |
| 295 | 295 |
| 296 // Create our own MediaStreamManager. | 296 // Create our own MediaStreamManager. |
| 297 audio_manager_.reset(media::AudioManager::CreateForTesting()); | 297 audio_manager_.reset(media::AudioManager::CreateForTesting()); |
| 298 #ifndef TEST_REAL_CAPTURE_DEVICE | 298 #ifndef TEST_REAL_CAPTURE_DEVICE |
| 299 base::CommandLine::ForCurrentProcess()->AppendSwitch( | 299 base::CommandLine::ForCurrentProcess()->AppendSwitch( |
| 300 switches::kUseFakeDeviceForMediaStream); | 300 switches::kUseFakeDeviceForMediaStream); |
| 301 #endif | 301 #endif |
| 302 media_stream_manager_.reset(new MediaStreamManager(audio_manager_.get())); | 302 media_stream_manager_.reset(new MediaStreamManager(audio_manager_.get())); |
| 303 media_stream_manager_->UseFakeUI(scoped_ptr<FakeMediaStreamUIProxy>()); | 303 media_stream_manager_->UseFakeUI(scoped_ptr<FakeMediaStreamUIProxy>()); |
| 304 | 304 |
| 305 // Create a Host and connect it to a simulated IPC channel. | 305 // Create a Host and connect it to a simulated IPC channel. |
| 306 host_ = new MockVideoCaptureHost(media_stream_manager_.get()); | 306 host_ = new MockVideoCaptureHost(media_stream_manager_.get()); |
| 307 host_->OnChannelConnected(base::GetCurrentProcId()); | 307 host_->OnChannelConnected(base::GetCurrentProcId()); |
| 308 | 308 |
| 309 OpenSession(); | 309 OpenSession(); |
| 310 } | 310 } |
| 311 | 311 |
| 312 virtual void TearDown() override { | 312 void TearDown() override { |
| 313 // Verifies and removes the expectations on host_ and | 313 // Verifies and removes the expectations on host_ and |
| 314 // returns true iff successful. | 314 // returns true iff successful. |
| 315 Mock::VerifyAndClearExpectations(host_.get()); | 315 Mock::VerifyAndClearExpectations(host_.get()); |
| 316 EXPECT_EQ(0u, host_->entries_.size()); | 316 EXPECT_EQ(0u, host_->entries_.size()); |
| 317 | 317 |
| 318 CloseSession(); | 318 CloseSession(); |
| 319 | 319 |
| 320 // Simulate closing the IPC sender. | 320 // Simulate closing the IPC sender. |
| 321 host_->OnChannelClosing(); | 321 host_->OnChannelClosing(); |
| 322 | 322 |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 560 #ifdef DUMP_VIDEO | 560 #ifdef DUMP_VIDEO |
| 561 TEST_F(VideoCaptureHostTest, CaptureAndDumpVideoVga) { | 561 TEST_F(VideoCaptureHostTest, CaptureAndDumpVideoVga) { |
| 562 CaptureAndDumpVideo(640, 480, 30); | 562 CaptureAndDumpVideo(640, 480, 30); |
| 563 } | 563 } |
| 564 TEST_F(VideoCaptureHostTest, CaptureAndDump720P) { | 564 TEST_F(VideoCaptureHostTest, CaptureAndDump720P) { |
| 565 CaptureAndDumpVideo(1280, 720, 30); | 565 CaptureAndDumpVideo(1280, 720, 30); |
| 566 } | 566 } |
| 567 #endif | 567 #endif |
| 568 | 568 |
| 569 } // namespace content | 569 } // namespace content |
| OLD | NEW |