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 |