aboutsummaryrefslogtreecommitdiff
path: root/talk/app/webrtc/statscollector_unittest.cc
diff options
context:
space:
mode:
authordeadbeef <deadbeef@webrtc.org>2015-09-23 11:50:27 -0700
committerCommit bot <commit-bot@chromium.org>2015-09-23 18:50:31 +0000
commitcbecd358e032021eac11fb13e04ec7f070d4f407 (patch)
tree25c52b9860b8deefb399c2aeb5b6c415606e4ffc /talk/app/webrtc/statscollector_unittest.cc
parentd0b5b091e4f2724ed2aaf79a77d00487e041f642 (diff)
downloadwebrtc-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.cc172
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);