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

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

Issue 2890263003: Move RTP/RTCP demuxing logic from BaseChannel to RtpTransport. (Closed)
Patch Set: Disconnect transport channels in method called from Deinit to prevent races during object destructi… Created 3 years, 6 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
« no previous file with comments | « webrtc/pc/rtcpmuxfilter.cc ('k') | webrtc/pc/rtptransport.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 2011 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2011 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
11 #include "webrtc/base/gunit.h" 11 #include "webrtc/base/gunit.h"
12 #include "webrtc/media/base/testutils.h" 12 #include "webrtc/media/base/testutils.h"
13 #include "webrtc/pc/rtcpmuxfilter.h" 13 #include "webrtc/pc/rtcpmuxfilter.h"
14 14
15 TEST(RtcpMuxFilterTest, DemuxRtcpSender) {
16 cricket::RtcpMuxFilter filter;
17 const char data[] = { 0, 73, 0, 0 };
18 const int len = 4;
19
20 // Init state - refuse to demux
21 EXPECT_FALSE(filter.DemuxRtcp(data, len));
22 // After sent offer, demux should be enabled
23 filter.SetOffer(true, cricket::CS_LOCAL);
24 EXPECT_TRUE(filter.DemuxRtcp(data, len));
25 // Remote accepted, demux should be enabled
26 filter.SetAnswer(true, cricket::CS_REMOTE);
27 EXPECT_TRUE(filter.DemuxRtcp(data, len));
28 }
29
30 TEST(RtcpMuxFilterTest, DemuxRtcpReceiver) {
31 cricket::RtcpMuxFilter filter;
32 const char data[] = { 0, 73, 0, 0 };
33 const int len = 4;
34
35 // Init state - refuse to demux
36 EXPECT_FALSE(filter.DemuxRtcp(data, len));
37 // After received offer, demux should not be enabled
38 filter.SetOffer(true, cricket::CS_REMOTE);
39 EXPECT_FALSE(filter.DemuxRtcp(data, len));
40 // We accept, demux is now enabled
41 filter.SetAnswer(true, cricket::CS_LOCAL);
42 EXPECT_TRUE(filter.DemuxRtcp(data, len));
43 }
44
45 TEST(RtcpMuxFilterTest, DemuxRtcpSenderProvisionalAnswer) {
46 cricket::RtcpMuxFilter filter;
47 const char data[] = { 0, 73, 0, 0 };
48 const int len = 4;
49
50 filter.SetOffer(true, cricket::CS_REMOTE);
51 // Received provisional answer without mux enabled.
52 filter.SetProvisionalAnswer(false, cricket::CS_LOCAL);
53 EXPECT_FALSE(filter.DemuxRtcp(data, len));
54 // Received provisional answer with mux enabled.
55 filter.SetProvisionalAnswer(true, cricket::CS_LOCAL);
56 EXPECT_TRUE(filter.DemuxRtcp(data, len));
57 // Remote accepted, demux should be enabled.
58 filter.SetAnswer(true, cricket::CS_LOCAL);
59 EXPECT_TRUE(filter.DemuxRtcp(data, len));
60 }
61
62 TEST(RtcpMuxFilterTest, DemuxRtcpReceiverProvisionalAnswer) {
63 cricket::RtcpMuxFilter filter;
64 const char data[] = { 0, 73, 0, 0 };
65 const int len = 4;
66
67 filter.SetOffer(true, cricket::CS_LOCAL);
68 // Received provisional answer without mux enabled.
69 filter.SetProvisionalAnswer(false, cricket::CS_REMOTE);
70 // After sent offer, demux should be enabled until we have received a
71 // final answer.
72 EXPECT_TRUE(filter.DemuxRtcp(data, len));
73 // Received provisional answer with mux enabled.
74 filter.SetProvisionalAnswer(true, cricket::CS_REMOTE);
75 EXPECT_TRUE(filter.DemuxRtcp(data, len));
76 // Remote accepted, demux should be enabled.
77 filter.SetAnswer(true, cricket::CS_REMOTE);
78 EXPECT_TRUE(filter.DemuxRtcp(data, len));
79 }
80
81 TEST(RtcpMuxFilterTest, IsActiveSender) { 15 TEST(RtcpMuxFilterTest, IsActiveSender) {
82 cricket::RtcpMuxFilter filter; 16 cricket::RtcpMuxFilter filter;
83 // Init state - not active 17 // Init state - not active
84 EXPECT_FALSE(filter.IsActive()); 18 EXPECT_FALSE(filter.IsActive());
85 EXPECT_FALSE(filter.IsProvisionallyActive()); 19 EXPECT_FALSE(filter.IsProvisionallyActive());
86 EXPECT_FALSE(filter.IsFullyActive()); 20 EXPECT_FALSE(filter.IsFullyActive());
87 // After sent offer, demux should not be active. 21 // After sent offer, demux should not be active.
88 filter.SetOffer(true, cricket::CS_LOCAL); 22 filter.SetOffer(true, cricket::CS_LOCAL);
89 EXPECT_FALSE(filter.IsActive()); 23 EXPECT_FALSE(filter.IsActive());
90 EXPECT_FALSE(filter.IsProvisionallyActive()); 24 EXPECT_FALSE(filter.IsProvisionallyActive());
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 EXPECT_FALSE(filter.IsActive()); 149 EXPECT_FALSE(filter.IsActive());
216 150
217 EXPECT_TRUE(filter.SetOffer(false, cricket::CS_REMOTE)); 151 EXPECT_TRUE(filter.SetOffer(false, cricket::CS_REMOTE));
218 EXPECT_TRUE(filter.SetAnswer(false, cricket::CS_LOCAL)); 152 EXPECT_TRUE(filter.SetAnswer(false, cricket::CS_LOCAL));
219 EXPECT_FALSE(filter.IsActive()); 153 EXPECT_FALSE(filter.IsActive());
220 } 154 }
221 155
222 // Test that we can SetActive and then can't deactivate. 156 // Test that we can SetActive and then can't deactivate.
223 TEST(RtcpMuxFilterTest, SetActiveCantDeactivate) { 157 TEST(RtcpMuxFilterTest, SetActiveCantDeactivate) {
224 cricket::RtcpMuxFilter filter; 158 cricket::RtcpMuxFilter filter;
225 const char data[] = { 0, 73, 0, 0 };
226 const int len = 4;
227 159
228 filter.SetActive(); 160 filter.SetActive();
229 EXPECT_TRUE(filter.IsActive()); 161 EXPECT_TRUE(filter.IsActive());
230 EXPECT_TRUE(filter.DemuxRtcp(data, len));
231 162
232 EXPECT_FALSE(filter.SetOffer(false, cricket::CS_LOCAL)); 163 EXPECT_FALSE(filter.SetOffer(false, cricket::CS_LOCAL));
233 EXPECT_TRUE(filter.IsActive()); 164 EXPECT_TRUE(filter.IsActive());
234 EXPECT_TRUE(filter.SetOffer(true, cricket::CS_LOCAL)); 165 EXPECT_TRUE(filter.SetOffer(true, cricket::CS_LOCAL));
235 EXPECT_TRUE(filter.IsActive()); 166 EXPECT_TRUE(filter.IsActive());
236 167
237 EXPECT_FALSE(filter.SetProvisionalAnswer(false, cricket::CS_REMOTE)); 168 EXPECT_FALSE(filter.SetProvisionalAnswer(false, cricket::CS_REMOTE));
238 EXPECT_TRUE(filter.IsActive()); 169 EXPECT_TRUE(filter.IsActive());
239 EXPECT_TRUE(filter.SetProvisionalAnswer(true, cricket::CS_REMOTE)); 170 EXPECT_TRUE(filter.SetProvisionalAnswer(true, cricket::CS_REMOTE));
240 EXPECT_TRUE(filter.IsActive()); 171 EXPECT_TRUE(filter.IsActive());
(...skipping 11 matching lines...) Expand all
252 EXPECT_FALSE(filter.SetProvisionalAnswer(false, cricket::CS_LOCAL)); 183 EXPECT_FALSE(filter.SetProvisionalAnswer(false, cricket::CS_LOCAL));
253 EXPECT_TRUE(filter.IsActive()); 184 EXPECT_TRUE(filter.IsActive());
254 EXPECT_TRUE(filter.SetProvisionalAnswer(true, cricket::CS_LOCAL)); 185 EXPECT_TRUE(filter.SetProvisionalAnswer(true, cricket::CS_LOCAL));
255 EXPECT_TRUE(filter.IsActive()); 186 EXPECT_TRUE(filter.IsActive());
256 187
257 EXPECT_FALSE(filter.SetAnswer(false, cricket::CS_LOCAL)); 188 EXPECT_FALSE(filter.SetAnswer(false, cricket::CS_LOCAL));
258 EXPECT_TRUE(filter.IsActive()); 189 EXPECT_TRUE(filter.IsActive());
259 EXPECT_TRUE(filter.SetAnswer(true, cricket::CS_LOCAL)); 190 EXPECT_TRUE(filter.SetAnswer(true, cricket::CS_LOCAL));
260 EXPECT_TRUE(filter.IsActive()); 191 EXPECT_TRUE(filter.IsActive());
261 } 192 }
OLDNEW
« no previous file with comments | « webrtc/pc/rtcpmuxfilter.cc ('k') | webrtc/pc/rtptransport.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698