Index: webrtc/pc/rtcstatscollector_unittest.cc |
diff --git a/webrtc/pc/rtcstatscollector_unittest.cc b/webrtc/pc/rtcstatscollector_unittest.cc |
index 6d1595e0c32afb5900245b0214b35b6af963e639..d2acdd8b81405603611740f5af2683d7e2cde03d 100644 |
--- a/webrtc/pc/rtcstatscollector_unittest.cc |
+++ b/webrtc/pc/rtcstatscollector_unittest.cc |
@@ -1766,6 +1766,7 @@ TEST_F(RTCStatsCollectorTest, CollectRTCInboundRTPStreamStats_Video) { |
video_media_info.receivers[0].plis_sent = 6; |
video_media_info.receivers[0].nacks_sent = 7; |
video_media_info.receivers[0].frames_decoded = 8; |
+ video_media_info.receivers[0].qp_sum = rtc::Optional<uint64_t>(9); |
RtpCodecParameters codec_parameters; |
codec_parameters.payload_type = 42; |
@@ -1815,6 +1816,7 @@ TEST_F(RTCStatsCollectorTest, CollectRTCInboundRTPStreamStats_Video) { |
expected_video.packets_lost = 42; |
expected_video.fraction_lost = 4.5; |
expected_video.frames_decoded = 8; |
+ expected_video.qp_sum = 9; |
ASSERT_TRUE(report->Get(expected_video.id())); |
const RTCInboundRTPStreamStats& video = report->Get( |
@@ -1923,7 +1925,7 @@ TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Video) { |
video_media_info.senders[0].rtt_ms = 7500; |
video_media_info.senders[0].codec_payload_type = rtc::Optional<int>(42); |
video_media_info.senders[0].frames_encoded = 8; |
- video_media_info.senders[0].qp_sum = rtc::Optional<uint64_t>(16); |
+ video_media_info.senders[0].qp_sum = rtc::Optional<uint64_t>(); |
RtpCodecParameters codec_parameters; |
codec_parameters.payload_type = 42; |
@@ -1972,16 +1974,31 @@ TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Video) { |
expected_video.bytes_sent = 6; |
expected_video.round_trip_time = 7.5; |
expected_video.frames_encoded = 8; |
- expected_video.qp_sum = 16; |
+ // |expected_video.qp_sum| should be undefined. |
ASSERT_TRUE(report->Get(expected_video.id())); |
- const RTCOutboundRTPStreamStats& video = report->Get( |
- expected_video.id())->cast_to<RTCOutboundRTPStreamStats>(); |
- EXPECT_EQ(video, expected_video); |
+ EXPECT_EQ( |
+ report->Get(expected_video.id())->cast_to<RTCOutboundRTPStreamStats>(), |
+ expected_video); |
EXPECT_TRUE(report->Get(*expected_video.track_id)); |
EXPECT_TRUE(report->Get(*expected_video.transport_id)); |
EXPECT_TRUE(report->Get(*expected_video.codec_id)); |
+ |
+ // Set previously undefined values and "GetStats" again. |
+ video_media_info.senders[0].qp_sum = rtc::Optional<uint64_t>(9); |
+ expected_video.qp_sum = 9; |
+ |
+ EXPECT_CALL(*video_media_channel, GetStats(_)) |
+ .WillOnce(DoAll(SetArgPointee<0>(video_media_info), Return(true))); |
+ collector_->ClearCachedStatsReport(); |
+ report = GetStatsReport(); |
+ expected_video.set_timestamp_us_for_testing(report->timestamp_us()); |
+ |
+ ASSERT_TRUE(report->Get(expected_video.id())); |
+ EXPECT_EQ( |
+ report->Get(expected_video.id())->cast_to<RTCOutboundRTPStreamStats>(), |
+ expected_video); |
} |
TEST_F(RTCStatsCollectorTest, CollectRTCOutboundRTPStreamStats_Default) { |