| 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 "media/audio/linux/audio_manager_linux.h" | 7 #include "media/audio/linux/audio_manager_linux.h" |
| 8 #include "media/audio/linux/cras_output.h" | 8 #include "media/audio/linux/cras_output.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::DoAll; | 13 using testing::DoAll; |
| 14 using testing::Return; | 14 using testing::Return; |
| 15 using testing::SetArgumentPointee; | 15 using testing::SetArgumentPointee; |
| 16 using testing::StrictMock; | 16 using testing::StrictMock; |
| 17 | 17 |
| 18 namespace media { | 18 namespace media { |
| 19 | 19 |
| 20 class MockAudioSourceCallback : public AudioOutputStream::AudioSourceCallback { | 20 class MockAudioSourceCallback : public AudioOutputStream::AudioSourceCallback { |
| 21 public: | 21 public: |
| 22 MOCK_METHOD3(OnMoreData, uint32(uint8* dest, uint32 max_size, | 22 MOCK_METHOD2(OnMoreData, int(AudioBus* audio_bus, |
| 23 AudioBuffersState buffers_state)); | 23 AudioBuffersState buffers_state)); |
| 24 MOCK_METHOD2(OnError, void(AudioOutputStream* stream, int code)); | 24 MOCK_METHOD2(OnError, void(AudioOutputStream* stream, int code)); |
| 25 }; | 25 }; |
| 26 | 26 |
| 27 class MockAudioManagerLinux : public AudioManagerLinux { | 27 class MockAudioManagerLinux : public AudioManagerLinux { |
| 28 public: | 28 public: |
| 29 MOCK_METHOD0(Init, void()); | 29 MOCK_METHOD0(Init, void()); |
| 30 MOCK_METHOD0(HasAudioOutputDevices, bool()); | 30 MOCK_METHOD0(HasAudioOutputDevices, bool()); |
| 31 MOCK_METHOD0(HasAudioInputDevices, bool()); | 31 MOCK_METHOD0(HasAudioInputDevices, bool()); |
| 32 MOCK_METHOD1(MakeLinearOutputStream, AudioOutputStream*( | 32 MOCK_METHOD1(MakeLinearOutputStream, AudioOutputStream*( |
| 33 const AudioParameters& params)); | 33 const AudioParameters& params)); |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 test_stream->Stop(); | 186 test_stream->Stop(); |
| 187 EXPECT_EQ(CrasOutputStream::kIsStopped, test_stream->state()); | 187 EXPECT_EQ(CrasOutputStream::kIsStopped, test_stream->state()); |
| 188 | 188 |
| 189 // Close the stream. | 189 // Close the stream. |
| 190 test_stream->Close(); | 190 test_stream->Close(); |
| 191 } | 191 } |
| 192 | 192 |
| 193 TEST_F(CrasOutputStreamTest, RenderFrames) { | 193 TEST_F(CrasOutputStreamTest, RenderFrames) { |
| 194 CrasOutputStream* test_stream = CreateStream(CHANNEL_LAYOUT_MONO); | 194 CrasOutputStream* test_stream = CreateStream(CHANNEL_LAYOUT_MONO); |
| 195 MockAudioSourceCallback mock_callback; | 195 MockAudioSourceCallback mock_callback; |
| 196 const uint32 amount_rendered_return = 2048; | |
| 197 | 196 |
| 198 // Open the stream. | 197 // Open the stream. |
| 199 ASSERT_TRUE(test_stream->Open()); | 198 ASSERT_TRUE(test_stream->Open()); |
| 200 EXPECT_EQ(CrasOutputStream::kIsOpened, test_stream->state()); | 199 EXPECT_EQ(CrasOutputStream::kIsOpened, test_stream->state()); |
| 201 | 200 |
| 202 // Render Callback. | 201 // Render Callback. |
| 203 EXPECT_CALL(mock_callback, OnMoreData(_, | 202 EXPECT_CALL(mock_callback, OnMoreData(_, _)) |
| 204 kTestFramesPerPacket * kTestBytesPerFrame, _)) | 203 .WillRepeatedly(Return(kTestFramesPerPacket)); |
| 205 .WillRepeatedly(Return(amount_rendered_return)); | |
| 206 | 204 |
| 207 // Start. | 205 // Start. |
| 208 test_stream->Start(&mock_callback); | 206 test_stream->Start(&mock_callback); |
| 209 EXPECT_EQ(CrasOutputStream::kIsPlaying, test_stream->state()); | 207 EXPECT_EQ(CrasOutputStream::kIsPlaying, test_stream->state()); |
| 210 | 208 |
| 211 // Stop. | 209 // Stop. |
| 212 test_stream->Stop(); | 210 test_stream->Stop(); |
| 213 EXPECT_EQ(CrasOutputStream::kIsStopped, test_stream->state()); | 211 EXPECT_EQ(CrasOutputStream::kIsStopped, test_stream->state()); |
| 214 | 212 |
| 215 // Close the stream. | 213 // Close the stream. |
| 216 test_stream->Close(); | 214 test_stream->Close(); |
| 217 } | 215 } |
| 218 | 216 |
| 219 } // namespace media | 217 } // namespace media |
| OLD | NEW |