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

Side by Side Diff: webrtc/call/call_unittest.cc

Issue 2461523002: Remove usage of VoEBase::AssociateSendChannel() from WVoMC. (Closed)
Patch Set: rebase Created 4 years, 1 month 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
« no previous file with comments | « webrtc/call/call.cc ('k') | webrtc/media/engine/fakewebrtcvoiceengine.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 14 matching lines...) Expand all
25 rtc::scoped_refptr<webrtc::AudioDecoderFactory> decoder_factory = nullptr) 25 rtc::scoped_refptr<webrtc::AudioDecoderFactory> decoder_factory = nullptr)
26 : voice_engine_(decoder_factory) { 26 : voice_engine_(decoder_factory) {
27 webrtc::AudioState::Config audio_state_config; 27 webrtc::AudioState::Config audio_state_config;
28 audio_state_config.voice_engine = &voice_engine_; 28 audio_state_config.voice_engine = &voice_engine_;
29 webrtc::Call::Config config(&event_log_); 29 webrtc::Call::Config config(&event_log_);
30 config.audio_state = webrtc::AudioState::Create(audio_state_config); 30 config.audio_state = webrtc::AudioState::Create(audio_state_config);
31 call_.reset(webrtc::Call::Create(config)); 31 call_.reset(webrtc::Call::Create(config));
32 } 32 }
33 33
34 webrtc::Call* operator->() { return call_.get(); } 34 webrtc::Call* operator->() { return call_.get(); }
35 webrtc::test::MockVoiceEngine* voice_engine() { return &voice_engine_; }
35 36
36 private: 37 private:
37 testing::NiceMock<webrtc::test::MockVoiceEngine> voice_engine_; 38 testing::NiceMock<webrtc::test::MockVoiceEngine> voice_engine_;
38 webrtc::RtcEventLogNullImpl event_log_; 39 webrtc::RtcEventLogNullImpl event_log_;
39 std::unique_ptr<webrtc::Call> call_; 40 std::unique_ptr<webrtc::Call> call_;
40 }; 41 };
41 } // namespace 42 } // namespace
42 43
43 namespace webrtc { 44 namespace webrtc {
44 45
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 streams.push_front(stream); 112 streams.push_front(stream);
112 } 113 }
113 } 114 }
114 for (auto s : streams) { 115 for (auto s : streams) {
115 call->DestroyAudioReceiveStream(s); 116 call->DestroyAudioReceiveStream(s);
116 } 117 }
117 streams.clear(); 118 streams.clear();
118 } 119 }
119 } 120 }
120 121
122 TEST(CallTest, CreateDestroy_AssociateAudioSendReceiveStreams_RecvFirst) {
123 rtc::scoped_refptr<webrtc::AudioDecoderFactory> decoder_factory(
124 new rtc::RefCountedObject<webrtc::MockAudioDecoderFactory>);
125 CallHelper call(decoder_factory);
126
127 constexpr int kRecvChannelId = 101;
128
129 // Set up the mock to create a channel proxy which we know of, so that we can
130 // add our expectations to it.
131 test::MockVoEChannelProxy* recv_channel_proxy = nullptr;
132 EXPECT_CALL(*call.voice_engine(), ChannelProxyFactory(testing::_))
133 .WillRepeatedly(testing::Invoke([&](int channel_id) {
134 test::MockVoEChannelProxy* channel_proxy =
135 new testing::NiceMock<test::MockVoEChannelProxy>();
136 EXPECT_CALL(*channel_proxy, GetAudioDecoderFactory())
137 .WillRepeatedly(testing::ReturnRef(decoder_factory));
138 // If being called for the send channel, save a pointer to the channel
139 // proxy for later.
140 if (channel_id == kRecvChannelId) {
141 EXPECT_FALSE(recv_channel_proxy);
142 recv_channel_proxy = channel_proxy;
143 }
144 return channel_proxy;
145 }));
146
147 AudioReceiveStream::Config recv_config;
148 recv_config.rtp.remote_ssrc = 42;
149 recv_config.rtp.local_ssrc = 777;
150 recv_config.voe_channel_id = kRecvChannelId;
151 recv_config.decoder_factory = decoder_factory;
152 AudioReceiveStream* recv_stream = call->CreateAudioReceiveStream(recv_config);
153 EXPECT_NE(recv_stream, nullptr);
154
155 EXPECT_CALL(*recv_channel_proxy, AssociateSendChannel(testing::_)).Times(1);
156 AudioSendStream::Config send_config(nullptr);
157 send_config.rtp.ssrc = 777;
158 send_config.voe_channel_id = 123;
159 AudioSendStream* send_stream = call->CreateAudioSendStream(send_config);
160 EXPECT_NE(send_stream, nullptr);
161
162 EXPECT_CALL(*recv_channel_proxy, DisassociateSendChannel()).Times(1);
163 call->DestroyAudioSendStream(send_stream);
164
165 EXPECT_CALL(*recv_channel_proxy, DisassociateSendChannel()).Times(1);
166 call->DestroyAudioReceiveStream(recv_stream);
167 }
168
169 TEST(CallTest, CreateDestroy_AssociateAudioSendReceiveStreams_SendFirst) {
170 rtc::scoped_refptr<webrtc::AudioDecoderFactory> decoder_factory(
171 new rtc::RefCountedObject<webrtc::MockAudioDecoderFactory>);
172 CallHelper call(decoder_factory);
173
174 constexpr int kRecvChannelId = 101;
175
176 // Set up the mock to create a channel proxy which we know of, so that we can
177 // add our expectations to it.
178 test::MockVoEChannelProxy* recv_channel_proxy = nullptr;
179 EXPECT_CALL(*call.voice_engine(), ChannelProxyFactory(testing::_))
180 .WillRepeatedly(testing::Invoke([&](int channel_id) {
181 test::MockVoEChannelProxy* channel_proxy =
182 new testing::NiceMock<test::MockVoEChannelProxy>();
183 EXPECT_CALL(*channel_proxy, GetAudioDecoderFactory())
184 .WillRepeatedly(testing::ReturnRef(decoder_factory));
185 // If being called for the send channel, save a pointer to the channel
186 // proxy for later.
187 if (channel_id == kRecvChannelId) {
188 EXPECT_FALSE(recv_channel_proxy);
189 recv_channel_proxy = channel_proxy;
190 // We need to set this expectation here since the channel proxy is
191 // created as a side effect of CreateAudioReceiveStream().
192 EXPECT_CALL(*recv_channel_proxy,
193 AssociateSendChannel(testing::_)).Times(1);
194 }
195 return channel_proxy;
196 }));
197
198 AudioSendStream::Config send_config(nullptr);
199 send_config.rtp.ssrc = 777;
200 send_config.voe_channel_id = 123;
201 AudioSendStream* send_stream = call->CreateAudioSendStream(send_config);
202 EXPECT_NE(send_stream, nullptr);
203
204 AudioReceiveStream::Config recv_config;
205 recv_config.rtp.remote_ssrc = 42;
206 recv_config.rtp.local_ssrc = 777;
207 recv_config.voe_channel_id = kRecvChannelId;
208 recv_config.decoder_factory = decoder_factory;
209 AudioReceiveStream* recv_stream = call->CreateAudioReceiveStream(recv_config);
210 EXPECT_NE(recv_stream, nullptr);
211
212 EXPECT_CALL(*recv_channel_proxy, DisassociateSendChannel()).Times(1);
213 call->DestroyAudioReceiveStream(recv_stream);
214
215 call->DestroyAudioSendStream(send_stream);
216 }
217
121 TEST(CallTest, CreateDestroy_FlexfecReceiveStream) { 218 TEST(CallTest, CreateDestroy_FlexfecReceiveStream) {
122 CallHelper call; 219 CallHelper call;
123 FlexfecReceiveStream::Config config; 220 FlexfecReceiveStream::Config config;
124 config.flexfec_payload_type = 118; 221 config.flexfec_payload_type = 118;
125 config.flexfec_ssrc = 38837212; 222 config.flexfec_ssrc = 38837212;
126 config.protected_media_ssrcs = {27273}; 223 config.protected_media_ssrcs = {27273};
127 224
128 FlexfecReceiveStream* stream = call->CreateFlexfecReceiveStream(config); 225 FlexfecReceiveStream* stream = call->CreateFlexfecReceiveStream(config);
129 EXPECT_NE(stream, nullptr); 226 EXPECT_NE(stream, nullptr);
130 call->DestroyFlexfecReceiveStream(stream); 227 call->DestroyFlexfecReceiveStream(stream);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 stream = call->CreateFlexfecReceiveStream(config); 279 stream = call->CreateFlexfecReceiveStream(config);
183 EXPECT_NE(stream, nullptr); 280 EXPECT_NE(stream, nullptr);
184 streams.push_back(stream); 281 streams.push_back(stream);
185 282
186 for (auto s : streams) { 283 for (auto s : streams) {
187 call->DestroyFlexfecReceiveStream(s); 284 call->DestroyFlexfecReceiveStream(s);
188 } 285 }
189 } 286 }
190 287
191 } // namespace webrtc 288 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/call/call.cc ('k') | webrtc/media/engine/fakewebrtcvoiceengine.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698