Index: talk/app/webrtc/statscollector_unittest.cc |
diff --git a/talk/app/webrtc/statscollector_unittest.cc b/talk/app/webrtc/statscollector_unittest.cc |
index fd1ad617af4e49b2756c530e0be91746873b9246..d57abf3b7ccb2d1ba589a036e171c6a63e9218b4 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(GetCertificate, |
+ bool(const std::string& content_name, |
+ rtc::scoped_refptr<rtc::RTCCertificate>* certificate)); |
+ MOCK_METHOD2(GetRemoteCertificate, |
+ bool(const std::string& content_name, |
+ rtc::SSLCertificate** cert)); |
}; |
class MockVideoMediaChannel : public cricket::FakeVideoMediaChannel { |
@@ -655,29 +662,18 @@ class StatsCollectorTest : public testing::Test { |
session_stats.transport_stats[transport_stats.content_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->SetRemoteCertificate(remote_cert_copy.get()); |
+ rtc::RTCCertificate::Create( |
+ rtc::scoped_ptr<rtc::FakeSSLIdentity>( |
+ new rtc::FakeSSLIdentity(local_cert)).Pass())); |
// Configure MockWebRtcSession |
- EXPECT_CALL(session_, GetTransport(transport_stats.content_name)) |
- .WillRepeatedly(Return(transport.get())); |
+ EXPECT_CALL(session_, GetCertificate(transport_stats.content_name, _)) |
+ .WillOnce(DoAll(SetArgPointee<1>(local_certificate), Return(true))); |
+ EXPECT_CALL(session_, GetRemoteCertificate(transport_stats.content_name, _)) |
+ .WillOnce( |
+ DoAll(SetArgPointee<1>(remote_cert.GetReference()), Return(true))); |
EXPECT_CALL(session_, GetTransportStats(_)) |
.WillOnce(DoAll(SetArgPointee<0>(session_stats), |
Return(true))); |
@@ -791,14 +787,16 @@ TEST_F(StatsCollectorTest, ExtractDataInfo) { |
TEST_F(StatsCollectorTest, BytesCounterHandles64Bits) { |
StatsCollectorForTest stats(&session_); |
+ EXPECT_CALL(session_, GetCertificate(_, _)).WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteCertificate(_, _)) |
+ .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(), |
@@ -834,14 +832,16 @@ TEST_F(StatsCollectorTest, BytesCounterHandles64Bits) { |
TEST_F(StatsCollectorTest, BandwidthEstimationInfoIsReported) { |
StatsCollectorForTest stats(&session_); |
+ EXPECT_CALL(session_, GetCertificate(_, _)).WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteCertificate(_, _)) |
+ .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(), |
@@ -947,13 +947,15 @@ TEST_F(StatsCollectorTest, TrackObjectExistsWithoutUpdateStats) { |
TEST_F(StatsCollectorTest, TrackAndSsrcObjectExistAfterUpdateSsrcStats) { |
StatsCollectorForTest stats(&session_); |
+ EXPECT_CALL(session_, GetCertificate(_, _)).WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteCertificate(_, _)) |
+ .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(), |
@@ -1012,9 +1014,10 @@ 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_, GetCertificate(_, _)).WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteCertificate(_, _)) |
+ .WillRepeatedly(Return(false)); |
+ |
MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
// The content_name known by the video channel. |
const std::string kVcName("vcname"); |
@@ -1097,9 +1100,10 @@ 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_, GetCertificate(_, _)).WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteCertificate(_, _)) |
+ .WillRepeatedly(Return(false)); |
+ |
MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
// The content_name known by the video channel. |
const std::string kVcName("vcname"); |
@@ -1146,13 +1150,15 @@ TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) { |
TEST_F(StatsCollectorTest, ReportsFromRemoteTrack) { |
StatsCollectorForTest stats(&session_); |
+ EXPECT_CALL(session_, GetCertificate(_, _)).WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteCertificate(_, _)) |
+ .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(), |
@@ -1331,6 +1337,10 @@ TEST_F(StatsCollectorTest, ChainlessCertificateReportsCreated) { |
TEST_F(StatsCollectorTest, NoTransport) { |
StatsCollectorForTest stats(&session_); |
+ EXPECT_CALL(session_, GetCertificate(_, _)).WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteCertificate(_, _)) |
+ .WillRepeatedly(Return(false)); |
+ |
StatsReports reports; // returned values. |
// Fake stats to process. |
@@ -1346,8 +1356,6 @@ TEST_F(StatsCollectorTest, NoTransport) { |
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))); |
@@ -1390,6 +1398,10 @@ TEST_F(StatsCollectorTest, NoTransport) { |
TEST_F(StatsCollectorTest, NoCertificates) { |
StatsCollectorForTest stats(&session_); |
+ EXPECT_CALL(session_, GetCertificate(_, _)).WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteCertificate(_, _)) |
+ .WillRepeatedly(Return(false)); |
+ |
StatsReports reports; // returned values. |
// Fake stats to process. |
@@ -1407,13 +1419,9 @@ TEST_F(StatsCollectorTest, NoCertificates) { |
// Fake transport object. |
rtc::scoped_ptr<cricket::FakeTransport> transport( |
new cricket::FakeTransport( |
- session_.signaling_thread(), |
- session_.worker_thread(), |
transport_stats.content_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))); |
@@ -1459,9 +1467,9 @@ 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_, GetCertificate(_, _)).WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteCertificate(_, _)) |
+ .WillRepeatedly(Return(false)); |
MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
// The content_name known by the voice channel. |
@@ -1493,9 +1501,10 @@ 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_, GetCertificate(_, _)).WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteCertificate(_, _)) |
+ .WillRepeatedly(Return(false)); |
+ |
MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
// The content_name known by the voice channel. |
const std::string kVcName("vcname"); |
@@ -1520,9 +1529,10 @@ 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_, GetCertificate(_, _)).WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteCertificate(_, _)) |
+ .WillRepeatedly(Return(false)); |
+ |
MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
// The content_name known by the voice channel. |
const std::string kVcName("vcname"); |
@@ -1579,9 +1589,10 @@ 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_, GetCertificate(_, _)).WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteCertificate(_, _)) |
+ .WillRepeatedly(Return(false)); |
+ |
MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
// The content_name known by the voice channel. |
const std::string kVcName("vcname"); |
@@ -1664,9 +1675,10 @@ 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_, GetCertificate(_, _)).WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteCertificate(_, _)) |
+ .WillRepeatedly(Return(false)); |
+ |
MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
// The content_name known by the voice channel. |
const std::string kVcName("vcname"); |