| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
| 10 #include "content/browser/browser_thread_impl.h" | 10 #include "content/browser/browser_thread_impl.h" |
| 11 #include "content/browser/renderer_host/media/audio_input_device_manager.h" | 11 #include "content/browser/renderer_host/media/audio_input_device_manager.h" |
| 12 #include "content/browser/renderer_host/media/audio_input_device_manager_event_h
andler.h" | 12 #include "content/browser/renderer_host/media/audio_input_device_manager_event_h
andler.h" |
| 13 #include "media/audio/audio_manager.h" | 13 #include "media/audio/audio_manager_base.h" |
| 14 #include "testing/gmock/include/gmock/gmock.h" | 14 #include "testing/gmock/include/gmock/gmock.h" |
| 15 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
| 16 | 16 |
| 17 using ::testing::_; | 17 using ::testing::_; |
| 18 using ::testing::AnyNumber; | 18 using ::testing::AnyNumber; |
| 19 using ::testing::InSequence; | 19 using ::testing::InSequence; |
| 20 using ::testing::Return; | 20 using ::testing::Return; |
| 21 using content::BrowserThread; | 21 using content::BrowserThread; |
| 22 | 22 |
| 23 using content::BrowserThreadImpl; | 23 using content::BrowserThreadImpl; |
| (...skipping 25 matching lines...) Expand all Loading... |
| 49 private: | 49 private: |
| 50 DISALLOW_COPY_AND_ASSIGN(MockAudioInputDeviceManagerListener); | 50 DISALLOW_COPY_AND_ASSIGN(MockAudioInputDeviceManagerListener); |
| 51 }; | 51 }; |
| 52 | 52 |
| 53 class MockAudioInputDeviceManagerEventHandler | 53 class MockAudioInputDeviceManagerEventHandler |
| 54 : public AudioInputDeviceManagerEventHandler { | 54 : public AudioInputDeviceManagerEventHandler { |
| 55 public: | 55 public: |
| 56 MockAudioInputDeviceManagerEventHandler() {} | 56 MockAudioInputDeviceManagerEventHandler() {} |
| 57 virtual ~MockAudioInputDeviceManagerEventHandler() {} | 57 virtual ~MockAudioInputDeviceManagerEventHandler() {} |
| 58 | 58 |
| 59 MOCK_METHOD2(OnDeviceStarted, void(int, int)); | 59 MOCK_METHOD2(OnDeviceStarted, void(int, const std::string&)); |
| 60 MOCK_METHOD1(OnDeviceStopped, void(int)); | 60 MOCK_METHOD1(OnDeviceStopped, void(int)); |
| 61 | 61 |
| 62 private: | 62 private: |
| 63 DISALLOW_COPY_AND_ASSIGN(MockAudioInputDeviceManagerEventHandler); | 63 DISALLOW_COPY_AND_ASSIGN(MockAudioInputDeviceManagerEventHandler); |
| 64 }; | 64 }; |
| 65 | 65 |
| 66 // Returns true if machine has audio input device, else returns false. | 66 // Returns true if machine has audio input device, else returns false. |
| 67 static bool CanRunAudioInputDeviceTests() { | 67 static bool CanRunAudioInputDeviceTests() { |
| 68 AudioManager* audio_manager = AudioManager::GetAudioManager(); | 68 AudioManager* audio_manager = AudioManager::GetAudioManager(); |
| 69 if (!audio_manager) | 69 if (!audio_manager) |
| (...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 292 session_id[index] = manager_->Open(*iter); | 292 session_id[index] = manager_->Open(*iter); |
| 293 manager_->Start(session_id[index], audio_input_event_handler.get()); | 293 manager_->Start(session_id[index], audio_input_event_handler.get()); |
| 294 manager_->Stop(session_id[index]); | 294 manager_->Stop(session_id[index]); |
| 295 manager_->Close(session_id[index]); | 295 manager_->Close(session_id[index]); |
| 296 | 296 |
| 297 // Expected mock calls with expected return values. | 297 // Expected mock calls with expected return values. |
| 298 EXPECT_CALL(*audio_input_listener_, Opened(kAudioCapture, | 298 EXPECT_CALL(*audio_input_listener_, Opened(kAudioCapture, |
| 299 session_id[index])) | 299 session_id[index])) |
| 300 .Times(1); | 300 .Times(1); |
| 301 EXPECT_CALL(*audio_input_event_handler, | 301 EXPECT_CALL(*audio_input_event_handler, |
| 302 OnDeviceStarted(session_id[index], index)) | 302 OnDeviceStarted(session_id[index], iter->device_id)) |
| 303 .Times(1); | 303 .Times(1); |
| 304 EXPECT_CALL(*audio_input_listener_, Closed(kAudioCapture, | 304 EXPECT_CALL(*audio_input_listener_, Closed(kAudioCapture, |
| 305 session_id[index])) | 305 session_id[index])) |
| 306 .Times(1); | 306 .Times(1); |
| 307 SyncWithAudioInputDeviceManagerThread(); | 307 SyncWithAudioInputDeviceManagerThread(); |
| 308 } | 308 } |
| 309 } | 309 } |
| 310 | 310 |
| 311 // Test the behavior of calling Close without calling Stop. | 311 // Test the behavior of calling Close without calling Stop. |
| 312 TEST_F(AudioInputDeviceManagerTest, CloseWithoutStopDevice) { | 312 TEST_F(AudioInputDeviceManagerTest, CloseWithoutStopDevice) { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 330 // Open/start/close the device. | 330 // Open/start/close the device. |
| 331 session_id[index] = manager_->Open(*iter); | 331 session_id[index] = manager_->Open(*iter); |
| 332 manager_->Start(session_id[index], audio_input_event_handler.get()); | 332 manager_->Start(session_id[index], audio_input_event_handler.get()); |
| 333 manager_->Close(session_id[index]); | 333 manager_->Close(session_id[index]); |
| 334 | 334 |
| 335 // Expected mock calls with expected return values. | 335 // Expected mock calls with expected return values. |
| 336 EXPECT_CALL(*audio_input_listener_, Opened(kAudioCapture, | 336 EXPECT_CALL(*audio_input_listener_, Opened(kAudioCapture, |
| 337 session_id[index])) | 337 session_id[index])) |
| 338 .Times(1); | 338 .Times(1); |
| 339 EXPECT_CALL(*audio_input_event_handler, | 339 EXPECT_CALL(*audio_input_event_handler, |
| 340 OnDeviceStarted(session_id[index], index)) | 340 OnDeviceStarted(session_id[index], iter->device_id)) |
| 341 .Times(1); | 341 .Times(1); |
| 342 // Event Handler should get a stop device notification as no stop is called | 342 // Event Handler should get a stop device notification as no stop is called |
| 343 // before closing the device. | 343 // before closing the device. |
| 344 EXPECT_CALL(*audio_input_event_handler, | 344 EXPECT_CALL(*audio_input_event_handler, |
| 345 OnDeviceStopped(session_id[index])) | 345 OnDeviceStopped(session_id[index])) |
| 346 .Times(1); | 346 .Times(1); |
| 347 EXPECT_CALL(*audio_input_listener_, Closed(kAudioCapture, | 347 EXPECT_CALL(*audio_input_listener_, Closed(kAudioCapture, |
| 348 session_id[index])) | 348 session_id[index])) |
| 349 .Times(1); | 349 .Times(1); |
| 350 SyncWithAudioInputDeviceManagerThread(); | 350 SyncWithAudioInputDeviceManagerThread(); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 379 manager_->Close(first_session_id); | 379 manager_->Close(first_session_id); |
| 380 manager_->Close(second_session_id); | 380 manager_->Close(second_session_id); |
| 381 | 381 |
| 382 // Expected mock calls with expected return values. | 382 // Expected mock calls with expected return values. |
| 383 EXPECT_NE(first_session_id, second_session_id); | 383 EXPECT_NE(first_session_id, second_session_id); |
| 384 EXPECT_CALL(*audio_input_listener_, Opened(kAudioCapture, first_session_id)) | 384 EXPECT_CALL(*audio_input_listener_, Opened(kAudioCapture, first_session_id)) |
| 385 .Times(1); | 385 .Times(1); |
| 386 EXPECT_CALL(*audio_input_listener_, Opened(kAudioCapture, second_session_id)) | 386 EXPECT_CALL(*audio_input_listener_, Opened(kAudioCapture, second_session_id)) |
| 387 .Times(1); | 387 .Times(1); |
| 388 EXPECT_CALL(*first_audio_input_event_handler, | 388 EXPECT_CALL(*first_audio_input_event_handler, |
| 389 OnDeviceStarted(first_session_id, 0)) | 389 OnDeviceStarted(first_session_id, |
| 390 AudioManagerBase::kDefaultDeviceId)) |
| 390 .Times(1); | 391 .Times(1); |
| 391 EXPECT_CALL(*second_audio_input_event_handler, | 392 EXPECT_CALL(*second_audio_input_event_handler, |
| 392 OnDeviceStarted(second_session_id, 0)) | 393 OnDeviceStarted(second_session_id, |
| 394 AudioManagerBase::kDefaultDeviceId)) |
| 393 .Times(1); | 395 .Times(1); |
| 394 EXPECT_CALL(*audio_input_listener_, Closed(kAudioCapture, first_session_id)) | 396 EXPECT_CALL(*audio_input_listener_, Closed(kAudioCapture, first_session_id)) |
| 395 .Times(1); | 397 .Times(1); |
| 396 EXPECT_CALL(*audio_input_listener_, Closed(kAudioCapture, second_session_id)) | 398 EXPECT_CALL(*audio_input_listener_, Closed(kAudioCapture, second_session_id)) |
| 397 .Times(1); | 399 .Times(1); |
| 398 SyncWithAudioInputDeviceManagerThread(); | 400 SyncWithAudioInputDeviceManagerThread(); |
| 399 } | 401 } |
| 400 | 402 |
| 401 } // namespace media_stream | 403 } // namespace media_stream |
| OLD | NEW |