| OLD | NEW |
| 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 |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 75 EXPECT_TRUE(filter.DemuxRtcp(data, len)); | 75 EXPECT_TRUE(filter.DemuxRtcp(data, len)); |
| 76 // Remote accepted, demux should be enabled. | 76 // Remote accepted, demux should be enabled. |
| 77 filter.SetAnswer(true, cricket::CS_REMOTE); | 77 filter.SetAnswer(true, cricket::CS_REMOTE); |
| 78 EXPECT_TRUE(filter.DemuxRtcp(data, len)); | 78 EXPECT_TRUE(filter.DemuxRtcp(data, len)); |
| 79 } | 79 } |
| 80 | 80 |
| 81 TEST(RtcpMuxFilterTest, IsActiveSender) { | 81 TEST(RtcpMuxFilterTest, IsActiveSender) { |
| 82 cricket::RtcpMuxFilter filter; | 82 cricket::RtcpMuxFilter filter; |
| 83 // Init state - not active | 83 // Init state - not active |
| 84 EXPECT_FALSE(filter.IsActive()); | 84 EXPECT_FALSE(filter.IsActive()); |
| 85 EXPECT_FALSE(filter.IsProvisionallyActive()); |
| 86 EXPECT_FALSE(filter.IsFullyActive()); |
| 85 // After sent offer, demux should not be active. | 87 // After sent offer, demux should not be active. |
| 86 filter.SetOffer(true, cricket::CS_LOCAL); | 88 filter.SetOffer(true, cricket::CS_LOCAL); |
| 87 EXPECT_FALSE(filter.IsActive()); | 89 EXPECT_FALSE(filter.IsActive()); |
| 90 EXPECT_FALSE(filter.IsProvisionallyActive()); |
| 91 EXPECT_FALSE(filter.IsFullyActive()); |
| 88 // Remote accepted, filter is now active. | 92 // Remote accepted, filter is now active. |
| 89 filter.SetAnswer(true, cricket::CS_REMOTE); | 93 filter.SetAnswer(true, cricket::CS_REMOTE); |
| 90 EXPECT_TRUE(filter.IsActive()); | 94 EXPECT_TRUE(filter.IsActive()); |
| 95 EXPECT_FALSE(filter.IsProvisionallyActive()); |
| 96 EXPECT_TRUE(filter.IsFullyActive()); |
| 91 } | 97 } |
| 92 | 98 |
| 93 // Test that we can receive provisional answer and final answer. | 99 // Test that we can receive provisional answer and final answer. |
| 94 TEST(RtcpMuxFilterTest, ReceivePrAnswer) { | 100 TEST(RtcpMuxFilterTest, ReceivePrAnswer) { |
| 95 cricket::RtcpMuxFilter filter; | 101 cricket::RtcpMuxFilter filter; |
| 96 filter.SetOffer(true, cricket::CS_LOCAL); | 102 filter.SetOffer(true, cricket::CS_LOCAL); |
| 97 // Received provisional answer with mux enabled. | 103 // Received provisional answer with mux enabled. |
| 98 EXPECT_TRUE(filter.SetProvisionalAnswer(true, cricket::CS_REMOTE)); | 104 EXPECT_TRUE(filter.SetProvisionalAnswer(true, cricket::CS_REMOTE)); |
| 99 // We are now active since both sender and receiver support mux. | 105 // We are now provisionally active since both sender and receiver support mux. |
| 100 EXPECT_TRUE(filter.IsActive()); | 106 EXPECT_TRUE(filter.IsActive()); |
| 107 EXPECT_TRUE(filter.IsProvisionallyActive()); |
| 108 EXPECT_FALSE(filter.IsFullyActive()); |
| 101 // Received provisional answer with mux disabled. | 109 // Received provisional answer with mux disabled. |
| 102 EXPECT_TRUE(filter.SetProvisionalAnswer(false, cricket::CS_REMOTE)); | 110 EXPECT_TRUE(filter.SetProvisionalAnswer(false, cricket::CS_REMOTE)); |
| 103 // We are now inactive since the receiver doesn't support mux. | 111 // We are now inactive since the receiver doesn't support mux. |
| 104 EXPECT_FALSE(filter.IsActive()); | 112 EXPECT_FALSE(filter.IsActive()); |
| 113 EXPECT_FALSE(filter.IsProvisionallyActive()); |
| 114 EXPECT_FALSE(filter.IsFullyActive()); |
| 105 // Received final answer with mux enabled. | 115 // Received final answer with mux enabled. |
| 106 EXPECT_TRUE(filter.SetAnswer(true, cricket::CS_REMOTE)); | 116 EXPECT_TRUE(filter.SetAnswer(true, cricket::CS_REMOTE)); |
| 107 EXPECT_TRUE(filter.IsActive()); | 117 EXPECT_TRUE(filter.IsActive()); |
| 118 EXPECT_FALSE(filter.IsProvisionallyActive()); |
| 119 EXPECT_TRUE(filter.IsFullyActive()); |
| 108 } | 120 } |
| 109 | 121 |
| 110 TEST(RtcpMuxFilterTest, IsActiveReceiver) { | 122 TEST(RtcpMuxFilterTest, IsActiveReceiver) { |
| 111 cricket::RtcpMuxFilter filter; | 123 cricket::RtcpMuxFilter filter; |
| 112 // Init state - not active. | 124 // Init state - not active. |
| 113 EXPECT_FALSE(filter.IsActive()); | 125 EXPECT_FALSE(filter.IsActive()); |
| 126 EXPECT_FALSE(filter.IsProvisionallyActive()); |
| 127 EXPECT_FALSE(filter.IsFullyActive()); |
| 114 // After received offer, demux should not be active | 128 // After received offer, demux should not be active |
| 115 filter.SetOffer(true, cricket::CS_REMOTE); | 129 filter.SetOffer(true, cricket::CS_REMOTE); |
| 116 EXPECT_FALSE(filter.IsActive()); | 130 EXPECT_FALSE(filter.IsActive()); |
| 131 EXPECT_FALSE(filter.IsProvisionallyActive()); |
| 132 EXPECT_FALSE(filter.IsFullyActive()); |
| 117 // We accept, filter is now active | 133 // We accept, filter is now active |
| 118 filter.SetAnswer(true, cricket::CS_LOCAL); | 134 filter.SetAnswer(true, cricket::CS_LOCAL); |
| 119 EXPECT_TRUE(filter.IsActive()); | 135 EXPECT_TRUE(filter.IsActive()); |
| 136 EXPECT_FALSE(filter.IsProvisionallyActive()); |
| 137 EXPECT_TRUE(filter.IsFullyActive()); |
| 120 } | 138 } |
| 121 | 139 |
| 122 // Test that we can send provisional answer and final answer. | 140 // Test that we can send provisional answer and final answer. |
| 123 TEST(RtcpMuxFilterTest, SendPrAnswer) { | 141 TEST(RtcpMuxFilterTest, SendPrAnswer) { |
| 124 cricket::RtcpMuxFilter filter; | 142 cricket::RtcpMuxFilter filter; |
| 125 filter.SetOffer(true, cricket::CS_REMOTE); | 143 filter.SetOffer(true, cricket::CS_REMOTE); |
| 126 // Send provisional answer with mux enabled. | 144 // Send provisional answer with mux enabled. |
| 127 EXPECT_TRUE(filter.SetProvisionalAnswer(true, cricket::CS_LOCAL)); | 145 EXPECT_TRUE(filter.SetProvisionalAnswer(true, cricket::CS_LOCAL)); |
| 128 EXPECT_TRUE(filter.IsActive()); | 146 EXPECT_TRUE(filter.IsActive()); |
| 147 EXPECT_TRUE(filter.IsProvisionallyActive()); |
| 148 EXPECT_FALSE(filter.IsFullyActive()); |
| 129 // Received provisional answer with mux disabled. | 149 // Received provisional answer with mux disabled. |
| 130 EXPECT_TRUE(filter.SetProvisionalAnswer(false, cricket::CS_LOCAL)); | 150 EXPECT_TRUE(filter.SetProvisionalAnswer(false, cricket::CS_LOCAL)); |
| 131 EXPECT_FALSE(filter.IsActive()); | 151 EXPECT_FALSE(filter.IsActive()); |
| 152 EXPECT_FALSE(filter.IsProvisionallyActive()); |
| 153 EXPECT_FALSE(filter.IsFullyActive()); |
| 132 // Send final answer with mux enabled. | 154 // Send final answer with mux enabled. |
| 133 EXPECT_TRUE(filter.SetAnswer(true, cricket::CS_LOCAL)); | 155 EXPECT_TRUE(filter.SetAnswer(true, cricket::CS_LOCAL)); |
| 134 EXPECT_TRUE(filter.IsActive()); | 156 EXPECT_TRUE(filter.IsActive()); |
| 157 EXPECT_FALSE(filter.IsProvisionallyActive()); |
| 158 EXPECT_TRUE(filter.IsFullyActive()); |
| 135 } | 159 } |
| 136 | 160 |
| 137 // Test that we can enable the filter in an update. | 161 // Test that we can enable the filter in an update. |
| 138 // We can not disable the filter later since that would mean we need to | 162 // We can not disable the filter later since that would mean we need to |
| 139 // recreate a rtcp transport channel. | 163 // recreate a rtcp transport channel. |
| 140 TEST(RtcpMuxFilterTest, EnableFilterDuringUpdate) { | 164 TEST(RtcpMuxFilterTest, EnableFilterDuringUpdate) { |
| 141 cricket::RtcpMuxFilter filter; | 165 cricket::RtcpMuxFilter filter; |
| 142 EXPECT_FALSE(filter.IsActive()); | 166 EXPECT_FALSE(filter.IsActive()); |
| 143 EXPECT_TRUE(filter.SetOffer(false, cricket::CS_REMOTE)); | 167 EXPECT_TRUE(filter.SetOffer(false, cricket::CS_REMOTE)); |
| 144 EXPECT_TRUE(filter.SetAnswer(false, cricket::CS_LOCAL)); | 168 EXPECT_TRUE(filter.SetAnswer(false, cricket::CS_LOCAL)); |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 EXPECT_FALSE(filter.SetProvisionalAnswer(false, cricket::CS_LOCAL)); | 252 EXPECT_FALSE(filter.SetProvisionalAnswer(false, cricket::CS_LOCAL)); |
| 229 EXPECT_TRUE(filter.IsActive()); | 253 EXPECT_TRUE(filter.IsActive()); |
| 230 EXPECT_TRUE(filter.SetProvisionalAnswer(true, cricket::CS_LOCAL)); | 254 EXPECT_TRUE(filter.SetProvisionalAnswer(true, cricket::CS_LOCAL)); |
| 231 EXPECT_TRUE(filter.IsActive()); | 255 EXPECT_TRUE(filter.IsActive()); |
| 232 | 256 |
| 233 EXPECT_FALSE(filter.SetAnswer(false, cricket::CS_LOCAL)); | 257 EXPECT_FALSE(filter.SetAnswer(false, cricket::CS_LOCAL)); |
| 234 EXPECT_TRUE(filter.IsActive()); | 258 EXPECT_TRUE(filter.IsActive()); |
| 235 EXPECT_TRUE(filter.SetAnswer(true, cricket::CS_LOCAL)); | 259 EXPECT_TRUE(filter.SetAnswer(true, cricket::CS_LOCAL)); |
| 236 EXPECT_TRUE(filter.IsActive()); | 260 EXPECT_TRUE(filter.IsActive()); |
| 237 } | 261 } |
| OLD | NEW |