|
|
|
|
@@ -514,7 +514,6 @@ class StatsCollectorTest : public testing::Test {
|
|
|
|
|
// A track can't have both sender report and recv report at the same time
|
|
|
|
|
// for now, this might change in the future though.
|
|
|
|
|
ASSERT((voice_sender_info == NULL) ^ (voice_receiver_info == NULL));
|
|
|
|
|
stats->set_session(&session_);
|
|
|
|
|
|
|
|
|
|
// Instruct the session to return stats containing the transport channel.
|
|
|
|
|
InitSessionStats(vc_name);
|
|
|
|
|
@@ -580,9 +579,8 @@ class StatsCollectorTest : public testing::Test {
|
|
|
|
|
const std::vector<std::string>& local_ders,
|
|
|
|
|
const talk_base::FakeSSLCertificate& remote_cert,
|
|
|
|
|
const std::vector<std::string>& remote_ders) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
StatsReports reports; // returned values.
|
|
|
|
|
stats.set_session(&session_);
|
|
|
|
|
|
|
|
|
|
// Fake stats to process.
|
|
|
|
|
cricket::TransportChannelStats channel_stats;
|
|
|
|
|
@@ -667,7 +665,7 @@ class StatsCollectorTest : public testing::Test {
|
|
|
|
|
|
|
|
|
|
// This test verifies that 64-bit counters are passed successfully.
|
|
|
|
|
TEST_F(StatsCollectorTest, BytesCounterHandles64Bits) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
|
|
|
|
|
cricket::VideoChannel video_channel(talk_base::Thread::Current(),
|
|
|
|
|
media_engine_, media_channel, &session_, "", false, NULL);
|
|
|
|
|
@@ -678,7 +676,6 @@ TEST_F(StatsCollectorTest, BytesCounterHandles64Bits) {
|
|
|
|
|
const int64 kBytesSent = 12345678901234LL;
|
|
|
|
|
const std::string kBytesSentString("12345678901234");
|
|
|
|
|
|
|
|
|
|
stats.set_session(&session_);
|
|
|
|
|
AddOutgoingVideoTrackStats();
|
|
|
|
|
stats.AddStream(stream_);
|
|
|
|
|
|
|
|
|
|
@@ -700,7 +697,7 @@ TEST_F(StatsCollectorTest, BytesCounterHandles64Bits) {
|
|
|
|
|
|
|
|
|
|
// Test that BWE information is reported via stats.
|
|
|
|
|
TEST_F(StatsCollectorTest, BandwidthEstimationInfoIsReported) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
|
|
|
|
|
cricket::VideoChannel video_channel(talk_base::Thread::Current(),
|
|
|
|
|
media_engine_, media_channel, &session_, "", false, NULL);
|
|
|
|
|
@@ -712,7 +709,6 @@ TEST_F(StatsCollectorTest, BandwidthEstimationInfoIsReported) {
|
|
|
|
|
const int64 kBytesSent = 12345678901234LL;
|
|
|
|
|
const std::string kBytesSentString("12345678901234");
|
|
|
|
|
|
|
|
|
|
stats.set_session(&session_);
|
|
|
|
|
AddOutgoingVideoTrackStats();
|
|
|
|
|
stats.AddStream(stream_);
|
|
|
|
|
|
|
|
|
|
@@ -743,9 +739,8 @@ TEST_F(StatsCollectorTest, BandwidthEstimationInfoIsReported) {
|
|
|
|
|
// This test verifies that an object of type "googSession" always
|
|
|
|
|
// exists in the returned stats.
|
|
|
|
|
TEST_F(StatsCollectorTest, SessionObjectExists) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
StatsReports reports; // returned values.
|
|
|
|
|
stats.set_session(&session_);
|
|
|
|
|
EXPECT_CALL(session_, video_channel()).WillRepeatedly(ReturnNull());
|
|
|
|
|
EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull());
|
|
|
|
|
stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard);
|
|
|
|
|
@@ -758,9 +753,8 @@ TEST_F(StatsCollectorTest, SessionObjectExists) {
|
|
|
|
|
// This test verifies that only one object of type "googSession" exists
|
|
|
|
|
// in the returned stats.
|
|
|
|
|
TEST_F(StatsCollectorTest, OnlyOneSessionObjectExists) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
StatsReports reports; // returned values.
|
|
|
|
|
stats.set_session(&session_);
|
|
|
|
|
EXPECT_CALL(session_, video_channel()).WillRepeatedly(ReturnNull());
|
|
|
|
|
EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull());
|
|
|
|
|
stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard);
|
|
|
|
|
@@ -777,18 +771,15 @@ TEST_F(StatsCollectorTest, OnlyOneSessionObjectExists) {
|
|
|
|
|
// This test verifies that the empty track report exists in the returned stats
|
|
|
|
|
// without calling StatsCollector::UpdateStats.
|
|
|
|
|
TEST_F(StatsCollectorTest, TrackObjectExistsWithoutUpdateStats) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
|
|
|
|
|
cricket::VideoChannel video_channel(talk_base::Thread::Current(),
|
|
|
|
|
media_engine_, media_channel, &session_, "", false, NULL);
|
|
|
|
|
AddOutgoingVideoTrackStats();
|
|
|
|
|
stats.AddStream(stream_);
|
|
|
|
|
|
|
|
|
|
stats.set_session(&session_);
|
|
|
|
|
|
|
|
|
|
StatsReports reports;
|
|
|
|
|
|
|
|
|
|
// Verfies the existence of the track report.
|
|
|
|
|
StatsReports reports;
|
|
|
|
|
stats.GetStats(NULL, &reports);
|
|
|
|
|
EXPECT_EQ((size_t)1, reports.size());
|
|
|
|
|
EXPECT_EQ(std::string(StatsReport::kStatsReportTypeTrack),
|
|
|
|
|
@@ -804,17 +795,13 @@ TEST_F(StatsCollectorTest, TrackObjectExistsWithoutUpdateStats) {
|
|
|
|
|
// This test verifies that the empty track report exists in the returned stats
|
|
|
|
|
// when StatsCollector::UpdateStats is called with ssrc stats.
|
|
|
|
|
TEST_F(StatsCollectorTest, TrackAndSsrcObjectExistAfterUpdateSsrcStats) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
|
|
|
|
|
cricket::VideoChannel video_channel(talk_base::Thread::Current(),
|
|
|
|
|
media_engine_, media_channel, &session_, "", false, NULL);
|
|
|
|
|
AddOutgoingVideoTrackStats();
|
|
|
|
|
stats.AddStream(stream_);
|
|
|
|
|
|
|
|
|
|
stats.set_session(&session_);
|
|
|
|
|
|
|
|
|
|
StatsReports reports;
|
|
|
|
|
|
|
|
|
|
// Constructs an ssrc stats update.
|
|
|
|
|
cricket::VideoSenderInfo video_sender_info;
|
|
|
|
|
cricket::VideoMediaInfo stats_read;
|
|
|
|
|
@@ -832,6 +819,7 @@ TEST_F(StatsCollectorTest, TrackAndSsrcObjectExistAfterUpdateSsrcStats) {
|
|
|
|
|
Return(true)));
|
|
|
|
|
|
|
|
|
|
stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard);
|
|
|
|
|
StatsReports reports;
|
|
|
|
|
stats.GetStats(NULL, &reports);
|
|
|
|
|
// |reports| should contain at least one session report, one track report,
|
|
|
|
|
// and one ssrc report.
|
|
|
|
|
@@ -861,7 +849,7 @@ TEST_F(StatsCollectorTest, TrackAndSsrcObjectExistAfterUpdateSsrcStats) {
|
|
|
|
|
// This test verifies that an SSRC object has the identifier of a Transport
|
|
|
|
|
// stats object, and that this transport stats object exists in stats.
|
|
|
|
|
TEST_F(StatsCollectorTest, TransportObjectLinkedFromSsrcObject) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
|
|
|
|
|
// The content_name known by the video channel.
|
|
|
|
|
const std::string kVcName("vcname");
|
|
|
|
|
@@ -870,10 +858,6 @@ TEST_F(StatsCollectorTest, TransportObjectLinkedFromSsrcObject) {
|
|
|
|
|
AddOutgoingVideoTrackStats();
|
|
|
|
|
stats.AddStream(stream_);
|
|
|
|
|
|
|
|
|
|
stats.set_session(&session_);
|
|
|
|
|
|
|
|
|
|
StatsReports reports;
|
|
|
|
|
|
|
|
|
|
// Constructs an ssrc stats update.
|
|
|
|
|
cricket::VideoSenderInfo video_sender_info;
|
|
|
|
|
cricket::VideoMediaInfo stats_read;
|
|
|
|
|
@@ -896,6 +880,7 @@ TEST_F(StatsCollectorTest, TransportObjectLinkedFromSsrcObject) {
|
|
|
|
|
Return(true)));
|
|
|
|
|
|
|
|
|
|
stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard);
|
|
|
|
|
StatsReports reports;
|
|
|
|
|
stats.GetStats(NULL, &reports);
|
|
|
|
|
std::string transport_id = ExtractStatsValue(
|
|
|
|
|
StatsReport::kStatsReportTypeSsrc,
|
|
|
|
|
@@ -910,7 +895,7 @@ TEST_F(StatsCollectorTest, TransportObjectLinkedFromSsrcObject) {
|
|
|
|
|
// This test verifies that a remote stats object will not be created for
|
|
|
|
|
// an outgoing SSRC where remote stats are not returned.
|
|
|
|
|
TEST_F(StatsCollectorTest, RemoteSsrcInfoIsAbsent) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
|
|
|
|
|
// The content_name known by the video channel.
|
|
|
|
|
const std::string kVcName("vcname");
|
|
|
|
|
@@ -919,8 +904,6 @@ TEST_F(StatsCollectorTest, RemoteSsrcInfoIsAbsent) {
|
|
|
|
|
AddOutgoingVideoTrackStats();
|
|
|
|
|
stats.AddStream(stream_);
|
|
|
|
|
|
|
|
|
|
stats.set_session(&session_);
|
|
|
|
|
|
|
|
|
|
EXPECT_CALL(session_, video_channel()).WillRepeatedly(ReturnNull());
|
|
|
|
|
EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull());
|
|
|
|
|
|
|
|
|
|
@@ -935,7 +918,7 @@ TEST_F(StatsCollectorTest, RemoteSsrcInfoIsAbsent) {
|
|
|
|
|
// This test verifies that a remote stats object will be created for
|
|
|
|
|
// an outgoing SSRC where stats are returned.
|
|
|
|
|
TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
|
|
|
|
|
// The content_name known by the video channel.
|
|
|
|
|
const std::string kVcName("vcname");
|
|
|
|
|
@@ -944,10 +927,6 @@ TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) {
|
|
|
|
|
AddOutgoingVideoTrackStats();
|
|
|
|
|
stats.AddStream(stream_);
|
|
|
|
|
|
|
|
|
|
stats.set_session(&session_);
|
|
|
|
|
|
|
|
|
|
StatsReports reports;
|
|
|
|
|
|
|
|
|
|
// Instruct the session to return stats containing the transport channel.
|
|
|
|
|
InitSessionStats(kVcName);
|
|
|
|
|
EXPECT_CALL(session_, GetStats(_))
|
|
|
|
|
@@ -972,6 +951,7 @@ TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) {
|
|
|
|
|
Return(true)));
|
|
|
|
|
|
|
|
|
|
stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard);
|
|
|
|
|
StatsReports reports;
|
|
|
|
|
stats.GetStats(NULL, &reports);
|
|
|
|
|
|
|
|
|
|
const StatsReport* remote_report = FindNthReportByType(reports,
|
|
|
|
|
@@ -983,17 +963,13 @@ TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) {
|
|
|
|
|
// This test verifies that the empty track report exists in the returned stats
|
|
|
|
|
// when StatsCollector::UpdateStats is called with ssrc stats.
|
|
|
|
|
TEST_F(StatsCollectorTest, ReportsFromRemoteTrack) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
|
|
|
|
|
cricket::VideoChannel video_channel(talk_base::Thread::Current(),
|
|
|
|
|
media_engine_, media_channel, &session_, "", false, NULL);
|
|
|
|
|
AddIncomingVideoTrackStats();
|
|
|
|
|
stats.AddStream(stream_);
|
|
|
|
|
|
|
|
|
|
stats.set_session(&session_);
|
|
|
|
|
|
|
|
|
|
StatsReports reports;
|
|
|
|
|
|
|
|
|
|
// Constructs an ssrc stats update.
|
|
|
|
|
cricket::VideoReceiverInfo video_receiver_info;
|
|
|
|
|
cricket::VideoMediaInfo stats_read;
|
|
|
|
|
@@ -1011,6 +987,7 @@ TEST_F(StatsCollectorTest, ReportsFromRemoteTrack) {
|
|
|
|
|
Return(true)));
|
|
|
|
|
|
|
|
|
|
stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard);
|
|
|
|
|
StatsReports reports;
|
|
|
|
|
stats.GetStats(NULL, &reports);
|
|
|
|
|
// |reports| should contain at least one session report, one track report,
|
|
|
|
|
// and one ssrc report.
|
|
|
|
|
@@ -1069,9 +1046,8 @@ TEST_F(StatsCollectorTest, ChainlessCertificateReportsCreated) {
|
|
|
|
|
// This test verifies that the stats are generated correctly when no
|
|
|
|
|
// transport is present.
|
|
|
|
|
TEST_F(StatsCollectorTest, NoTransport) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
StatsReports reports; // returned values.
|
|
|
|
|
stats.set_session(&session_);
|
|
|
|
|
|
|
|
|
|
// Fake stats to process.
|
|
|
|
|
cricket::TransportChannelStats channel_stats;
|
|
|
|
|
@@ -1116,9 +1092,8 @@ TEST_F(StatsCollectorTest, NoTransport) {
|
|
|
|
|
// This test verifies that the stats are generated correctly when the transport
|
|
|
|
|
// does not have any certificates.
|
|
|
|
|
TEST_F(StatsCollectorTest, NoCertificates) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
StatsReports reports; // returned values.
|
|
|
|
|
stats.set_session(&session_);
|
|
|
|
|
|
|
|
|
|
// Fake stats to process.
|
|
|
|
|
cricket::TransportChannelStats channel_stats;
|
|
|
|
|
@@ -1185,13 +1160,11 @@ TEST_F(StatsCollectorTest, UnsupportedDigestIgnored) {
|
|
|
|
|
// Verifies the correct optons are passed to the VideoMediaChannel when using
|
|
|
|
|
// verbose output level.
|
|
|
|
|
TEST_F(StatsCollectorTest, StatsOutputLevelVerbose) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
|
|
|
|
|
cricket::VideoChannel video_channel(talk_base::Thread::Current(),
|
|
|
|
|
media_engine_, media_channel, &session_, "", false, NULL);
|
|
|
|
|
stats.set_session(&session_);
|
|
|
|
|
|
|
|
|
|
StatsReports reports; // returned values.
|
|
|
|
|
cricket::VideoMediaInfo stats_read;
|
|
|
|
|
cricket::BandwidthEstimationInfo bwe;
|
|
|
|
|
bwe.total_received_propagation_delta_ms = 10;
|
|
|
|
|
@@ -1214,6 +1187,7 @@ TEST_F(StatsCollectorTest, StatsOutputLevelVerbose) {
|
|
|
|
|
Return(true)));
|
|
|
|
|
|
|
|
|
|
stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelDebug);
|
|
|
|
|
StatsReports reports; // returned values.
|
|
|
|
|
stats.GetStats(NULL, &reports);
|
|
|
|
|
std::string result = ExtractBweStatsValue(
|
|
|
|
|
reports, "googReceivedPacketGroupPropagationDeltaSumDebug");
|
|
|
|
|
@@ -1229,7 +1203,7 @@ TEST_F(StatsCollectorTest, StatsOutputLevelVerbose) {
|
|
|
|
|
// This test verifies that a local stats object can get statistics via
|
|
|
|
|
// AudioTrackInterface::GetStats() method.
|
|
|
|
|
TEST_F(StatsCollectorTest, GetStatsFromLocalAudioTrack) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel();
|
|
|
|
|
// The content_name known by the voice channel.
|
|
|
|
|
const std::string kVcName("vcname");
|
|
|
|
|
@@ -1258,7 +1232,7 @@ TEST_F(StatsCollectorTest, GetStatsFromLocalAudioTrack) {
|
|
|
|
|
// This test verifies that audio receive streams populate stats reports
|
|
|
|
|
// correctly.
|
|
|
|
|
TEST_F(StatsCollectorTest, GetStatsFromRemoteStream) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel();
|
|
|
|
|
// The content_name known by the voice channel.
|
|
|
|
|
const std::string kVcName("vcname");
|
|
|
|
|
@@ -1281,7 +1255,7 @@ TEST_F(StatsCollectorTest, GetStatsFromRemoteStream) {
|
|
|
|
|
// This test verifies that a local stats object won't update its statistics
|
|
|
|
|
// after a RemoveLocalAudioTrack() call.
|
|
|
|
|
TEST_F(StatsCollectorTest, GetStatsAfterRemoveAudioStream) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel();
|
|
|
|
|
// The content_name known by the voice channel.
|
|
|
|
|
const std::string kVcName("vcname");
|
|
|
|
|
@@ -1291,8 +1265,6 @@ TEST_F(StatsCollectorTest, GetStatsAfterRemoveAudioStream) {
|
|
|
|
|
stats.AddStream(stream_);
|
|
|
|
|
stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack);
|
|
|
|
|
|
|
|
|
|
stats.set_session(&session_);
|
|
|
|
|
|
|
|
|
|
// Instruct the session to return stats containing the transport channel.
|
|
|
|
|
InitSessionStats(kVcName);
|
|
|
|
|
EXPECT_CALL(session_, GetStats(_))
|
|
|
|
|
@@ -1337,7 +1309,7 @@ TEST_F(StatsCollectorTest, GetStatsAfterRemoveAudioStream) {
|
|
|
|
|
// This test verifies that when ongoing and incoming audio tracks are using
|
|
|
|
|
// the same ssrc, they populate stats reports correctly.
|
|
|
|
|
TEST_F(StatsCollectorTest, LocalAndRemoteTracksWithSameSsrc) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel();
|
|
|
|
|
// The content_name known by the voice channel.
|
|
|
|
|
const std::string kVcName("vcname");
|
|
|
|
|
@@ -1359,8 +1331,6 @@ TEST_F(StatsCollectorTest, LocalAndRemoteTracksWithSameSsrc) {
|
|
|
|
|
remote_stream->AddTrack(remote_track);
|
|
|
|
|
stats.AddStream(remote_stream);
|
|
|
|
|
|
|
|
|
|
stats.set_session(&session_);
|
|
|
|
|
|
|
|
|
|
// Instruct the session to return stats containing the transport channel.
|
|
|
|
|
InitSessionStats(kVcName);
|
|
|
|
|
EXPECT_CALL(session_, GetStats(_))
|
|
|
|
|
@@ -1417,7 +1387,7 @@ TEST_F(StatsCollectorTest, LocalAndRemoteTracksWithSameSsrc) {
|
|
|
|
|
// TODO(xians): Figure out if it is possible to encapsulate the setup and
|
|
|
|
|
// avoid duplication of code in test cases.
|
|
|
|
|
TEST_F(StatsCollectorTest, TwoLocalTracksWithSameSsrc) {
|
|
|
|
|
webrtc::StatsCollector stats; // Implementation under test.
|
|
|
|
|
webrtc::StatsCollector stats(&session_); // Implementation under test.
|
|
|
|
|
MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel();
|
|
|
|
|
// The content_name known by the voice channel.
|
|
|
|
|
const std::string kVcName("vcname");
|
|
|
|
|
|