diff options
author | deadbeef <deadbeef@webrtc.org> | 2015-09-23 11:50:27 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-09-23 18:50:31 +0000 |
commit | cbecd358e032021eac11fb13e04ec7f070d4f407 (patch) | |
tree | 25c52b9860b8deefb399c2aeb5b6c415606e4ffc /talk/app/webrtc/statscollector_unittest.cc | |
parent | d0b5b091e4f2724ed2aaf79a77d00487e041f642 (diff) | |
download | webrtc-cbecd358e032021eac11fb13e04ec7f070d4f407.tar.gz |
Reland of TransportController refactoring. (patchset #1 id:1 of https://codereview.webrtc.org/1358413003/ )
Reason for revert:
This CL just landed: https://codereview.chromium.org/1323243006/
Which fixes the FYI bots for the original CL, and breaks them for this revert.
Original issue's description:
> Revert of TransportController refactoring. (patchset #6 id:100001 of https://codereview.webrtc.org/1350523003/ )
>
> Reason for revert:
> This CL causes problems with the WebRTC-in-Chromium FYI bots. Presumably it needs to be done in several steps, where removed files are emptied instead of removed in the first step.
>
> Original issue's description:
> > TransportController refactoring.
> >
> > Getting rid of TransportProxy, and in its place adding a
> > TransportController class which will facilitate access to and manage
> > the lifetimes of Transports. These Transports will now be accessed
> > solely from the worker thread, simplifying their implementation.
> >
> > This refactoring also pulls Transport-related code out of BaseSession.
> > Which means that BaseChannels will now rely on the TransportController
> > interface to create channels, rather than BaseSession.
> >
> > Committed: https://crrev.com/47ee2f3b9f33e8938948c482c921d4e13a3acd83
> > Cr-Commit-Position: refs/heads/master@{#10022}
>
> TBR=pthatcher@webrtc.org,deadbeef@webrtc.org
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://crrev.com/a81a42f584baa0d93a4b93da9632415e8922450c
> Cr-Commit-Position: refs/heads/master@{#10024}
TBR=pthatcher@webrtc.org,torbjorng@webrtc.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.webrtc.org/1361773005
Cr-Commit-Position: refs/heads/master@{#10036}
Diffstat (limited to 'talk/app/webrtc/statscollector_unittest.cc')
-rw-r--r-- | talk/app/webrtc/statscollector_unittest.cc | 172 |
1 files changed, 99 insertions, 73 deletions
diff --git a/talk/app/webrtc/statscollector_unittest.cc b/talk/app/webrtc/statscollector_unittest.cc index 9b037c4149..0a9d947841 100644 --- a/talk/app/webrtc/statscollector_unittest.cc +++ b/talk/app/webrtc/statscollector_unittest.cc @@ -27,6 +27,8 @@ #include <stdio.h> +#include <algorithm> + #include "talk/app/webrtc/statscollector.h" #include "talk/app/webrtc/mediastream.h" @@ -45,7 +47,7 @@ #include "webrtc/base/fakesslidentity.h" #include "webrtc/base/gunit.h" #include "webrtc/base/network.h" -#include "webrtc/p2p/base/fakesession.h" +#include "webrtc/p2p/base/faketransportcontroller.h" using rtc::scoped_ptr; using testing::_; @@ -89,7 +91,12 @@ class MockWebRtcSession : public webrtc::WebRtcSession { MOCK_METHOD2(GetLocalTrackIdBySsrc, bool(uint32, std::string*)); MOCK_METHOD2(GetRemoteTrackIdBySsrc, bool(uint32, std::string*)); MOCK_METHOD1(GetTransportStats, bool(cricket::SessionStats*)); - MOCK_METHOD1(GetTransport, cricket::Transport*(const std::string&)); + MOCK_METHOD2(GetLocalCertificate, + bool(const std::string& transport_name, + rtc::scoped_refptr<rtc::RTCCertificate>* certificate)); + MOCK_METHOD2(GetRemoteSSLCertificate, + bool(const std::string& transport_name, + rtc::SSLCertificate** cert)); }; class MockVideoMediaChannel : public cricket::FakeVideoMediaChannel { @@ -500,7 +507,7 @@ class StatsCollectorTest : public testing::Test { cricket::TransportStats transport_stats; cricket::TransportChannelStats channel_stats; channel_stats.component = 1; - transport_stats.content_name = kTransportName; + transport_stats.transport_name = kTransportName; transport_stats.channel_stats.push_back(channel_stats); session_stats_.transport_stats[kTransportName] = transport_stats; @@ -647,36 +654,27 @@ class StatsCollectorTest : public testing::Test { channel_stats.ssl_cipher = "the-ssl-cipher"; cricket::TransportStats transport_stats; - transport_stats.content_name = "audio"; + transport_stats.transport_name = "audio"; transport_stats.channel_stats.push_back(channel_stats); cricket::SessionStats session_stats; - session_stats.transport_stats[transport_stats.content_name] = + session_stats.transport_stats[transport_stats.transport_name] = transport_stats; - // Fake certificates to report. + // Fake certificate to report rtc::scoped_refptr<rtc::RTCCertificate> local_certificate( rtc::RTCCertificate::Create(rtc::scoped_ptr<rtc::FakeSSLIdentity>( - new rtc::FakeSSLIdentity(local_cert)).Pass())); - rtc::scoped_ptr<rtc::FakeSSLCertificate> remote_cert_copy( - remote_cert.GetReference()); - - // Fake transport object. - rtc::scoped_ptr<cricket::FakeTransport> transport( - new cricket::FakeTransport( - session_.signaling_thread(), - session_.worker_thread(), - transport_stats.content_name)); - transport->SetCertificate(local_certificate); - cricket::FakeTransportChannel* channel = - static_cast<cricket::FakeTransportChannel*>( - transport->CreateChannel(channel_stats.component)); - EXPECT_FALSE(channel == NULL); - channel->SetRemoteSSLCertificate(remote_cert_copy.get()); + new rtc::FakeSSLIdentity(local_cert)) + .Pass())); // Configure MockWebRtcSession - EXPECT_CALL(session_, GetTransport(transport_stats.content_name)) - .WillRepeatedly(Return(transport.get())); + EXPECT_CALL(session_, + GetLocalCertificate(transport_stats.transport_name, _)) + .WillOnce(DoAll(SetArgPointee<1>(local_certificate), Return(true))); + EXPECT_CALL(session_, + GetRemoteSSLCertificate(transport_stats.transport_name, _)) + .WillOnce( + DoAll(SetArgPointee<1>(remote_cert.GetReference()), Return(true))); EXPECT_CALL(session_, GetTransportStats(_)) .WillOnce(DoAll(SetArgPointee<0>(session_stats), Return(true))); @@ -790,14 +788,17 @@ TEST_F(StatsCollectorTest, ExtractDataInfo) { TEST_F(StatsCollectorTest, BytesCounterHandles64Bits) { StatsCollectorForTest stats(&session_); + EXPECT_CALL(session_, GetLocalCertificate(_, _)) + .WillRepeatedly(Return(false)); + EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) + .WillRepeatedly(Return(false)); + const char kVideoChannelName[] = "video"; InitSessionStats(kVideoChannelName); EXPECT_CALL(session_, GetTransportStats(_)) .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), Return(true))); - EXPECT_CALL(session_, GetTransport(_)) - .WillRepeatedly(Return(static_cast<cricket::Transport*>(NULL))); MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); cricket::VideoChannel video_channel(rtc::Thread::Current(), @@ -833,14 +834,17 @@ TEST_F(StatsCollectorTest, BytesCounterHandles64Bits) { TEST_F(StatsCollectorTest, BandwidthEstimationInfoIsReported) { StatsCollectorForTest stats(&session_); + EXPECT_CALL(session_, GetLocalCertificate(_, _)) + .WillRepeatedly(Return(false)); + EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) + .WillRepeatedly(Return(false)); + const char kVideoChannelName[] = "video"; InitSessionStats(kVideoChannelName); EXPECT_CALL(session_, GetTransportStats(_)) .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), Return(true))); - EXPECT_CALL(session_, GetTransport(_)) - .WillRepeatedly(Return(static_cast<cricket::Transport*>(NULL))); MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); cricket::VideoChannel video_channel(rtc::Thread::Current(), @@ -946,13 +950,16 @@ TEST_F(StatsCollectorTest, TrackObjectExistsWithoutUpdateStats) { TEST_F(StatsCollectorTest, TrackAndSsrcObjectExistAfterUpdateSsrcStats) { StatsCollectorForTest stats(&session_); + EXPECT_CALL(session_, GetLocalCertificate(_, _)) + .WillRepeatedly(Return(false)); + EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) + .WillRepeatedly(Return(false)); + const char kVideoChannelName[] = "video"; InitSessionStats(kVideoChannelName); EXPECT_CALL(session_, GetTransportStats(_)) .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), Return(true))); - EXPECT_CALL(session_, GetTransport(_)) - .WillRepeatedly(Return(static_cast<cricket::Transport*>(NULL))); MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); cricket::VideoChannel video_channel(rtc::Thread::Current(), @@ -1011,11 +1018,13 @@ TEST_F(StatsCollectorTest, TrackAndSsrcObjectExistAfterUpdateSsrcStats) { TEST_F(StatsCollectorTest, TransportObjectLinkedFromSsrcObject) { StatsCollectorForTest stats(&session_); - // Ignore unused callback (logspam). - EXPECT_CALL(session_, GetTransport(_)) - .WillRepeatedly(Return(static_cast<cricket::Transport*>(NULL))); + EXPECT_CALL(session_, GetLocalCertificate(_, _)) + .WillRepeatedly(Return(false)); + EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) + .WillRepeatedly(Return(false)); + MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); - // The content_name known by the video channel. + // The transport_name known by the video channel. const std::string kVcName("vcname"); cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, NULL, kVcName, false); @@ -1073,7 +1082,7 @@ TEST_F(StatsCollectorTest, RemoteSsrcInfoIsAbsent) { StatsCollectorForTest stats(&session_); MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); - // The content_name known by the video channel. + // The transport_name known by the video channel. const std::string kVcName("vcname"); cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, NULL, kVcName, false); @@ -1096,11 +1105,13 @@ TEST_F(StatsCollectorTest, RemoteSsrcInfoIsAbsent) { TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) { StatsCollectorForTest stats(&session_); - // Ignore unused callback (logspam). - EXPECT_CALL(session_, GetTransport(_)) - .WillRepeatedly(Return(static_cast<cricket::Transport*>(NULL))); + EXPECT_CALL(session_, GetLocalCertificate(_, _)) + .WillRepeatedly(Return(false)); + EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) + .WillRepeatedly(Return(false)); + MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); - // The content_name known by the video channel. + // The transport_name known by the video channel. const std::string kVcName("vcname"); cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, NULL, kVcName, false); @@ -1145,13 +1156,16 @@ TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) { TEST_F(StatsCollectorTest, ReportsFromRemoteTrack) { StatsCollectorForTest stats(&session_); + EXPECT_CALL(session_, GetLocalCertificate(_, _)) + .WillRepeatedly(Return(false)); + EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) + .WillRepeatedly(Return(false)); + const char kVideoChannelName[] = "video"; InitSessionStats(kVideoChannelName); EXPECT_CALL(session_, GetTransportStats(_)) .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), Return(true))); - EXPECT_CALL(session_, GetTransport(_)) - .WillRepeatedly(Return(static_cast<cricket::Transport*>(NULL))); MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); cricket::VideoChannel video_channel(rtc::Thread::Current(), @@ -1330,6 +1344,11 @@ TEST_F(StatsCollectorTest, ChainlessCertificateReportsCreated) { TEST_F(StatsCollectorTest, NoTransport) { StatsCollectorForTest stats(&session_); + EXPECT_CALL(session_, GetLocalCertificate(_, _)) + .WillRepeatedly(Return(false)); + EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) + .WillRepeatedly(Return(false)); + StatsReports reports; // returned values. // Fake stats to process. @@ -1337,16 +1356,14 @@ TEST_F(StatsCollectorTest, NoTransport) { channel_stats.component = 1; cricket::TransportStats transport_stats; - transport_stats.content_name = "audio"; + transport_stats.transport_name = "audio"; transport_stats.channel_stats.push_back(channel_stats); cricket::SessionStats session_stats; - session_stats.transport_stats[transport_stats.content_name] = + session_stats.transport_stats[transport_stats.transport_name] = transport_stats; // Configure MockWebRtcSession - EXPECT_CALL(session_, GetTransport(transport_stats.content_name)) - .WillRepeatedly(ReturnNull()); EXPECT_CALL(session_, GetTransportStats(_)) .WillOnce(DoAll(SetArgPointee<0>(session_stats), Return(true))); @@ -1389,6 +1406,11 @@ TEST_F(StatsCollectorTest, NoTransport) { TEST_F(StatsCollectorTest, NoCertificates) { StatsCollectorForTest stats(&session_); + EXPECT_CALL(session_, GetLocalCertificate(_, _)) + .WillRepeatedly(Return(false)); + EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) + .WillRepeatedly(Return(false)); + StatsReports reports; // returned values. // Fake stats to process. @@ -1396,23 +1418,18 @@ TEST_F(StatsCollectorTest, NoCertificates) { channel_stats.component = 1; cricket::TransportStats transport_stats; - transport_stats.content_name = "audio"; + transport_stats.transport_name = "audio"; transport_stats.channel_stats.push_back(channel_stats); cricket::SessionStats session_stats; - session_stats.transport_stats[transport_stats.content_name] = + session_stats.transport_stats[transport_stats.transport_name] = transport_stats; // Fake transport object. rtc::scoped_ptr<cricket::FakeTransport> transport( - new cricket::FakeTransport( - session_.signaling_thread(), - session_.worker_thread(), - transport_stats.content_name)); + new cricket::FakeTransport(transport_stats.transport_name)); // Configure MockWebRtcSession - EXPECT_CALL(session_, GetTransport(transport_stats.content_name)) - .WillRepeatedly(Return(transport.get())); EXPECT_CALL(session_, GetTransportStats(_)) .WillOnce(DoAll(SetArgPointee<0>(session_stats), Return(true))); @@ -1458,12 +1475,13 @@ TEST_F(StatsCollectorTest, UnsupportedDigestIgnored) { TEST_F(StatsCollectorTest, GetStatsFromLocalAudioTrack) { StatsCollectorForTest stats(&session_); - // Ignore unused callback (logspam). - EXPECT_CALL(session_, GetTransport(_)) - .WillRepeatedly(Return(static_cast<cricket::Transport*>(NULL))); + EXPECT_CALL(session_, GetLocalCertificate(_, _)) + .WillRepeatedly(Return(false)); + EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) + .WillRepeatedly(Return(false)); MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); - // The content_name known by the voice channel. + // The transport_name known by the voice channel. const std::string kVcName("vcname"); cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, media_channel, NULL, kVcName, false); @@ -1492,11 +1510,13 @@ TEST_F(StatsCollectorTest, GetStatsFromLocalAudioTrack) { TEST_F(StatsCollectorTest, GetStatsFromRemoteStream) { StatsCollectorForTest stats(&session_); - // Ignore unused callback (logspam). - EXPECT_CALL(session_, GetTransport(_)) - .WillRepeatedly(Return(static_cast<cricket::Transport*>(NULL))); + EXPECT_CALL(session_, GetLocalCertificate(_, _)) + .WillRepeatedly(Return(false)); + EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) + .WillRepeatedly(Return(false)); + MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); - // The content_name known by the voice channel. + // The transport_name known by the voice channel. const std::string kVcName("vcname"); cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, media_channel, NULL, kVcName, false); @@ -1519,11 +1539,13 @@ TEST_F(StatsCollectorTest, GetStatsFromRemoteStream) { TEST_F(StatsCollectorTest, GetStatsAfterRemoveAudioStream) { StatsCollectorForTest stats(&session_); - // Ignore unused callback (logspam). - EXPECT_CALL(session_, GetTransport(_)) - .WillRepeatedly(Return(static_cast<cricket::Transport*>(NULL))); + EXPECT_CALL(session_, GetLocalCertificate(_, _)) + .WillRepeatedly(Return(false)); + EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) + .WillRepeatedly(Return(false)); + MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); - // The content_name known by the voice channel. + // The transport_name known by the voice channel. const std::string kVcName("vcname"); cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, media_channel, NULL, kVcName, false); @@ -1578,11 +1600,13 @@ TEST_F(StatsCollectorTest, GetStatsAfterRemoveAudioStream) { TEST_F(StatsCollectorTest, LocalAndRemoteTracksWithSameSsrc) { StatsCollectorForTest stats(&session_); - // Ignore unused callback (logspam). - EXPECT_CALL(session_, GetTransport(_)) - .WillRepeatedly(Return(static_cast<cricket::Transport*>(NULL))); + EXPECT_CALL(session_, GetLocalCertificate(_, _)) + .WillRepeatedly(Return(false)); + EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) + .WillRepeatedly(Return(false)); + MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); - // The content_name known by the voice channel. + // The transport_name known by the voice channel. const std::string kVcName("vcname"); cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, media_channel, NULL, kVcName, false); @@ -1663,11 +1687,13 @@ TEST_F(StatsCollectorTest, LocalAndRemoteTracksWithSameSsrc) { TEST_F(StatsCollectorTest, TwoLocalTracksWithSameSsrc) { StatsCollectorForTest stats(&session_); - // Ignore unused callback (logspam). - EXPECT_CALL(session_, GetTransport(_)) - .WillRepeatedly(Return(static_cast<cricket::Transport*>(NULL))); + EXPECT_CALL(session_, GetLocalCertificate(_, _)) + .WillRepeatedly(Return(false)); + EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) + .WillRepeatedly(Return(false)); + MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); - // The content_name known by the voice channel. + // The transport_name known by the voice channel. const std::string kVcName("vcname"); cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, media_channel, NULL, kVcName, false); |