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

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

Issue 2582703003: Audio output debug recording. (Closed)
Patch Set: Reworked callbacks and interfaces. Created 3 years, 11 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
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 <stdint.h> 5 #include <stdint.h>
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 9
10 #include "base/bind.h"
10 #include "base/memory/ptr_util.h" 11 #include "base/memory/ptr_util.h"
11 #include "base/message_loop/message_loop.h" 12 #include "base/message_loop/message_loop.h"
12 #include "base/run_loop.h" 13 #include "base/run_loop.h"
13 #include "base/single_thread_task_runner.h" 14 #include "base/single_thread_task_runner.h"
14 #include "base/threading/thread_task_runner_handle.h" 15 #include "base/threading/thread_task_runner_handle.h"
15 #include "build/build_config.h" 16 #include "build/build_config.h"
16 #include "media/audio/audio_manager.h" 17 #include "media/audio/audio_manager.h"
17 #include "media/audio/audio_manager_base.h" 18 #include "media/audio/audio_manager_base.h"
18 #include "media/audio/audio_output_dispatcher_impl.h" 19 #include "media/audio/audio_output_dispatcher_impl.h"
19 #include "media/audio/audio_output_proxy.h" 20 #include "media/audio/audio_output_proxy.h"
20 #include "media/audio/audio_output_resampler.h" 21 #include "media/audio/audio_output_resampler.h"
22 #include "media/audio/fake_audio_file_writer.h"
21 #include "media/audio/fake_audio_log_factory.h" 23 #include "media/audio/fake_audio_log_factory.h"
22 #include "media/audio/fake_audio_output_stream.h" 24 #include "media/audio/fake_audio_output_stream.h"
23 #include "testing/gmock/include/gmock/gmock.h" 25 #include "testing/gmock/include/gmock/gmock.h"
24 #include "testing/gtest/include/gtest/gtest.h" 26 #include "testing/gtest/include/gtest/gtest.h"
25 27
26 using ::testing::_; 28 using ::testing::_;
27 using ::testing::AllOf; 29 using ::testing::AllOf;
28 using ::testing::DoAll; 30 using ::testing::DoAll;
29 using ::testing::Field; 31 using ::testing::Field;
30 using ::testing::Mock; 32 using ::testing::Mock;
31 using ::testing::NotNull; 33 using ::testing::NotNull;
32 using ::testing::Return; 34 using ::testing::Return;
33 using ::testing::SetArrayArgument; 35 using ::testing::SetArrayArgument;
34 using media::AudioBus; 36 using media::AudioBus;
35 using media::AudioInputStream; 37 using media::AudioInputStream;
36 using media::AudioManager; 38 using media::AudioManager;
37 using media::AudioManagerBase; 39 using media::AudioManagerBase;
38 using media::AudioOutputDispatcher; 40 using media::AudioOutputDispatcher;
39 using media::AudioOutputProxy; 41 using media::AudioOutputProxy;
40 using media::AudioOutputStream; 42 using media::AudioOutputStream;
41 using media::AudioParameters; 43 using media::AudioParameters;
44 using media::FakeAudioFileWriter;
42 using media::FakeAudioOutputStream; 45 using media::FakeAudioOutputStream;
43 46
44 namespace { 47 namespace {
45 48
46 static const int kTestCloseDelayMs = 10; 49 static const int kTestCloseDelayMs = 10;
47 50
48 // Delay between callbacks to AudioSourceCallback::OnMoreData. 51 // Delay between callbacks to AudioSourceCallback::OnMoreData.
49 static const int kOnMoreDataCallbackDelayMs = 10; 52 static const int kOnMoreDataCallbackDelayMs = 10;
50 53
51 // Let start run long enough for many OnMoreData callbacks to occur. 54 // Let start run long enough for many OnMoreData callbacks to occur.
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 bool stop_called_; 90 bool stop_called_;
88 AudioParameters params_; 91 AudioParameters params_;
89 std::unique_ptr<AudioOutputStream> fake_output_stream_; 92 std::unique_ptr<AudioOutputStream> fake_output_stream_;
90 }; 93 };
91 94
92 class MockAudioManager : public AudioManagerBase { 95 class MockAudioManager : public AudioManagerBase {
93 public: 96 public:
94 MockAudioManager() 97 MockAudioManager()
95 : AudioManagerBase(base::ThreadTaskRunnerHandle::Get(), 98 : AudioManagerBase(base::ThreadTaskRunnerHandle::Get(),
96 base::ThreadTaskRunnerHandle::Get(), 99 base::ThreadTaskRunnerHandle::Get(),
97 &fake_audio_log_factory_) {} 100 &fake_audio_log_factory_,
101 base::Bind(&FakeAudioFileWriter::Create)) {}
98 ~MockAudioManager() override { Shutdown(); } 102 ~MockAudioManager() override { Shutdown(); }
99 103
100 MOCK_METHOD0(HasAudioOutputDevices, bool()); 104 MOCK_METHOD0(HasAudioOutputDevices, bool());
101 MOCK_METHOD0(HasAudioInputDevices, bool()); 105 MOCK_METHOD0(HasAudioInputDevices, bool());
102 MOCK_METHOD0(GetAudioInputDeviceModel, base::string16()); 106 MOCK_METHOD0(GetAudioInputDeviceModel, base::string16());
103 MOCK_METHOD3(MakeAudioOutputStream, 107 MOCK_METHOD3(MakeAudioOutputStream,
104 AudioOutputStream*(const AudioParameters& params, 108 AudioOutputStream*(const AudioParameters& params,
105 const std::string& device_id, 109 const std::string& device_id,
106 const LogCallback& log_callback)); 110 const LogCallback& log_callback));
107 MOCK_METHOD2(MakeAudioOutputStreamProxy, AudioOutputStream*( 111 MOCK_METHOD2(MakeAudioOutputStreamProxy, AudioOutputStream*(
(...skipping 725 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 .WillOnce(Return(&real_stream)); 837 .WillOnce(Return(&real_stream));
834 838
835 // Stream1 should be able to successfully open and start. 839 // Stream1 should be able to successfully open and start.
836 EXPECT_CALL(real_stream, Open()).WillOnce(Return(true)); 840 EXPECT_CALL(real_stream, Open()).WillOnce(Return(true));
837 proxy = resampler_->CreateStreamProxy(); 841 proxy = resampler_->CreateStreamProxy();
838 EXPECT_TRUE(proxy->Open()); 842 EXPECT_TRUE(proxy->Open());
839 CloseAndWaitForCloseTimer(proxy, &real_stream); 843 CloseAndWaitForCloseTimer(proxy, &real_stream);
840 } 844 }
841 845
842 } // namespace media 846 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698