OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "content/browser/media/capture/web_contents_audio_input_stream.h" | 5 #include "content/browser/media/capture/web_contents_audio_input_stream.h" |
6 | 6 |
7 #include <list> | 7 #include <list> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 | 80 |
81 DISALLOW_COPY_AND_ASSIGN(MockWebContentsTracker); | 81 DISALLOW_COPY_AND_ASSIGN(MockWebContentsTracker); |
82 }; | 82 }; |
83 | 83 |
84 // A fully-functional VirtualAudioInputStream, but methods are mocked to allow | 84 // A fully-functional VirtualAudioInputStream, but methods are mocked to allow |
85 // tests to check how/when they are invoked. | 85 // tests to check how/when they are invoked. |
86 class MockVirtualAudioInputStream : public VirtualAudioInputStream { | 86 class MockVirtualAudioInputStream : public VirtualAudioInputStream { |
87 public: | 87 public: |
88 explicit MockVirtualAudioInputStream( | 88 explicit MockVirtualAudioInputStream( |
89 const scoped_refptr<base::MessageLoopProxy>& worker_loop) | 89 const scoped_refptr<base::MessageLoopProxy>& worker_loop) |
90 : VirtualAudioInputStream(TestAudioParameters(), worker_loop, | 90 : VirtualAudioInputStream(TestAudioParameters(), worker_loop, false), |
91 VirtualAudioInputStream::AfterCloseCallback()), | 91 real_(TestAudioParameters(), worker_loop, false), |
92 real_(TestAudioParameters(), worker_loop, | |
93 base::Bind(&MockVirtualAudioInputStream::OnRealStreamHasClosed, | |
94 base::Unretained(this))), | |
95 real_stream_is_closed_(false) { | 92 real_stream_is_closed_(false) { |
96 // Set default actions of mocked methods to delegate to the concrete | 93 // Set default actions of mocked methods to delegate to the concrete |
97 // implementation. | 94 // implementation. |
98 ON_CALL(*this, Open()) | 95 ON_CALL(*this, Open()) |
99 .WillByDefault(Invoke(&real_, &VirtualAudioInputStream::Open)); | 96 .WillByDefault(Invoke(&real_, &VirtualAudioInputStream::Open)); |
100 ON_CALL(*this, Start(_)) | 97 ON_CALL(*this, Start(_)) |
101 .WillByDefault(Invoke(&real_, &VirtualAudioInputStream::Start)); | 98 .WillByDefault(Invoke(&real_, &VirtualAudioInputStream::Start)); |
102 ON_CALL(*this, Stop()) | 99 ON_CALL(*this, Stop()) |
103 .WillByDefault(Invoke(&real_, &VirtualAudioInputStream::Stop)); | 100 .WillByDefault(Invoke(&real_, &VirtualAudioInputStream::Stop)); |
104 ON_CALL(*this, Close()) | 101 ON_CALL(*this, Close()) |
105 .WillByDefault(Invoke(&real_, &VirtualAudioInputStream::Close)); | 102 .WillByDefault(Invoke(this, &MockVirtualAudioInputStream::OnClose)); |
106 ON_CALL(*this, GetMaxVolume()) | 103 ON_CALL(*this, GetMaxVolume()) |
107 .WillByDefault(Invoke(&real_, &VirtualAudioInputStream::GetMaxVolume)); | 104 .WillByDefault(Invoke(&real_, &VirtualAudioInputStream::GetMaxVolume)); |
108 ON_CALL(*this, SetVolume(_)) | 105 ON_CALL(*this, SetVolume(_)) |
109 .WillByDefault(Invoke(&real_, &VirtualAudioInputStream::SetVolume)); | 106 .WillByDefault(Invoke(&real_, &VirtualAudioInputStream::SetVolume)); |
110 ON_CALL(*this, GetVolume()) | 107 ON_CALL(*this, GetVolume()) |
111 .WillByDefault(Invoke(&real_, &VirtualAudioInputStream::GetVolume)); | 108 .WillByDefault(Invoke(&real_, &VirtualAudioInputStream::GetVolume)); |
112 ON_CALL(*this, SetAutomaticGainControl(_)) | 109 ON_CALL(*this, SetAutomaticGainControl(_)) |
113 .WillByDefault( | 110 .WillByDefault( |
114 Invoke(&real_, &VirtualAudioInputStream::SetAutomaticGainControl)); | 111 Invoke(&real_, &VirtualAudioInputStream::SetAutomaticGainControl)); |
115 ON_CALL(*this, GetAutomaticGainControl()) | 112 ON_CALL(*this, GetAutomaticGainControl()) |
(...skipping 19 matching lines...) Expand all Loading... |
135 MOCK_METHOD1(SetVolume, void(double)); | 132 MOCK_METHOD1(SetVolume, void(double)); |
136 MOCK_METHOD0(GetVolume, double()); | 133 MOCK_METHOD0(GetVolume, double()); |
137 MOCK_METHOD1(SetAutomaticGainControl, bool(bool)); | 134 MOCK_METHOD1(SetAutomaticGainControl, bool(bool)); |
138 MOCK_METHOD0(GetAutomaticGainControl, bool()); | 135 MOCK_METHOD0(GetAutomaticGainControl, bool()); |
139 MOCK_METHOD2(AddOutputStream, void(VirtualAudioOutputStream*, | 136 MOCK_METHOD2(AddOutputStream, void(VirtualAudioOutputStream*, |
140 const AudioParameters&)); | 137 const AudioParameters&)); |
141 MOCK_METHOD2(RemoveOutputStream, void(VirtualAudioOutputStream*, | 138 MOCK_METHOD2(RemoveOutputStream, void(VirtualAudioOutputStream*, |
142 const AudioParameters&)); | 139 const AudioParameters&)); |
143 | 140 |
144 private: | 141 private: |
145 void OnRealStreamHasClosed(VirtualAudioInputStream* stream) { | 142 void OnClose() { |
146 DCHECK_EQ(&real_, stream); | 143 real_.Close(); |
147 DCHECK(!real_stream_is_closed_); | 144 DCHECK(!real_stream_is_closed_); |
148 real_stream_is_closed_ = true; | 145 real_stream_is_closed_ = true; |
149 } | 146 } |
150 | 147 |
151 VirtualAudioInputStream real_; | 148 VirtualAudioInputStream real_; |
152 bool real_stream_is_closed_; | 149 bool real_stream_is_closed_; |
153 | 150 |
154 DISALLOW_COPY_AND_ASSIGN(MockVirtualAudioInputStream); | 151 DISALLOW_COPY_AND_ASSIGN(MockVirtualAudioInputStream); |
155 }; | 152 }; |
156 | 153 |
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
499 WaitForData(); | 496 WaitForData(); |
500 RUN_ON_AUDIO_THREAD(RemoveOneInputInFIFOOrder); | 497 RUN_ON_AUDIO_THREAD(RemoveOneInputInFIFOOrder); |
501 WaitForData(); | 498 WaitForData(); |
502 RUN_ON_AUDIO_THREAD(ChangeMirroringTarget); | 499 RUN_ON_AUDIO_THREAD(ChangeMirroringTarget); |
503 RUN_ON_AUDIO_THREAD(RemoveOneInputInFIFOOrder); | 500 RUN_ON_AUDIO_THREAD(RemoveOneInputInFIFOOrder); |
504 RUN_ON_AUDIO_THREAD(Stop); | 501 RUN_ON_AUDIO_THREAD(Stop); |
505 RUN_ON_AUDIO_THREAD(Close); | 502 RUN_ON_AUDIO_THREAD(Close); |
506 } | 503 } |
507 | 504 |
508 } // namespace content | 505 } // namespace content |
OLD | NEW |