OLD | NEW |
1 // Copyright (c) 2010 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 "base/basictypes.h" | 5 #include "base/basictypes.h" |
6 #include "base/threading/platform_thread.h" | 6 #include "base/threading/platform_thread.h" |
7 #include "media/audio/audio_io.h" | 7 #include "media/audio/audio_io.h" |
8 #include "media/audio/audio_manager.h" | 8 #include "media/audio/audio_manager.h" |
9 #include "testing/gmock/include/gmock/gmock.h" | 9 #include "testing/gmock/include/gmock/gmock.h" |
10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
11 | 11 |
12 using ::testing::_; | 12 using ::testing::_; |
13 using ::testing::AtLeast; | 13 using ::testing::AtLeast; |
14 using ::testing::Exactly; | 14 using ::testing::Exactly; |
15 using ::testing::NotNull; | 15 using ::testing::NotNull; |
16 | 16 |
17 namespace { | |
18 | |
19 class MockAudioInputCallback : public AudioInputStream::AudioInputCallback { | 17 class MockAudioInputCallback : public AudioInputStream::AudioInputCallback { |
20 public: | 18 public: |
21 MockAudioInputCallback() {} | 19 MockAudioInputCallback() {} |
22 | 20 |
23 MOCK_METHOD1(OnClose, void(AudioInputStream* stream)); | 21 MOCK_METHOD1(OnClose, void(AudioInputStream* stream)); |
24 MOCK_METHOD2(OnError, void(AudioInputStream* stream, int error_code)); | 22 MOCK_METHOD2(OnError, void(AudioInputStream* stream, int error_code)); |
25 MOCK_METHOD3(OnData, void(AudioInputStream* stream, const uint8* src, | 23 MOCK_METHOD3(OnData, void(AudioInputStream* stream, const uint8* src, |
26 uint32 size)); | 24 uint32 size)); |
27 private: | 25 private: |
28 DISALLOW_COPY_AND_ASSIGN(MockAudioInputCallback); | 26 DISALLOW_COPY_AND_ASSIGN(MockAudioInputCallback); |
29 }; | 27 }; |
30 | 28 |
31 } | |
32 | |
33 // ============================================================================ | 29 // ============================================================================ |
34 // Validate that the AudioManager::AUDIO_MOCK callbacks work. | 30 // Validate that the AudioManager::AUDIO_MOCK callbacks work. |
35 // Crashes, http://crbug.com/49497. | 31 // Crashes, http://crbug.com/49497. |
36 TEST(FakeAudioInputTest, DISABLED_BasicCallbacks) { | 32 TEST(FakeAudioInputTest, DISABLED_BasicCallbacks) { |
37 MockAudioInputCallback callback; | 33 MockAudioInputCallback callback; |
38 EXPECT_CALL(callback, OnData(NotNull(), _, _)).Times(AtLeast(5)); | 34 EXPECT_CALL(callback, OnData(NotNull(), _, _)).Times(AtLeast(5)); |
39 EXPECT_CALL(callback, OnError(NotNull(), _)).Times(Exactly(0)); | 35 EXPECT_CALL(callback, OnError(NotNull(), _)).Times(Exactly(0)); |
40 | 36 |
41 AudioManager* audio_man = AudioManager::GetAudioManager(); | 37 AudioManager* audio_man = AudioManager::GetAudioManager(); |
42 ASSERT_TRUE(NULL != audio_man); | 38 ASSERT_TRUE(NULL != audio_man); |
43 // Ask for one recorded packet every 50ms. | 39 // Ask for one recorded packet every 50ms. |
44 AudioInputStream* stream = audio_man->MakeAudioInputStream( | 40 AudioInputStream* stream = audio_man->MakeAudioInputStream( |
45 AudioParameters(AudioParameters::AUDIO_MOCK, 2, 8000, 8, 400)); | 41 AudioParameters(AudioParameters::AUDIO_MOCK, 2, 8000, 8, 400)); |
46 ASSERT_TRUE(NULL != stream); | 42 ASSERT_TRUE(NULL != stream); |
47 EXPECT_TRUE(stream->Open()); | 43 EXPECT_TRUE(stream->Open()); |
48 stream->Start(&callback); | 44 stream->Start(&callback); |
49 | 45 |
50 // Give sufficient time to receive 5 / 6 packets. | 46 // Give sufficient time to receive 5 / 6 packets. |
51 base::PlatformThread::Sleep(340); | 47 base::PlatformThread::Sleep(340); |
52 stream->Stop(); | 48 stream->Stop(); |
53 stream->Close(); | 49 stream->Close(); |
54 } | 50 } |
OLD | NEW |