Index: webrtc/api/statscollector_unittest.cc |
diff --git a/webrtc/api/statscollector_unittest.cc b/webrtc/api/statscollector_unittest.cc |
index 8d5978f66f842dd7a4636dc465c0816a949936c4..0841ea6925a3c193628e697640bcff88c03f41d8 100644 |
--- a/webrtc/api/statscollector_unittest.cc |
+++ b/webrtc/api/statscollector_unittest.cc |
@@ -29,6 +29,7 @@ |
#include "webrtc/base/fakesslidentity.h" |
#include "webrtc/base/gunit.h" |
#include "webrtc/base/network.h" |
+#include "webrtc/base/stringencode.h" |
#include "webrtc/logging/rtc_event_log/rtc_event_log.h" |
#include "webrtc/media/base/fakemediaengine.h" |
#include "webrtc/media/base/test/mock_mediachannel.h" |
@@ -1891,4 +1892,46 @@ TEST_F(StatsCollectorTest, TwoLocalTracksWithSameSsrc) { |
media_channel, &new_voice_sender_info, NULL, &new_stats_read, &reports); |
} |
+// This test verifies that stats are correctly set in video send ssrc stats. |
+TEST_F(StatsCollectorTest, VerifyVideoSendSsrcStats) { |
+ StatsCollectorForTest stats(&pc_); |
+ |
+ EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
+ .WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
+ .WillRepeatedly(Return(nullptr)); |
+ |
+ const char kVideoChannelName[] = "video"; |
+ |
+ InitSessionStats(kVideoChannelName); |
+ EXPECT_CALL(session_, GetTransportStats(_)) |
+ .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), Return(true))); |
+ |
+ MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
+ cricket::VideoChannel video_channel(worker_thread_, network_thread_, |
+ media_channel, nullptr, kVideoChannelName, |
+ false); |
+ StatsReports reports; // returned values. |
+ cricket::VideoSenderInfo video_sender_info; |
+ cricket::VideoMediaInfo stats_read; |
+ |
+ AddOutgoingVideoTrackStats(); |
+ stats.AddStream(stream_); |
+ |
+ // Construct a stats value to read. |
+ video_sender_info.add_ssrc(1234); |
+ video_sender_info.frames_encoded = 10; |
+ stats_read.senders.push_back(video_sender_info); |
+ |
+ EXPECT_CALL(session_, video_channel()).WillRepeatedly(Return(&video_channel)); |
+ EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); |
+ EXPECT_CALL(*media_channel, GetStats(_)) |
+ .WillOnce(DoAll(SetArgPointee<0>(stats_read), Return(true))); |
+ stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); |
+ stats.GetStats(NULL, &reports); |
+ EXPECT_EQ(rtc::ToString(video_sender_info.frames_encoded), |
+ ExtractSsrcStatsValue(reports, |
+ StatsReport::kStatsValueNameFramesEncoded)); |
+} |
+ |
} // namespace webrtc |