Chromium Code Reviews| Index: webrtc/api/peerconnectioninterface_unittest.cc |
| diff --git a/webrtc/api/peerconnectioninterface_unittest.cc b/webrtc/api/peerconnectioninterface_unittest.cc |
| index 14a067995b42205c698b5581d32b73f1972e1449..4d0f8d90cc542cb49d3cbf123efaa36a4b117aae 100644 |
| --- a/webrtc/api/peerconnectioninterface_unittest.cc |
| +++ b/webrtc/api/peerconnectioninterface_unittest.cc |
| @@ -935,6 +935,39 @@ class PeerConnectionInterfaceTest : public testing::Test { |
| ASSERT_TRUE(stream->AddTrack(video_track)); |
| } |
| + void GetStreamCnameInOfferAnswer(std::string& cname, bool is_offer) { |
|
pthatcher1
2016/05/05 18:50:51
I think it would be cleaner to break this up into
Zhi Huang
2016/05/06 01:36:53
This looks nice!
|
| + CreatePeerConnection(); |
| + AddVoiceStream(kStreamLabel1); |
| + scoped_ptr<SessionDescriptionInterface> offer; |
| + ASSERT_TRUE(DoCreateOffer(&offer, nullptr)); |
| + |
| + const cricket::ContentInfo* audio_content = |
| + cricket::GetFirstAudioContent(offer->description()); |
| + const cricket::AudioContentDescription* audio_desc = |
| + static_cast<const cricket::AudioContentDescription*>( |
| + audio_content->description); |
| + if (is_offer) { |
| + cname = audio_desc->streams()[0].cname; |
| + return; |
| + } |
| + |
| + EXPECT_TRUE(DoSetRemoteDescription(offer.release())); |
| + rtc::scoped_ptr<SessionDescriptionInterface> answer; |
| + EXPECT_TRUE(DoCreateAnswer(&answer, nullptr)); |
| + audio_content = cricket::GetFirstAudioContent(answer->description()); |
| + audio_desc = static_cast<const cricket::AudioContentDescription*>( |
| + audio_content->description); |
| + cname = audio_desc->streams()[0].cname; |
| + } |
| + |
| + void GetStreamCnameInOffer(std::string& cname) { |
| + GetStreamCnameInOfferAnswer(cname, true); |
| + } |
| + |
| + void GetStreamCnameInAnswer(std::string& cname) { |
| + GetStreamCnameInOfferAnswer(cname, false); |
|
pthatcher1
2016/05/05 18:50:51
Instead of passing in a non-const ref, please pass
|
| + } |
| + |
| cricket::FakePortAllocator* port_allocator_ = nullptr; |
| scoped_refptr<webrtc::PeerConnectionFactoryInterface> pc_factory_; |
| scoped_refptr<PeerConnectionInterface> pc_; |
| @@ -942,6 +975,23 @@ class PeerConnectionInterfaceTest : public testing::Test { |
| rtc::scoped_refptr<StreamCollection> reference_collection_; |
| }; |
| +// Generate different CNAMEs when PeerConnections are created. |
| +// The CNAME will be generated randomly. It is possible that |
| +// the test fails, though the possibility is low. |
| +TEST_F(PeerConnectionInterfaceTest, CnameGenerationInOffer) { |
| + std::string cname1, cname2; |
| + GetStreamCnameInOffer(cname1); |
| + GetStreamCnameInOffer(cname2); |
| + EXPECT_NE(cname1, cname2); |
| +} |
| + |
| +TEST_F(PeerConnectionInterfaceTest, CnameGenerationInAnswer) { |
| + std::string cname1, cname2; |
| + GetStreamCnameInAnswer(cname1); |
| + GetStreamCnameInAnswer(cname2); |
| + EXPECT_NE(cname1, cname2); |
| +} |
| + |
| TEST_F(PeerConnectionInterfaceTest, |
| CreatePeerConnectionWithDifferentConfigurations) { |
| CreatePeerConnectionWithDifferentConfigurations(); |