OLD | NEW |
---|---|
(Empty) | |
1 /* | |
2 * Copyright 2017 The WebRTC project authors. All Rights Reserved. | |
3 * | |
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 | |
6 * tree. An additional intellectual property rights grant can be found | |
7 * in the file PATENTS. All contributing project authors may | |
8 * be found in the AUTHORS file in the root of the source tree. | |
9 */ | |
10 | |
11 #include <string> | |
12 | |
13 #include "webrtc/base/gunit.h" | |
14 #include "webrtc/p2p/base/fakepackettransport.h" | |
15 #include "webrtc/pc/rtptransport.h" | |
16 | |
17 namespace webrtc { | |
18 | |
19 class RtpTransportTest : public testing::Test {}; | |
20 | |
21 TEST_F(RtpTransportTest, SetRtcpParametersCantDisableRtcpMux) { | |
22 RtpTransport transport(false); | |
Taylor Brandstetter
2017/04/19 05:56:33
nit: Would be nice to have a way to know what the
Zach Stein
2017/04/20 19:59:11
Done.
| |
23 RtcpParameters params; | |
24 transport.SetRtcpParameters(params); | |
25 params.mux = false; | |
26 EXPECT_FALSE(transport.SetRtcpParameters(params).ok()); | |
27 } | |
28 | |
29 TEST_F(RtpTransportTest, SetRtcpParametersEmptyCnameUsesExisting) { | |
30 static const char kName[] = "name"; | |
31 RtpTransport transport(false); | |
32 RtcpParameters params_with_name; | |
33 params_with_name.cname = kName; | |
34 transport.SetRtcpParameters(params_with_name); | |
35 EXPECT_EQ(transport.GetRtcpParameters().cname, kName); | |
36 | |
37 RtcpParameters params_without_name; | |
38 transport.SetRtcpParameters(params_without_name); | |
39 EXPECT_EQ(transport.GetRtcpParameters().cname, kName); | |
40 } | |
41 | |
42 class SignalObserver : public sigslot::has_slots<> { | |
43 public: | |
44 void OnReadyToSend(bool ready) { ready_ = ready; } | |
45 bool ready_ = false; | |
46 }; | |
47 | |
48 TEST_F(RtpTransportTest, SettingRtcpAndRtpSignalsReady) { | |
49 RtpTransport transport(false); | |
50 SignalObserver observer; | |
Taylor Brandstetter
2017/04/19 05:56:33
nit: SignalObserver could take a pointer to the tr
Zach Stein
2017/04/20 19:59:11
Done.
| |
51 transport.SignalReadyToSend.connect(&observer, | |
52 &SignalObserver::OnReadyToSend); | |
53 rtc::FakePacketTransport fake_rtcp("fake_rtcp"); | |
54 fake_rtcp.SetWritable(true); | |
55 rtc::FakePacketTransport fake_rtp("fake_rtp"); | |
56 fake_rtp.SetWritable(true); | |
57 | |
58 transport.SetRtcpPacketTransport(&fake_rtcp); // rtcp ready | |
59 EXPECT_FALSE(observer.ready_); | |
60 transport.SetRtpPacketTransport(&fake_rtp); // rtp ready | |
61 EXPECT_TRUE(observer.ready_); | |
62 } | |
63 | |
64 TEST_F(RtpTransportTest, SettingRtpAndRtcpSignalsReady) { | |
65 RtpTransport transport(false); | |
66 SignalObserver observer; | |
67 transport.SignalReadyToSend.connect(&observer, | |
68 &SignalObserver::OnReadyToSend); | |
69 rtc::FakePacketTransport fake_rtcp("fake_rtcp"); | |
70 fake_rtcp.SetWritable(true); | |
71 rtc::FakePacketTransport fake_rtp("fake_rtp"); | |
72 fake_rtp.SetWritable(true); | |
73 | |
74 transport.SetRtpPacketTransport(&fake_rtp); // rtp ready | |
75 EXPECT_FALSE(observer.ready_); | |
76 transport.SetRtcpPacketTransport(&fake_rtcp); // rtcp ready | |
77 EXPECT_TRUE(observer.ready_); | |
78 } | |
79 | |
80 TEST_F(RtpTransportTest, SettingRtpWithRtcpMuxEnabledSignalsReady) { | |
81 RtpTransport transport(true); | |
82 SignalObserver observer; | |
83 transport.SignalReadyToSend.connect(&observer, | |
84 &SignalObserver::OnReadyToSend); | |
85 rtc::FakePacketTransport fake_rtp("fake_rtp"); | |
86 fake_rtp.SetWritable(true); | |
87 | |
88 transport.SetRtpPacketTransport(&fake_rtp); // rtp ready | |
89 EXPECT_TRUE(observer.ready_); | |
90 | |
91 // TODO(zstein): disabling mux should signal not ready? | |
Taylor Brandstetter
2017/04/19 05:56:33
Disabling mux when the RTCP transport is unset isn
Zach Stein
2017/04/20 19:59:11
Acknowledged.
| |
92 } | |
93 | |
94 } // namespace webrtc | |
OLD | NEW |