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

Side by Side Diff: webrtc/pc/webrtcsession_unittest.cc

Issue 2675173003: Adding "adapter" ORTC objects on top of ChannelManager/BaseChannel/etc. (Closed)
Patch Set: Created 3 years, 10 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
« webrtc/pc/ortcfactory.h ('K') | « webrtc/pc/webrtcsession.cc ('k') | no next file » | 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 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2012 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 16 matching lines...) Expand all
27 #include "webrtc/base/sslstreamadapter.h" 27 #include "webrtc/base/sslstreamadapter.h"
28 #include "webrtc/base/stringutils.h" 28 #include "webrtc/base/stringutils.h"
29 #include "webrtc/base/thread.h" 29 #include "webrtc/base/thread.h"
30 #include "webrtc/base/virtualsocketserver.h" 30 #include "webrtc/base/virtualsocketserver.h"
31 #include "webrtc/logging/rtc_event_log/rtc_event_log.h" 31 #include "webrtc/logging/rtc_event_log/rtc_event_log.h"
32 #include "webrtc/media/base/fakemediaengine.h" 32 #include "webrtc/media/base/fakemediaengine.h"
33 #include "webrtc/media/base/fakevideorenderer.h" 33 #include "webrtc/media/base/fakevideorenderer.h"
34 #include "webrtc/media/base/mediachannel.h" 34 #include "webrtc/media/base/mediachannel.h"
35 #include "webrtc/media/engine/fakewebrtccall.h" 35 #include "webrtc/media/engine/fakewebrtccall.h"
36 #include "webrtc/media/sctp/sctptransportinternal.h" 36 #include "webrtc/media/sctp/sctptransportinternal.h"
37 #include "webrtc/p2p/base/packettransportinterface.h" 37 #include "webrtc/p2p/base/packettransportinternal.h"
38 #include "webrtc/p2p/base/stunserver.h" 38 #include "webrtc/p2p/base/stunserver.h"
39 #include "webrtc/p2p/base/teststunserver.h" 39 #include "webrtc/p2p/base/teststunserver.h"
40 #include "webrtc/p2p/base/testturnserver.h" 40 #include "webrtc/p2p/base/testturnserver.h"
41 #include "webrtc/p2p/client/basicportallocator.h" 41 #include "webrtc/p2p/client/basicportallocator.h"
42 #include "webrtc/pc/audiotrack.h" 42 #include "webrtc/pc/audiotrack.h"
43 #include "webrtc/pc/channelmanager.h" 43 #include "webrtc/pc/channelmanager.h"
44 #include "webrtc/pc/fakemediacontroller.h" 44 #include "webrtc/pc/fakemediacontroller.h"
45 #include "webrtc/pc/mediasession.h" 45 #include "webrtc/pc/mediasession.h"
46 #include "webrtc/pc/peerconnection.h" 46 #include "webrtc/pc/peerconnection.h"
47 #include "webrtc/pc/sctputils.h" 47 #include "webrtc/pc/sctputils.h"
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 std::vector<PeerConnectionInterface::IceConnectionState> 205 std::vector<PeerConnectionInterface::IceConnectionState>
206 ice_connection_state_history_; 206 ice_connection_state_history_;
207 size_t num_candidates_removed_ = 0; 207 size_t num_candidates_removed_ = 0;
208 }; 208 };
209 209
210 // Used for tests in this file to verify that WebRtcSession responds to signals 210 // Used for tests in this file to verify that WebRtcSession responds to signals
211 // from the SctpTransport correctly, and calls Start with the correct 211 // from the SctpTransport correctly, and calls Start with the correct
212 // local/remote ports. 212 // local/remote ports.
213 class FakeSctpTransport : public cricket::SctpTransportInternal { 213 class FakeSctpTransport : public cricket::SctpTransportInternal {
214 public: 214 public:
215 void SetTransportChannel(rtc::PacketTransportInterface* channel) override {} 215 void SetTransportChannel(rtc::PacketTransportInternal* channel) override {}
216 bool Start(int local_port, int remote_port) override { 216 bool Start(int local_port, int remote_port) override {
217 local_port_ = local_port; 217 local_port_ = local_port;
218 remote_port_ = remote_port; 218 remote_port_ = remote_port;
219 return true; 219 return true;
220 } 220 }
221 bool OpenStream(int sid) override { return true; } 221 bool OpenStream(int sid) override { return true; }
222 bool ResetStream(int sid) override { return true; } 222 bool ResetStream(int sid) override { return true; }
223 bool SendData(const cricket::SendDataParams& params, 223 bool SendData(const cricket::SendDataParams& params,
224 const rtc::CopyOnWriteBuffer& payload, 224 const rtc::CopyOnWriteBuffer& payload,
225 cricket::SendDataResult* result = nullptr) override { 225 cricket::SendDataResult* result = nullptr) override {
226 return true; 226 return true;
227 } 227 }
228 bool ReadyToSendData() override { return true; } 228 bool ReadyToSendData() override { return true; }
229 void set_debug_name_for_testing(const char* debug_name) override {} 229 void set_debug_name_for_testing(const char* debug_name) override {}
230 230
231 int local_port() const { return local_port_; } 231 int local_port() const { return local_port_; }
232 int remote_port() const { return remote_port_; } 232 int remote_port() const { return remote_port_; }
233 233
234 private: 234 private:
235 int local_port_ = -1; 235 int local_port_ = -1;
236 int remote_port_ = -1; 236 int remote_port_ = -1;
237 }; 237 };
238 238
239 class FakeSctpTransportFactory : public cricket::SctpTransportInternalFactory { 239 class FakeSctpTransportFactory : public cricket::SctpTransportInternalFactory {
240 public: 240 public:
241 std::unique_ptr<cricket::SctpTransportInternal> CreateSctpTransport( 241 std::unique_ptr<cricket::SctpTransportInternal> CreateSctpTransport(
242 rtc::PacketTransportInterface*) override { 242 rtc::PacketTransportInternal*) override {
243 last_fake_sctp_transport_ = new FakeSctpTransport(); 243 last_fake_sctp_transport_ = new FakeSctpTransport();
244 return std::unique_ptr<cricket::SctpTransportInternal>( 244 return std::unique_ptr<cricket::SctpTransportInternal>(
245 last_fake_sctp_transport_); 245 last_fake_sctp_transport_);
246 } 246 }
247 247
248 FakeSctpTransport* last_fake_sctp_transport() { 248 FakeSctpTransport* last_fake_sctp_transport() {
249 return last_fake_sctp_transport_; 249 return last_fake_sctp_transport_;
250 } 250 }
251 251
252 private: 252 private:
(...skipping 17 matching lines...) Expand all
270 signaling_thread, 270 signaling_thread,
271 port_allocator, 271 port_allocator,
272 std::move(transport_controller), 272 std::move(transport_controller),
273 std::move(sctp_factory)) { 273 std::move(sctp_factory)) {
274 RegisterIceObserver(ice_observer); 274 RegisterIceObserver(ice_observer);
275 } 275 }
276 virtual ~WebRtcSessionForTest() {} 276 virtual ~WebRtcSessionForTest() {}
277 277
278 // Note that these methods are only safe to use if the signaling thread 278 // Note that these methods are only safe to use if the signaling thread
279 // is the same as the worker thread 279 // is the same as the worker thread
280 rtc::PacketTransportInterface* voice_rtp_transport_channel() { 280 rtc::PacketTransportInternal* voice_rtp_transport_channel() {
281 return rtp_transport_channel(voice_channel()); 281 return rtp_transport_channel(voice_channel());
282 } 282 }
283 283
284 rtc::PacketTransportInterface* voice_rtcp_transport_channel() { 284 rtc::PacketTransportInternal* voice_rtcp_transport_channel() {
285 return rtcp_transport_channel(voice_channel()); 285 return rtcp_transport_channel(voice_channel());
286 } 286 }
287 287
288 rtc::PacketTransportInterface* video_rtp_transport_channel() { 288 rtc::PacketTransportInternal* video_rtp_transport_channel() {
289 return rtp_transport_channel(video_channel()); 289 return rtp_transport_channel(video_channel());
290 } 290 }
291 291
292 rtc::PacketTransportInterface* video_rtcp_transport_channel() { 292 rtc::PacketTransportInternal* video_rtcp_transport_channel() {
293 return rtcp_transport_channel(video_channel()); 293 return rtcp_transport_channel(video_channel());
294 } 294 }
295 295
296 private: 296 private:
297 rtc::PacketTransportInterface* rtp_transport_channel( 297 rtc::PacketTransportInternal* rtp_transport_channel(
298 cricket::BaseChannel* ch) { 298 cricket::BaseChannel* ch) {
299 if (!ch) { 299 if (!ch) {
300 return nullptr; 300 return nullptr;
301 } 301 }
302 return ch->rtp_dtls_transport(); 302 return ch->rtp_dtls_transport();
303 } 303 }
304 304
305 rtc::PacketTransportInterface* rtcp_transport_channel( 305 rtc::PacketTransportInternal* rtcp_transport_channel(
306 cricket::BaseChannel* ch) { 306 cricket::BaseChannel* ch) {
307 if (!ch) { 307 if (!ch) {
308 return nullptr; 308 return nullptr;
309 } 309 }
310 return ch->rtcp_dtls_transport(); 310 return ch->rtcp_dtls_transport();
311 } 311 }
312 }; 312 };
313 313
314 class WebRtcSessionCreateSDPObserverForTest 314 class WebRtcSessionCreateSDPObserverForTest
315 : public rtc::RefCountedObject<CreateSessionDescriptionObserver> { 315 : public rtc::RefCountedObject<CreateSessionDescriptionObserver> {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
364 364
365 class WebRtcSessionTest 365 class WebRtcSessionTest
366 : public testing::TestWithParam<RTCCertificateGenerationMethod>, 366 : public testing::TestWithParam<RTCCertificateGenerationMethod>,
367 public sigslot::has_slots<> { 367 public sigslot::has_slots<> {
368 protected: 368 protected:
369 // TODO Investigate why ChannelManager crashes, if it's created 369 // TODO Investigate why ChannelManager crashes, if it's created
370 // after stun_server. 370 // after stun_server.
371 WebRtcSessionTest() 371 WebRtcSessionTest()
372 : media_engine_(new cricket::FakeMediaEngine()), 372 : media_engine_(new cricket::FakeMediaEngine()),
373 data_engine_(new cricket::FakeDataEngine()), 373 data_engine_(new cricket::FakeDataEngine()),
374 channel_manager_(new cricket::ChannelManager(media_engine_, 374 channel_manager_(new cricket::ChannelManager(
375 data_engine_, 375 std::unique_ptr<cricket::MediaEngineInterface>(media_engine_),
376 rtc::Thread::Current())), 376 std::unique_ptr<cricket::DataEngineInterface>(data_engine_),
377 rtc::Thread::Current())),
377 fake_call_(webrtc::Call::Config(&event_log_)), 378 fake_call_(webrtc::Call::Config(&event_log_)),
378 media_controller_( 379 media_controller_(
379 webrtc::MediaControllerInterface::Create(cricket::MediaConfig(), 380 webrtc::MediaControllerInterface::Create(cricket::MediaConfig(),
380 rtc::Thread::Current(), 381 rtc::Thread::Current(),
381 channel_manager_.get(), 382 channel_manager_.get(),
382 &event_log_)), 383 &event_log_)),
383 tdesc_factory_(new cricket::TransportDescriptionFactory()), 384 tdesc_factory_(new cricket::TransportDescriptionFactory()),
384 desc_factory_( 385 desc_factory_(
385 new cricket::MediaSessionDescriptionFactory(channel_manager_.get(), 386 new cricket::MediaSessionDescriptionFactory(channel_manager_.get(),
386 tdesc_factory_.get())), 387 tdesc_factory_.get())),
(...skipping 1139 matching lines...) Expand 10 before | Expand all | Expand 10 after
1526 cricket::RelayCredentials credentials(kTurnUsername, kTurnPassword); 1527 cricket::RelayCredentials credentials(kTurnUsername, kTurnPassword);
1527 turn_server.credentials = credentials; 1528 turn_server.credentials = credentials;
1528 turn_server.ports.push_back( 1529 turn_server.ports.push_back(
1529 cricket::ProtocolAddress(kTurnUdpIntAddr, cricket::PROTO_UDP)); 1530 cricket::ProtocolAddress(kTurnUdpIntAddr, cricket::PROTO_UDP));
1530 allocator_->AddTurnServer(turn_server); 1531 allocator_->AddTurnServer(turn_server);
1531 allocator_->set_step_delay(cricket::kMinimumStepDelay); 1532 allocator_->set_step_delay(cricket::kMinimumStepDelay);
1532 allocator_->set_flags(cricket::PORTALLOCATOR_DISABLE_TCP); 1533 allocator_->set_flags(cricket::PORTALLOCATOR_DISABLE_TCP);
1533 } 1534 }
1534 1535
1535 webrtc::RtcEventLogNullImpl event_log_; 1536 webrtc::RtcEventLogNullImpl event_log_;
1537 // |media_engine_| and |data_engine_| are actually owned by
1538 // |channel_manager_|.
1536 cricket::FakeMediaEngine* media_engine_; 1539 cricket::FakeMediaEngine* media_engine_;
1537 cricket::FakeDataEngine* data_engine_; 1540 cricket::FakeDataEngine* data_engine_;
1538 // Actually owned by session_. 1541 // Actually owned by session_.
1539 FakeSctpTransportFactory* fake_sctp_transport_factory_ = nullptr; 1542 FakeSctpTransportFactory* fake_sctp_transport_factory_ = nullptr;
1540 std::unique_ptr<cricket::ChannelManager> channel_manager_; 1543 std::unique_ptr<cricket::ChannelManager> channel_manager_;
1541 cricket::FakeCall fake_call_; 1544 cricket::FakeCall fake_call_;
1542 std::unique_ptr<webrtc::MediaControllerInterface> media_controller_; 1545 std::unique_ptr<webrtc::MediaControllerInterface> media_controller_;
1543 std::unique_ptr<cricket::TransportDescriptionFactory> tdesc_factory_; 1546 std::unique_ptr<cricket::TransportDescriptionFactory> tdesc_factory_;
1544 std::unique_ptr<cricket::MediaSessionDescriptionFactory> desc_factory_; 1547 std::unique_ptr<cricket::MediaSessionDescriptionFactory> desc_factory_;
1545 std::unique_ptr<rtc::PhysicalSocketServer> pss_; 1548 std::unique_ptr<rtc::PhysicalSocketServer> pss_;
(...skipping 920 matching lines...) Expand 10 before | Expand all | Expand 10 after
2466 &sdp); 2469 &sdp);
2467 2470
2468 SessionDescriptionInterface* modified_offer = 2471 SessionDescriptionInterface* modified_offer =
2469 CreateSessionDescription(JsepSessionDescription::kOffer, sdp, NULL); 2472 CreateSessionDescription(JsepSessionDescription::kOffer, sdp, NULL);
2470 2473
2471 SetRemoteDescriptionWithoutError(modified_offer); 2474 SetRemoteDescriptionWithoutError(modified_offer);
2472 2475
2473 SessionDescriptionInterface* answer = CreateAnswer(); 2476 SessionDescriptionInterface* answer = CreateAnswer();
2474 SetLocalDescriptionWithoutError(answer); 2477 SetLocalDescriptionWithoutError(answer);
2475 2478
2476 rtc::PacketTransportInterface* voice_transport_channel = 2479 rtc::PacketTransportInternal* voice_transport_channel =
2477 session_->voice_rtp_transport_channel(); 2480 session_->voice_rtp_transport_channel();
2478 EXPECT_TRUE(voice_transport_channel != NULL); 2481 EXPECT_TRUE(voice_transport_channel != NULL);
2479 EXPECT_EQ(voice_transport_channel->debug_name(), 2482 EXPECT_EQ(voice_transport_channel->debug_name(),
2480 "audio_content_name " + 2483 "audio_content_name " +
2481 std::to_string(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 2484 std::to_string(cricket::ICE_CANDIDATE_COMPONENT_RTP));
2482 rtc::PacketTransportInterface* video_transport_channel = 2485 rtc::PacketTransportInternal* video_transport_channel =
2483 session_->video_rtp_transport_channel(); 2486 session_->video_rtp_transport_channel();
2484 ASSERT_TRUE(video_transport_channel != NULL); 2487 ASSERT_TRUE(video_transport_channel != NULL);
2485 EXPECT_EQ(video_transport_channel->debug_name(), 2488 EXPECT_EQ(video_transport_channel->debug_name(),
2486 "video_content_name " + 2489 "video_content_name " +
2487 std::to_string(cricket::ICE_CANDIDATE_COMPONENT_RTP)); 2490 std::to_string(cricket::ICE_CANDIDATE_COMPONENT_RTP));
2488 EXPECT_TRUE((video_channel_ = media_engine_->GetVideoChannel(0)) != NULL); 2491 EXPECT_TRUE((video_channel_ = media_engine_->GetVideoChannel(0)) != NULL);
2489 EXPECT_TRUE((voice_channel_ = media_engine_->GetVoiceChannel(0)) != NULL); 2492 EXPECT_TRUE((voice_channel_ = media_engine_->GetVoiceChannel(0)) != NULL);
2490 } 2493 }
2491 2494
2492 // Test that an offer contains the correct media content descriptions based on 2495 // Test that an offer contains the correct media content descriptions based on
(...skipping 1916 matching lines...) Expand 10 before | Expand all | Expand 10 after
4409 } 4412 }
4410 4413
4411 // TODO(bemasc): Add a TestIceStatesBundle with BUNDLE enabled. That test 4414 // TODO(bemasc): Add a TestIceStatesBundle with BUNDLE enabled. That test
4412 // currently fails because upon disconnection and reconnection OnIceComplete is 4415 // currently fails because upon disconnection and reconnection OnIceComplete is
4413 // called more than once without returning to IceGatheringGathering. 4416 // called more than once without returning to IceGatheringGathering.
4414 4417
4415 INSTANTIATE_TEST_CASE_P(WebRtcSessionTests, 4418 INSTANTIATE_TEST_CASE_P(WebRtcSessionTests,
4416 WebRtcSessionTest, 4419 WebRtcSessionTest,
4417 testing::Values(ALREADY_GENERATED, 4420 testing::Values(ALREADY_GENERATED,
4418 DTLS_IDENTITY_STORE)); 4421 DTLS_IDENTITY_STORE));
OLDNEW
« webrtc/pc/ortcfactory.h ('K') | « webrtc/pc/webrtcsession.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698