| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2004 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2004 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 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 260 if (c1.size() != c2.size()) | 260 if (c1.size() != c2.size()) |
| 261 return false; | 261 return false; |
| 262 for (size_t i = 0; i < c1.size(); ++i) | 262 for (size_t i = 0; i < c1.size(); ++i) |
| 263 if (c1[i].tag != c2[i].tag || c1[i].cipher_suite != c2[i].cipher_suite || | 263 if (c1[i].tag != c2[i].tag || c1[i].cipher_suite != c2[i].cipher_suite || |
| 264 c1[i].key_params != c2[i].key_params || | 264 c1[i].key_params != c2[i].key_params || |
| 265 c1[i].session_params != c2[i].session_params) | 265 c1[i].session_params != c2[i].session_params) |
| 266 return false; | 266 return false; |
| 267 return true; | 267 return true; |
| 268 } | 268 } |
| 269 | 269 |
| 270 // Returns true if the transport info contains "renomination" as an |
| 271 // ICE option. |
| 272 bool GetIceRenomination(const TransportInfo* transport_info) { |
| 273 const std::vector<std::string>& ice_options = |
| 274 transport_info->description.transport_options; |
| 275 auto iter = std::find(ice_options.begin(), ice_options.end(), |
| 276 cricket::ICE_RENOMINATION_STR); |
| 277 return iter != ice_options.end(); |
| 278 } |
| 279 |
| 270 void TestTransportInfo(bool offer, const MediaSessionOptions& options, | 280 void TestTransportInfo(bool offer, const MediaSessionOptions& options, |
| 271 bool has_current_desc) { | 281 bool has_current_desc) { |
| 272 const std::string current_audio_ufrag = "current_audio_ufrag"; | 282 const std::string current_audio_ufrag = "current_audio_ufrag"; |
| 273 const std::string current_audio_pwd = "current_audio_pwd"; | 283 const std::string current_audio_pwd = "current_audio_pwd"; |
| 274 const std::string current_video_ufrag = "current_video_ufrag"; | 284 const std::string current_video_ufrag = "current_video_ufrag"; |
| 275 const std::string current_video_pwd = "current_video_pwd"; | 285 const std::string current_video_pwd = "current_video_pwd"; |
| 276 const std::string current_data_ufrag = "current_data_ufrag"; | 286 const std::string current_data_ufrag = "current_data_ufrag"; |
| 277 const std::string current_data_pwd = "current_data_pwd"; | 287 const std::string current_data_pwd = "current_data_pwd"; |
| 278 std::unique_ptr<SessionDescription> current_desc; | 288 std::unique_ptr<SessionDescription> current_desc; |
| 279 std::unique_ptr<SessionDescription> desc; | 289 std::unique_ptr<SessionDescription> desc; |
| (...skipping 25 matching lines...) Expand all Loading... |
| 305 EXPECT_TRUE(ti_audio != NULL); | 315 EXPECT_TRUE(ti_audio != NULL); |
| 306 if (has_current_desc) { | 316 if (has_current_desc) { |
| 307 EXPECT_EQ(current_audio_ufrag, ti_audio->description.ice_ufrag); | 317 EXPECT_EQ(current_audio_ufrag, ti_audio->description.ice_ufrag); |
| 308 EXPECT_EQ(current_audio_pwd, ti_audio->description.ice_pwd); | 318 EXPECT_EQ(current_audio_pwd, ti_audio->description.ice_pwd); |
| 309 } else { | 319 } else { |
| 310 EXPECT_EQ(static_cast<size_t>(cricket::ICE_UFRAG_LENGTH), | 320 EXPECT_EQ(static_cast<size_t>(cricket::ICE_UFRAG_LENGTH), |
| 311 ti_audio->description.ice_ufrag.size()); | 321 ti_audio->description.ice_ufrag.size()); |
| 312 EXPECT_EQ(static_cast<size_t>(cricket::ICE_PWD_LENGTH), | 322 EXPECT_EQ(static_cast<size_t>(cricket::ICE_PWD_LENGTH), |
| 313 ti_audio->description.ice_pwd.size()); | 323 ti_audio->description.ice_pwd.size()); |
| 314 } | 324 } |
| 325 EXPECT_EQ(options.enable_ice_renomination, GetIceRenomination(ti_audio)); |
| 315 | 326 |
| 316 } else { | 327 } else { |
| 317 EXPECT_TRUE(ti_audio == NULL); | 328 EXPECT_TRUE(ti_audio == NULL); |
| 318 } | 329 } |
| 319 const TransportInfo* ti_video = desc->GetTransportInfoByName("video"); | 330 const TransportInfo* ti_video = desc->GetTransportInfoByName("video"); |
| 320 if (options.has_video()) { | 331 if (options.has_video()) { |
| 321 EXPECT_TRUE(ti_video != NULL); | 332 EXPECT_TRUE(ti_video != NULL); |
| 322 if (options.bundle_enabled) { | 333 if (options.bundle_enabled) { |
| 323 EXPECT_EQ(ti_audio->description.ice_ufrag, | 334 EXPECT_EQ(ti_audio->description.ice_ufrag, |
| 324 ti_video->description.ice_ufrag); | 335 ti_video->description.ice_ufrag); |
| 325 EXPECT_EQ(ti_audio->description.ice_pwd, | 336 EXPECT_EQ(ti_audio->description.ice_pwd, |
| 326 ti_video->description.ice_pwd); | 337 ti_video->description.ice_pwd); |
| 327 } else { | 338 } else { |
| 328 if (has_current_desc) { | 339 if (has_current_desc) { |
| 329 EXPECT_EQ(current_video_ufrag, ti_video->description.ice_ufrag); | 340 EXPECT_EQ(current_video_ufrag, ti_video->description.ice_ufrag); |
| 330 EXPECT_EQ(current_video_pwd, ti_video->description.ice_pwd); | 341 EXPECT_EQ(current_video_pwd, ti_video->description.ice_pwd); |
| 331 } else { | 342 } else { |
| 332 EXPECT_EQ(static_cast<size_t>(cricket::ICE_UFRAG_LENGTH), | 343 EXPECT_EQ(static_cast<size_t>(cricket::ICE_UFRAG_LENGTH), |
| 333 ti_video->description.ice_ufrag.size()); | 344 ti_video->description.ice_ufrag.size()); |
| 334 EXPECT_EQ(static_cast<size_t>(cricket::ICE_PWD_LENGTH), | 345 EXPECT_EQ(static_cast<size_t>(cricket::ICE_PWD_LENGTH), |
| 335 ti_video->description.ice_pwd.size()); | 346 ti_video->description.ice_pwd.size()); |
| 336 } | 347 } |
| 337 } | 348 } |
| 349 EXPECT_EQ(options.enable_ice_renomination, GetIceRenomination(ti_video)); |
| 338 } else { | 350 } else { |
| 339 EXPECT_TRUE(ti_video == NULL); | 351 EXPECT_TRUE(ti_video == NULL); |
| 340 } | 352 } |
| 341 const TransportInfo* ti_data = desc->GetTransportInfoByName("data"); | 353 const TransportInfo* ti_data = desc->GetTransportInfoByName("data"); |
| 342 if (options.has_data()) { | 354 if (options.has_data()) { |
| 343 EXPECT_TRUE(ti_data != NULL); | 355 EXPECT_TRUE(ti_data != NULL); |
| 344 if (options.bundle_enabled) { | 356 if (options.bundle_enabled) { |
| 345 EXPECT_EQ(ti_audio->description.ice_ufrag, | 357 EXPECT_EQ(ti_audio->description.ice_ufrag, |
| 346 ti_data->description.ice_ufrag); | 358 ti_data->description.ice_ufrag); |
| 347 EXPECT_EQ(ti_audio->description.ice_pwd, | 359 EXPECT_EQ(ti_audio->description.ice_pwd, |
| 348 ti_data->description.ice_pwd); | 360 ti_data->description.ice_pwd); |
| 349 } else { | 361 } else { |
| 350 if (has_current_desc) { | 362 if (has_current_desc) { |
| 351 EXPECT_EQ(current_data_ufrag, ti_data->description.ice_ufrag); | 363 EXPECT_EQ(current_data_ufrag, ti_data->description.ice_ufrag); |
| 352 EXPECT_EQ(current_data_pwd, ti_data->description.ice_pwd); | 364 EXPECT_EQ(current_data_pwd, ti_data->description.ice_pwd); |
| 353 } else { | 365 } else { |
| 354 EXPECT_EQ(static_cast<size_t>(cricket::ICE_UFRAG_LENGTH), | 366 EXPECT_EQ(static_cast<size_t>(cricket::ICE_UFRAG_LENGTH), |
| 355 ti_data->description.ice_ufrag.size()); | 367 ti_data->description.ice_ufrag.size()); |
| 356 EXPECT_EQ(static_cast<size_t>(cricket::ICE_PWD_LENGTH), | 368 EXPECT_EQ(static_cast<size_t>(cricket::ICE_PWD_LENGTH), |
| 357 ti_data->description.ice_pwd.size()); | 369 ti_data->description.ice_pwd.size()); |
| 358 } | 370 } |
| 359 } | 371 } |
| 372 EXPECT_EQ(options.enable_ice_renomination, GetIceRenomination(ti_data)); |
| 373 |
| 360 } else { | 374 } else { |
| 361 EXPECT_TRUE(ti_video == NULL); | 375 EXPECT_TRUE(ti_video == NULL); |
| 362 } | 376 } |
| 363 } | 377 } |
| 364 | 378 |
| 365 void TestCryptoWithBundle(bool offer) { | 379 void TestCryptoWithBundle(bool offer) { |
| 366 f1_.set_secure(SEC_ENABLED); | 380 f1_.set_secure(SEC_ENABLED); |
| 367 MediaSessionOptions options; | 381 MediaSessionOptions options; |
| 368 options.recv_audio = true; | 382 options.recv_audio = true; |
| 369 options.recv_video = true; | 383 options.recv_video = true; |
| (...skipping 1763 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2133 } | 2147 } |
| 2134 | 2148 |
| 2135 // The below TestTransportInfoXXX tests create different offers/answers, and | 2149 // The below TestTransportInfoXXX tests create different offers/answers, and |
| 2136 // ensure the TransportInfo in the SessionDescription matches what we expect. | 2150 // ensure the TransportInfo in the SessionDescription matches what we expect. |
| 2137 TEST_F(MediaSessionDescriptionFactoryTest, TestTransportInfoOfferAudio) { | 2151 TEST_F(MediaSessionDescriptionFactoryTest, TestTransportInfoOfferAudio) { |
| 2138 MediaSessionOptions options; | 2152 MediaSessionOptions options; |
| 2139 options.recv_audio = true; | 2153 options.recv_audio = true; |
| 2140 TestTransportInfo(true, options, false); | 2154 TestTransportInfo(true, options, false); |
| 2141 } | 2155 } |
| 2142 | 2156 |
| 2157 TEST_F(MediaSessionDescriptionFactoryTest, |
| 2158 TestTransportInfoOfferIceRenomination) { |
| 2159 MediaSessionOptions options; |
| 2160 options.enable_ice_renomination = true; |
| 2161 TestTransportInfo(true, options, false); |
| 2162 } |
| 2163 |
| 2143 TEST_F(MediaSessionDescriptionFactoryTest, TestTransportInfoOfferAudioCurrent) { | 2164 TEST_F(MediaSessionDescriptionFactoryTest, TestTransportInfoOfferAudioCurrent) { |
| 2144 MediaSessionOptions options; | 2165 MediaSessionOptions options; |
| 2145 options.recv_audio = true; | 2166 options.recv_audio = true; |
| 2146 TestTransportInfo(true, options, true); | 2167 TestTransportInfo(true, options, true); |
| 2147 } | 2168 } |
| 2148 | 2169 |
| 2149 TEST_F(MediaSessionDescriptionFactoryTest, TestTransportInfoOfferMultimedia) { | 2170 TEST_F(MediaSessionDescriptionFactoryTest, TestTransportInfoOfferMultimedia) { |
| 2150 MediaSessionOptions options; | 2171 MediaSessionOptions options; |
| 2151 options.recv_audio = true; | 2172 options.recv_audio = true; |
| 2152 options.recv_video = true; | 2173 options.recv_video = true; |
| (...skipping 29 matching lines...) Expand all Loading... |
| 2182 TestTransportInfo(true, options, true); | 2203 TestTransportInfo(true, options, true); |
| 2183 } | 2204 } |
| 2184 | 2205 |
| 2185 TEST_F(MediaSessionDescriptionFactoryTest, TestTransportInfoAnswerAudio) { | 2206 TEST_F(MediaSessionDescriptionFactoryTest, TestTransportInfoAnswerAudio) { |
| 2186 MediaSessionOptions options; | 2207 MediaSessionOptions options; |
| 2187 options.recv_audio = true; | 2208 options.recv_audio = true; |
| 2188 TestTransportInfo(false, options, false); | 2209 TestTransportInfo(false, options, false); |
| 2189 } | 2210 } |
| 2190 | 2211 |
| 2191 TEST_F(MediaSessionDescriptionFactoryTest, | 2212 TEST_F(MediaSessionDescriptionFactoryTest, |
| 2192 TestTransportInfoAnswerAudioCurrent) { | 2213 TestTransportInfoAnswerIceRenomination) { |
| 2214 MediaSessionOptions options; |
| 2215 options.enable_ice_renomination = true; |
| 2216 TestTransportInfo(false, options, false); |
| 2217 } |
| 2218 |
| 2219 TEST_F(MediaSessionDescriptionFactoryTest, |
| 2220 TestTransportInfoAnswerAudioCurrent) { |
| 2193 MediaSessionOptions options; | 2221 MediaSessionOptions options; |
| 2194 options.recv_audio = true; | 2222 options.recv_audio = true; |
| 2195 TestTransportInfo(false, options, true); | 2223 TestTransportInfo(false, options, true); |
| 2196 } | 2224 } |
| 2197 | 2225 |
| 2198 TEST_F(MediaSessionDescriptionFactoryTest, TestTransportInfoAnswerMultimedia) { | 2226 TEST_F(MediaSessionDescriptionFactoryTest, TestTransportInfoAnswerMultimedia) { |
| 2199 MediaSessionOptions options; | 2227 MediaSessionOptions options; |
| 2200 options.recv_audio = true; | 2228 options.recv_audio = true; |
| 2201 options.recv_video = true; | 2229 options.recv_video = true; |
| 2202 options.data_channel_type = cricket::DCT_RTP; | 2230 options.data_channel_type = cricket::DCT_RTP; |
| (...skipping 673 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2876 ::testing::Combine( | 2904 ::testing::Combine( |
| 2877 ::testing::Values(cricket::MD_SENDONLY, | 2905 ::testing::Values(cricket::MD_SENDONLY, |
| 2878 cricket::MD_RECVONLY, | 2906 cricket::MD_RECVONLY, |
| 2879 cricket::MD_SENDRECV, | 2907 cricket::MD_SENDRECV, |
| 2880 cricket::MD_INACTIVE), | 2908 cricket::MD_INACTIVE), |
| 2881 ::testing::Values(cricket::MD_SENDONLY, | 2909 ::testing::Values(cricket::MD_SENDONLY, |
| 2882 cricket::MD_RECVONLY, | 2910 cricket::MD_RECVONLY, |
| 2883 cricket::MD_SENDRECV, | 2911 cricket::MD_SENDRECV, |
| 2884 cricket::MD_INACTIVE), | 2912 cricket::MD_INACTIVE), |
| 2885 ::testing::Bool())); | 2913 ::testing::Bool())); |
| OLD | NEW |