Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Side by Side Diff: media/audio/audio_input_controller_unittest.cc

Issue 13288002: Revert 190475 "Merge 189983 "Add speaker on/off control on Andro..." (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1410/src/
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/test/webrtc_audio_device_test.cc ('k') | media/audio/audio_input_device_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "base/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/bind.h" 6 #include "base/bind.h"
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/synchronization/waitable_event.h" 8 #include "base/synchronization/waitable_event.h"
9 #include "base/test/test_timeouts.h" 9 #include "base/test/test_timeouts.h"
10 #include "media/audio/audio_input_controller.h" 10 #include "media/audio/audio_input_controller.h"
11 #include "testing/gmock/include/gmock/gmock.h" 11 #include "testing/gmock/include/gmock/gmock.h"
12 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
13 13
14 #if defined(OS_ANDROID)
15 #include "base/android/jni_android.h"
16 #include "media/audio/audio_manager_base.h"
17 #endif
18
19 using ::testing::_; 14 using ::testing::_;
20 using ::testing::AtLeast; 15 using ::testing::AtLeast;
21 using ::testing::Exactly; 16 using ::testing::Exactly;
22 using ::testing::InvokeWithoutArgs; 17 using ::testing::InvokeWithoutArgs;
23 using ::testing::NotNull; 18 using ::testing::NotNull;
24 19
25 namespace media { 20 namespace media {
26 21
27 static const int kSampleRate = AudioParameters::kAudioCDSampleRate; 22 static const int kSampleRate = AudioParameters::kAudioCDSampleRate;
28 static const int kBitsPerSample = 16; 23 static const int kBitsPerSample = 16;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 DISALLOW_COPY_AND_ASSIGN(MockAudioInputControllerEventHandler); 58 DISALLOW_COPY_AND_ASSIGN(MockAudioInputControllerEventHandler);
64 }; 59 };
65 60
66 // Test fixture. 61 // Test fixture.
67 class AudioInputControllerTest : public testing::Test { 62 class AudioInputControllerTest : public testing::Test {
68 public: 63 public:
69 AudioInputControllerTest() {} 64 AudioInputControllerTest() {}
70 virtual ~AudioInputControllerTest() {} 65 virtual ~AudioInputControllerTest() {}
71 66
72 protected: 67 protected:
73 virtual void SetUp() {
74 #if defined(OS_ANDROID)
75 media::AudioManagerBase::RegisterAudioManager(
76 base::android::AttachCurrentThread());
77 #endif
78 }
79
80 MessageLoop message_loop_; 68 MessageLoop message_loop_;
81 69
82 private: 70 private:
83 DISALLOW_COPY_AND_ASSIGN(AudioInputControllerTest); 71 DISALLOW_COPY_AND_ASSIGN(AudioInputControllerTest);
84 }; 72 };
85 73
86 // Test AudioInputController for create and close without recording audio. 74 // Test AudioInputController for create and close without recording audio.
87 TEST_F(AudioInputControllerTest, CreateAndClose) { 75 // TODO(leozwang): Because java calls were introduced in audio_manager_base,
76 // unit test has to register jni first, else it will crash.
77 #if defined(OS_ANDROID)
78 #define MAYBE_CreateAndClose DISABLED_CreateAndClose
79 #else
80 #define MAYBE_CreateAndClose CreateAndClose
81 #endif
82 TEST_F(AudioInputControllerTest, MAYBE_CreateAndClose) {
88 MockAudioInputControllerEventHandler event_handler; 83 MockAudioInputControllerEventHandler event_handler;
89 84
90 // OnCreated() will be posted once. 85 // OnCreated() will be posted once.
91 EXPECT_CALL(event_handler, OnCreated(NotNull())) 86 EXPECT_CALL(event_handler, OnCreated(NotNull()))
92 .WillOnce(QuitMessageLoop(&message_loop_)); 87 .WillOnce(QuitMessageLoop(&message_loop_));
93 88
94 scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); 89 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
95 AudioParameters params(AudioParameters::AUDIO_FAKE, kChannelLayout, 90 AudioParameters params(AudioParameters::AUDIO_FAKE, kChannelLayout,
96 kSampleRate, kBitsPerSample, kSamplesPerPacket); 91 kSampleRate, kBitsPerSample, kSamplesPerPacket);
97 scoped_refptr<AudioInputController> controller = 92 scoped_refptr<AudioInputController> controller =
98 AudioInputController::Create(audio_manager.get(), &event_handler, params); 93 AudioInputController::Create(audio_manager.get(), &event_handler, params);
99 ASSERT_TRUE(controller.get()); 94 ASSERT_TRUE(controller.get());
100 95
101 // Wait for OnCreated() to fire. 96 // Wait for OnCreated() to fire.
102 message_loop_.Run(); 97 message_loop_.Run();
103 98
104 // Close the AudioInputController synchronously. 99 // Close the AudioInputController synchronously.
105 CloseAudioController(controller); 100 CloseAudioController(controller);
106 } 101 }
107 102
108 // Test a normal call sequence of create, record and close. 103 // Test a normal call sequence of create, record and close.
109 TEST_F(AudioInputControllerTest, RecordAndClose) { 104 // TODO(leozwang): Because java calls were introduced in audio_manager_base,
105 // unit test has to register jni first, else it will crash.
106 #if defined(OS_ANDROID)
107 #define MAYBE_RecordAndClose DISABLED_RecordAndClose
108 #else
109 #define MAYBE_RecordAndClose RecordAndClose
110 #endif
111 TEST_F(AudioInputControllerTest, MAYBE_RecordAndClose) {
110 MockAudioInputControllerEventHandler event_handler; 112 MockAudioInputControllerEventHandler event_handler;
111 int count = 0; 113 int count = 0;
112 114
113 // OnCreated() will be called once. 115 // OnCreated() will be called once.
114 EXPECT_CALL(event_handler, OnCreated(NotNull())) 116 EXPECT_CALL(event_handler, OnCreated(NotNull()))
115 .Times(Exactly(1)); 117 .Times(Exactly(1));
116 118
117 // OnRecording() will be called only once. 119 // OnRecording() will be called only once.
118 EXPECT_CALL(event_handler, OnRecording(NotNull())) 120 EXPECT_CALL(event_handler, OnRecording(NotNull()))
119 .Times(Exactly(1)); 121 .Times(Exactly(1));
(...skipping 19 matching lines...) Expand all
139 // Record and wait until ten OnData() callbacks are received. 141 // Record and wait until ten OnData() callbacks are received.
140 message_loop_.Run(); 142 message_loop_.Run();
141 143
142 // Close the AudioInputController synchronously. 144 // Close the AudioInputController synchronously.
143 CloseAudioController(controller); 145 CloseAudioController(controller);
144 } 146 }
145 147
146 // Test that the AudioInputController reports an error when the input stream 148 // Test that the AudioInputController reports an error when the input stream
147 // stops without an OnClose() callback. This can happen when the underlying 149 // stops without an OnClose() callback. This can happen when the underlying
148 // audio layer stops feeding data as a result of a removed microphone device. 150 // audio layer stops feeding data as a result of a removed microphone device.
149 TEST_F(AudioInputControllerTest, RecordAndError) { 151 // TODO(leozwang): Because java calls were introduced in audio_manager_base,
152 // unit test has to register jni first to make unit test run.
153 #if defined(OS_ANDROID)
154 #define MAYBE_RecordAndError DISABLED_RecordAndError
155 #else
156 #define MAYBE_RecordAndError RecordAndError
157 #endif
158 TEST_F(AudioInputControllerTest, MAYBE_RecordAndError) {
150 MockAudioInputControllerEventHandler event_handler; 159 MockAudioInputControllerEventHandler event_handler;
151 int count = 0; 160 int count = 0;
152 161
153 // OnCreated() will be called once. 162 // OnCreated() will be called once.
154 EXPECT_CALL(event_handler, OnCreated(NotNull())) 163 EXPECT_CALL(event_handler, OnCreated(NotNull()))
155 .Times(Exactly(1)); 164 .Times(Exactly(1));
156 165
157 // OnRecording() will be called only once. 166 // OnRecording() will be called only once.
158 EXPECT_CALL(event_handler, OnRecording(NotNull())) 167 EXPECT_CALL(event_handler, OnRecording(NotNull()))
159 .Times(Exactly(1)); 168 .Times(Exactly(1));
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 214
206 scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); 215 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
207 AudioParameters params(AudioParameters::AUDIO_FAKE, kChannelLayout, 216 AudioParameters params(AudioParameters::AUDIO_FAKE, kChannelLayout,
208 kSampleRate, kBitsPerSample, kSamplesPerPacket * 1000); 217 kSampleRate, kBitsPerSample, kSamplesPerPacket * 1000);
209 scoped_refptr<AudioInputController> controller = 218 scoped_refptr<AudioInputController> controller =
210 AudioInputController::Create(audio_manager.get(), &event_handler, params); 219 AudioInputController::Create(audio_manager.get(), &event_handler, params);
211 ASSERT_FALSE(controller); 220 ASSERT_FALSE(controller);
212 } 221 }
213 222
214 // Test calling AudioInputController::Close multiple times. 223 // Test calling AudioInputController::Close multiple times.
215 TEST_F(AudioInputControllerTest, CloseTwice) { 224 #if defined(OS_ANDROID)
225 #define MAYBE_CloseTwice DISABLED_CloseTwice
226 #else
227 #define MAYBE_CloseTwice CloseTwice
228 #endif
229 TEST_F(AudioInputControllerTest, MAYBE_CloseTwice) {
216 MockAudioInputControllerEventHandler event_handler; 230 MockAudioInputControllerEventHandler event_handler;
217 231
218 // OnRecording() will be called only once. 232 // OnRecording() will be called only once.
219 EXPECT_CALL(event_handler, OnCreated(NotNull())); 233 EXPECT_CALL(event_handler, OnCreated(NotNull()));
220 234
221 // OnRecording() will be called only once. 235 // OnRecording() will be called only once.
222 EXPECT_CALL(event_handler, OnRecording(NotNull())) 236 EXPECT_CALL(event_handler, OnRecording(NotNull()))
223 .Times(Exactly(1)); 237 .Times(Exactly(1));
224 238
225 scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); 239 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
226 AudioParameters params(AudioParameters::AUDIO_FAKE, kChannelLayout, 240 AudioParameters params(AudioParameters::AUDIO_FAKE, kChannelLayout,
227 kSampleRate, kBitsPerSample, kSamplesPerPacket); 241 kSampleRate, kBitsPerSample, kSamplesPerPacket);
228 scoped_refptr<AudioInputController> controller = 242 scoped_refptr<AudioInputController> controller =
229 AudioInputController::Create(audio_manager.get(), &event_handler, params); 243 AudioInputController::Create(audio_manager.get(), &event_handler, params);
230 ASSERT_TRUE(controller.get()); 244 ASSERT_TRUE(controller.get());
231 245
232 controller->Record(); 246 controller->Record();
233 247
234 controller->Close(MessageLoop::QuitClosure()); 248 controller->Close(MessageLoop::QuitClosure());
235 MessageLoop::current()->Run(); 249 MessageLoop::current()->Run();
236 250
237 controller->Close(MessageLoop::QuitClosure()); 251 controller->Close(MessageLoop::QuitClosure());
238 MessageLoop::current()->Run(); 252 MessageLoop::current()->Run();
239 } 253 }
240 254
241 } // namespace media 255 } // namespace media
OLDNEW
« no previous file with comments | « content/test/webrtc_audio_device_test.cc ('k') | media/audio/audio_input_device_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698