| 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_manager.h" | 10 #include "content/browser/renderer_host/media/media_stream_manager.h" |
| 11 #include "content/common/media/media_stream_options.h" | 11 #include "content/common/media/media_stream_options.h" |
| 12 #include "media/audio/audio_manager_base.h" | 12 #include "media/audio/audio_manager_base.h" |
| 13 #if defined(OS_ANDROID) | 13 #if defined(OS_ANDROID) |
| 14 #include "media/audio/android/audio_manager_android.h" | 14 #include "media/audio/android/audio_manager_android.h" |
| 15 #elif defined(OS_LINUX) || defined(OS_OPENBSD) | 15 #elif defined(OS_LINUX) || defined(OS_OPENBSD) |
| 16 #include "media/audio/linux/audio_manager_linux.h" | 16 #include "media/audio/linux/audio_manager_linux.h" |
| 17 #elif defined(OS_MACOSX) | 17 #elif defined(OS_MACOSX) |
| 18 #include "media/audio/mac/audio_manager_mac.h" | 18 #include "media/audio/mac/audio_manager_mac.h" |
| 19 #elif defined(OS_WIN) | 19 #elif defined(OS_WIN) |
| 20 #include "media/audio/win/audio_manager_win.h" | 20 #include "media/audio/win/audio_manager_win.h" |
| 21 #endif | 21 #endif |
| 22 #include "testing/gmock/include/gmock/gmock.h" | 22 #include "testing/gmock/include/gmock/gmock.h" |
| 23 #include "testing/gtest/include/gtest/gtest.h" | 23 #include "testing/gtest/include/gtest/gtest.h" |
| 24 | 24 |
| 25 using content::BrowserThread; | |
| 26 using content::BrowserThreadImpl; | |
| 27 using testing::_; | 25 using testing::_; |
| 28 | 26 |
| 29 namespace content { | 27 namespace content { |
| 30 | 28 |
| 31 #if defined(OS_LINUX) || defined(OS_OPENBSD) | 29 #if defined(OS_LINUX) || defined(OS_OPENBSD) |
| 32 typedef media::AudioManagerLinux AudioManagerPlatform; | 30 typedef media::AudioManagerLinux AudioManagerPlatform; |
| 33 #elif defined(OS_MACOSX) | 31 #elif defined(OS_MACOSX) |
| 34 typedef media::AudioManagerMac AudioManagerPlatform; | 32 typedef media::AudioManagerMac AudioManagerPlatform; |
| 35 #elif defined(OS_WIN) | 33 #elif defined(OS_WIN) |
| 36 typedef media::AudioManagerWin AudioManagerPlatform; | 34 typedef media::AudioManagerWin AudioManagerPlatform; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 protected: | 75 protected: |
| 78 virtual void SetUp() { | 76 virtual void SetUp() { |
| 79 message_loop_.reset(new MessageLoop(MessageLoop::TYPE_IO)); | 77 message_loop_.reset(new MessageLoop(MessageLoop::TYPE_IO)); |
| 80 ui_thread_.reset(new BrowserThreadImpl(BrowserThread::UI, | 78 ui_thread_.reset(new BrowserThreadImpl(BrowserThread::UI, |
| 81 message_loop_.get())); | 79 message_loop_.get())); |
| 82 io_thread_.reset(new BrowserThreadImpl(BrowserThread::IO, | 80 io_thread_.reset(new BrowserThreadImpl(BrowserThread::IO, |
| 83 message_loop_.get())); | 81 message_loop_.get())); |
| 84 | 82 |
| 85 // Create our own MediaStreamManager. | 83 // Create our own MediaStreamManager. |
| 86 audio_manager_.reset(new MockAudioManager()); | 84 audio_manager_.reset(new MockAudioManager()); |
| 87 media_stream_manager_.reset( | 85 media_stream_manager_.reset(new MediaStreamManager(audio_manager_.get())); |
| 88 new media_stream::MediaStreamManager(audio_manager_.get())); | |
| 89 | 86 |
| 90 // Use fake devices in order to run on the bots. | 87 // Use fake devices in order to run on the bots. |
| 91 media_stream_manager_->UseFakeDevice(); | 88 media_stream_manager_->UseFakeDevice(); |
| 92 } | 89 } |
| 93 | 90 |
| 94 virtual void TearDown() { | 91 virtual void TearDown() { |
| 95 message_loop_->RunAllPending(); | 92 message_loop_->RunAllPending(); |
| 96 | 93 |
| 97 // Delete the IO message loop to clean up the MediaStreamManager. | 94 // Delete the IO message loop to clean up the MediaStreamManager. |
| 98 message_loop_.reset(); | 95 message_loop_.reset(); |
| 99 } | 96 } |
| 100 | 97 |
| 101 void MakeMediaAccessRequest(std::string* label) { | 98 void MakeMediaAccessRequest(std::string* label) { |
| 102 const int render_process_id = 1; | 99 const int render_process_id = 1; |
| 103 const int render_view_id = 1; | 100 const int render_view_id = 1; |
| 104 media_stream::StreamOptions components(content::MEDIA_DEVICE_AUDIO_CAPTURE, | 101 StreamOptions components(MEDIA_DEVICE_AUDIO_CAPTURE, |
| 105 content::MEDIA_DEVICE_VIDEO_CAPTURE); | 102 MEDIA_DEVICE_VIDEO_CAPTURE); |
| 106 const GURL security_origin; | 103 const GURL security_origin; |
| 107 media_stream::MediaRequestResponseCallback callback = | 104 MediaRequestResponseCallback callback = |
| 108 base::Bind(&MediaStreamManagerTest::ResponseCallback, | 105 base::Bind(&MediaStreamManagerTest::ResponseCallback, |
| 109 base::Unretained(this)); | 106 base::Unretained(this)); |
| 110 media_stream_manager_->MakeMediaAccessRequest(render_process_id, | 107 media_stream_manager_->MakeMediaAccessRequest(render_process_id, |
| 111 render_view_id, | 108 render_view_id, |
| 112 components, | 109 components, |
| 113 security_origin, | 110 security_origin, |
| 114 callback, | 111 callback, |
| 115 label); | 112 label); |
| 116 } | 113 } |
| 117 | 114 |
| 118 scoped_ptr<MessageLoop> message_loop_; | 115 scoped_ptr<MessageLoop> message_loop_; |
| 119 scoped_ptr<BrowserThreadImpl> ui_thread_; | 116 scoped_ptr<BrowserThreadImpl> ui_thread_; |
| 120 scoped_ptr<BrowserThreadImpl> io_thread_; | 117 scoped_ptr<BrowserThreadImpl> io_thread_; |
| 121 scoped_ptr<media::AudioManager> audio_manager_; | 118 scoped_ptr<media::AudioManager> audio_manager_; |
| 122 scoped_ptr<media_stream::MediaStreamManager> media_stream_manager_; | 119 scoped_ptr<MediaStreamManager> media_stream_manager_; |
| 123 | 120 |
| 124 private: | 121 private: |
| 125 DISALLOW_COPY_AND_ASSIGN(MediaStreamManagerTest); | 122 DISALLOW_COPY_AND_ASSIGN(MediaStreamManagerTest); |
| 126 }; | 123 }; |
| 127 | 124 |
| 128 TEST_F(MediaStreamManagerTest, MakeMediaAccessRequest) { | 125 TEST_F(MediaStreamManagerTest, MakeMediaAccessRequest) { |
| 129 std::string label; | 126 std::string label; |
| 130 MakeMediaAccessRequest(&label); | 127 MakeMediaAccessRequest(&label); |
| 131 | 128 |
| 132 // Expecting the callback will be triggered and quit the test. | 129 // Expecting the callback will be triggered and quit the test. |
| (...skipping 10 matching lines...) Expand all Loading... |
| 143 | 140 |
| 144 TEST_F(MediaStreamManagerTest, MakeMultipleRequests) { | 141 TEST_F(MediaStreamManagerTest, MakeMultipleRequests) { |
| 145 // First request. | 142 // First request. |
| 146 std::string label1; | 143 std::string label1; |
| 147 MakeMediaAccessRequest(&label1); | 144 MakeMediaAccessRequest(&label1); |
| 148 | 145 |
| 149 // Second request. | 146 // Second request. |
| 150 std::string label2; | 147 std::string label2; |
| 151 int render_process_id = 2; | 148 int render_process_id = 2; |
| 152 int render_view_id = 2; | 149 int render_view_id = 2; |
| 153 media_stream::StreamOptions components(content::MEDIA_DEVICE_AUDIO_CAPTURE, | 150 StreamOptions components(MEDIA_DEVICE_AUDIO_CAPTURE, |
| 154 content::MEDIA_DEVICE_VIDEO_CAPTURE); | 151 MEDIA_DEVICE_VIDEO_CAPTURE); |
| 155 GURL security_origin; | 152 GURL security_origin; |
| 156 media_stream::MediaRequestResponseCallback callback = | 153 MediaRequestResponseCallback callback = |
| 157 base::Bind(&MediaStreamManagerTest::ResponseCallback, | 154 base::Bind(&MediaStreamManagerTest::ResponseCallback, |
| 158 base::Unretained(this)); | 155 base::Unretained(this)); |
| 159 media_stream_manager_->MakeMediaAccessRequest(render_process_id, | 156 media_stream_manager_->MakeMediaAccessRequest(render_process_id, |
| 160 render_view_id, | 157 render_view_id, |
| 161 components, | 158 components, |
| 162 security_origin, | 159 security_origin, |
| 163 callback, | 160 callback, |
| 164 &label2); | 161 &label2); |
| 165 | 162 |
| 166 // Expecting the callbackS from requests will be triggered and quit the test. | 163 // Expecting the callbackS from requests will be triggered and quit the test. |
| (...skipping 10 matching lines...) Expand all Loading... |
| 177 MakeMediaAccessRequest(&label2); | 174 MakeMediaAccessRequest(&label2); |
| 178 media_stream_manager_->CancelRequest(label1); | 175 media_stream_manager_->CancelRequest(label1); |
| 179 | 176 |
| 180 // Expecting the callback from the second request will be triggered and | 177 // Expecting the callback from the second request will be triggered and |
| 181 // quit the test. | 178 // quit the test. |
| 182 EXPECT_CALL(*this, Response(label2)); | 179 EXPECT_CALL(*this, Response(label2)); |
| 183 WaitForResult(); | 180 WaitForResult(); |
| 184 } | 181 } |
| 185 | 182 |
| 186 } // namespace content | 183 } // namespace content |
| OLD | NEW |