| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2014 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2014 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 #include "webrtc/media/base/fakemediaengine.h" | 34 #include "webrtc/media/base/fakemediaengine.h" |
| 35 #include "webrtc/media/base/test/mock_mediachannel.h" | 35 #include "webrtc/media/base/test/mock_mediachannel.h" |
| 36 #include "webrtc/p2p/base/faketransportcontroller.h" | 36 #include "webrtc/p2p/base/faketransportcontroller.h" |
| 37 #include "webrtc/pc/channelmanager.h" | 37 #include "webrtc/pc/channelmanager.h" |
| 38 #include "webrtc/test/gmock.h" | 38 #include "webrtc/test/gmock.h" |
| 39 #include "webrtc/test/gtest.h" | 39 #include "webrtc/test/gtest.h" |
| 40 | 40 |
| 41 using testing::_; | 41 using testing::_; |
| 42 using testing::DoAll; | 42 using testing::DoAll; |
| 43 using testing::Field; | 43 using testing::Field; |
| 44 using testing::Invoke; |
| 44 using testing::Return; | 45 using testing::Return; |
| 45 using testing::ReturnNull; | 46 using testing::ReturnNull; |
| 46 using testing::ReturnRef; | 47 using testing::ReturnRef; |
| 47 using testing::SetArgPointee; | 48 using testing::SetArgPointee; |
| 48 using webrtc::PeerConnectionInterface; | 49 using webrtc::PeerConnectionInterface; |
| 49 using webrtc::StatsReport; | 50 using webrtc::StatsReport; |
| 50 using webrtc::StatsReports; | 51 using webrtc::StatsReports; |
| 51 | 52 |
| 52 namespace { | 53 namespace { |
| 53 const bool kDefaultRtcpEnabled = false; | 54 const bool kDefaultRtcpEnabled = false; |
| (...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 502 channel_manager_(new cricket::ChannelManager(media_engine_, | 503 channel_manager_(new cricket::ChannelManager(media_engine_, |
| 503 worker_thread_, | 504 worker_thread_, |
| 504 network_thread_)), | 505 network_thread_)), |
| 505 media_controller_( | 506 media_controller_( |
| 506 webrtc::MediaControllerInterface::Create(cricket::MediaConfig(), | 507 webrtc::MediaControllerInterface::Create(cricket::MediaConfig(), |
| 507 worker_thread_, | 508 worker_thread_, |
| 508 channel_manager_.get(), | 509 channel_manager_.get(), |
| 509 &event_log_)), | 510 &event_log_)), |
| 510 session_(media_controller_.get()) { | 511 session_(media_controller_.get()) { |
| 511 // By default, we ignore session GetStats calls. | 512 // By default, we ignore session GetStats calls. |
| 512 EXPECT_CALL(session_, GetTransportStats(_)).WillRepeatedly(Return(false)); | 513 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(ReturnNull()); |
| 513 // Add default returns for mock classes. | 514 // Add default returns for mock classes. |
| 514 EXPECT_CALL(session_, video_channel()).WillRepeatedly(ReturnNull()); | 515 EXPECT_CALL(session_, video_channel()).WillRepeatedly(ReturnNull()); |
| 515 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); | 516 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); |
| 516 EXPECT_CALL(pc_, session()).WillRepeatedly(Return(&session_)); | 517 EXPECT_CALL(pc_, session()).WillRepeatedly(Return(&session_)); |
| 517 EXPECT_CALL(pc_, sctp_data_channels()) | 518 EXPECT_CALL(pc_, sctp_data_channels()) |
| 518 .WillRepeatedly(ReturnRef(data_channels_)); | 519 .WillRepeatedly(ReturnRef(data_channels_)); |
| 519 } | 520 } |
| 520 | 521 |
| 521 ~StatsCollectorTest() {} | 522 ~StatsCollectorTest() {} |
| 522 | 523 |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 605 cricket::VoiceSenderInfo* voice_sender_info, | 606 cricket::VoiceSenderInfo* voice_sender_info, |
| 606 cricket::VoiceReceiverInfo* voice_receiver_info, | 607 cricket::VoiceReceiverInfo* voice_receiver_info, |
| 607 cricket::VoiceMediaInfo* stats_read, | 608 cricket::VoiceMediaInfo* stats_read, |
| 608 StatsReports* reports) { | 609 StatsReports* reports) { |
| 609 // A track can't have both sender report and recv report at the same time | 610 // A track can't have both sender report and recv report at the same time |
| 610 // for now, this might change in the future though. | 611 // for now, this might change in the future though. |
| 611 ASSERT((voice_sender_info == NULL) ^ (voice_receiver_info == NULL)); | 612 ASSERT((voice_sender_info == NULL) ^ (voice_receiver_info == NULL)); |
| 612 | 613 |
| 613 // Instruct the session to return stats containing the transport channel. | 614 // Instruct the session to return stats containing the transport channel. |
| 614 InitSessionStats(vc_name); | 615 InitSessionStats(vc_name); |
| 615 EXPECT_CALL(session_, GetTransportStats(_)) | 616 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
| 616 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 617 [this](const ChannelNamePairs&) { |
| 617 Return(true))); | 618 return std::unique_ptr<SessionStats>( |
| 619 new SessionStats(session_stats_)); |
| 620 })); |
| 618 | 621 |
| 619 // Constructs an ssrc stats update. | 622 // Constructs an ssrc stats update. |
| 620 if (voice_sender_info) | 623 if (voice_sender_info) |
| 621 stats_read->senders.push_back(*voice_sender_info); | 624 stats_read->senders.push_back(*voice_sender_info); |
| 622 if (voice_receiver_info) | 625 if (voice_receiver_info) |
| 623 stats_read->receivers.push_back(*voice_receiver_info); | 626 stats_read->receivers.push_back(*voice_receiver_info); |
| 624 | 627 |
| 625 EXPECT_CALL(session_, voice_channel()).WillRepeatedly( | 628 EXPECT_CALL(session_, voice_channel()).WillRepeatedly( |
| 626 Return(voice_channel)); | 629 Return(voice_channel)); |
| 627 EXPECT_CALL(session_, video_channel()).WillRepeatedly(ReturnNull()); | 630 EXPECT_CALL(session_, video_channel()).WillRepeatedly(ReturnNull()); |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 705 rtc::RTCCertificate::Create(std::unique_ptr<rtc::FakeSSLIdentity>( | 708 rtc::RTCCertificate::Create(std::unique_ptr<rtc::FakeSSLIdentity>( |
| 706 new rtc::FakeSSLIdentity(local_cert)))); | 709 new rtc::FakeSSLIdentity(local_cert)))); |
| 707 | 710 |
| 708 // Configure MockWebRtcSession | 711 // Configure MockWebRtcSession |
| 709 EXPECT_CALL(session_, | 712 EXPECT_CALL(session_, |
| 710 GetLocalCertificate(transport_stats.transport_name, _)) | 713 GetLocalCertificate(transport_stats.transport_name, _)) |
| 711 .WillOnce(DoAll(SetArgPointee<1>(local_certificate), Return(true))); | 714 .WillOnce(DoAll(SetArgPointee<1>(local_certificate), Return(true))); |
| 712 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer( | 715 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer( |
| 713 transport_stats.transport_name)) | 716 transport_stats.transport_name)) |
| 714 .WillOnce(Return(remote_cert.release())); | 717 .WillOnce(Return(remote_cert.release())); |
| 715 EXPECT_CALL(session_, GetTransportStats(_)) | 718 EXPECT_CALL(session_, GetStats(_)).WillOnce(Invoke( |
| 716 .WillOnce(DoAll(SetArgPointee<0>(session_stats), | 719 [&session_stats](const ChannelNamePairs&) { |
| 717 Return(true))); | 720 return std::unique_ptr<SessionStats>( |
| 721 new SessionStats(session_stats)); |
| 722 })); |
| 718 | 723 |
| 719 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); | 724 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); |
| 720 | 725 |
| 721 stats.GetStats(NULL, &reports); | 726 stats.GetStats(NULL, &reports); |
| 722 | 727 |
| 723 const StatsReport* channel_report = FindNthReportByType( | 728 const StatsReport* channel_report = FindNthReportByType( |
| 724 reports, StatsReport::kStatsReportTypeComponent, 1); | 729 reports, StatsReport::kStatsReportTypeComponent, 1); |
| 725 EXPECT_TRUE(channel_report != NULL); | 730 EXPECT_TRUE(channel_report != NULL); |
| 726 | 731 |
| 727 // Check local certificate chain. | 732 // Check local certificate chain. |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 846 StatsCollectorForTest stats(&pc_); | 851 StatsCollectorForTest stats(&pc_); |
| 847 | 852 |
| 848 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 853 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
| 849 .WillRepeatedly(Return(false)); | 854 .WillRepeatedly(Return(false)); |
| 850 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 855 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
| 851 .WillRepeatedly(Return(nullptr)); | 856 .WillRepeatedly(Return(nullptr)); |
| 852 | 857 |
| 853 const char kVideoChannelName[] = "video"; | 858 const char kVideoChannelName[] = "video"; |
| 854 | 859 |
| 855 InitSessionStats(kVideoChannelName); | 860 InitSessionStats(kVideoChannelName); |
| 856 EXPECT_CALL(session_, GetTransportStats(_)) | 861 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
| 857 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 862 [this](const ChannelNamePairs&) { |
| 858 Return(true))); | 863 return std::unique_ptr<SessionStats>( |
| 864 new SessionStats(session_stats_)); |
| 865 })); |
| 859 | 866 |
| 860 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 867 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
| 861 cricket::VideoChannel video_channel( | 868 cricket::VideoChannel video_channel( |
| 862 worker_thread_, network_thread_, media_channel, nullptr, | 869 worker_thread_, network_thread_, media_channel, nullptr, |
| 863 kVideoChannelName, kDefaultRtcpEnabled, kDefaultSrtpRequired); | 870 kVideoChannelName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
| 864 StatsReports reports; // returned values. | 871 StatsReports reports; // returned values. |
| 865 cricket::VideoSenderInfo video_sender_info; | 872 cricket::VideoSenderInfo video_sender_info; |
| 866 cricket::VideoMediaInfo stats_read; | 873 cricket::VideoMediaInfo stats_read; |
| 867 // The number of bytes must be larger than 0xFFFFFFFF for this test. | 874 // The number of bytes must be larger than 0xFFFFFFFF for this test. |
| 868 const int64_t kBytesSent = 12345678901234LL; | 875 const int64_t kBytesSent = 12345678901234LL; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 893 StatsCollectorForTest stats(&pc_); | 900 StatsCollectorForTest stats(&pc_); |
| 894 | 901 |
| 895 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 902 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
| 896 .WillRepeatedly(Return(false)); | 903 .WillRepeatedly(Return(false)); |
| 897 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 904 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
| 898 .WillRepeatedly(Return(nullptr)); | 905 .WillRepeatedly(Return(nullptr)); |
| 899 | 906 |
| 900 const char kVideoChannelName[] = "video"; | 907 const char kVideoChannelName[] = "video"; |
| 901 | 908 |
| 902 InitSessionStats(kVideoChannelName); | 909 InitSessionStats(kVideoChannelName); |
| 903 EXPECT_CALL(session_, GetTransportStats(_)) | 910 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
| 904 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 911 [this](const ChannelNamePairs&) { |
| 905 Return(true))); | 912 return std::unique_ptr<SessionStats>( |
| 913 new SessionStats(session_stats_)); |
| 914 })); |
| 906 | 915 |
| 907 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 916 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
| 908 cricket::VideoChannel video_channel( | 917 cricket::VideoChannel video_channel( |
| 909 worker_thread_, network_thread_, media_channel, nullptr, | 918 worker_thread_, network_thread_, media_channel, nullptr, |
| 910 kVideoChannelName, kDefaultRtcpEnabled, kDefaultSrtpRequired); | 919 kVideoChannelName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
| 911 | 920 |
| 912 StatsReports reports; // returned values. | 921 StatsReports reports; // returned values. |
| 913 cricket::VideoSenderInfo video_sender_info; | 922 cricket::VideoSenderInfo video_sender_info; |
| 914 cricket::VideoMediaInfo stats_read; | 923 cricket::VideoMediaInfo stats_read; |
| 915 // Set up an SSRC just to test that we get both kinds of stats back: SSRC and | 924 // Set up an SSRC just to test that we get both kinds of stats back: SSRC and |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1006 TEST_F(StatsCollectorTest, TrackAndSsrcObjectExistAfterUpdateSsrcStats) { | 1015 TEST_F(StatsCollectorTest, TrackAndSsrcObjectExistAfterUpdateSsrcStats) { |
| 1007 StatsCollectorForTest stats(&pc_); | 1016 StatsCollectorForTest stats(&pc_); |
| 1008 | 1017 |
| 1009 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1018 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
| 1010 .WillRepeatedly(Return(false)); | 1019 .WillRepeatedly(Return(false)); |
| 1011 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1020 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
| 1012 .WillRepeatedly(Return(nullptr)); | 1021 .WillRepeatedly(Return(nullptr)); |
| 1013 | 1022 |
| 1014 const char kVideoChannelName[] = "video"; | 1023 const char kVideoChannelName[] = "video"; |
| 1015 InitSessionStats(kVideoChannelName); | 1024 InitSessionStats(kVideoChannelName); |
| 1016 EXPECT_CALL(session_, GetTransportStats(_)) | 1025 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
| 1017 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1026 [this](const ChannelNamePairs&) { |
| 1018 Return(true))); | 1027 return std::unique_ptr<SessionStats>( |
| 1028 new SessionStats(session_stats_)); |
| 1029 })); |
| 1019 | 1030 |
| 1020 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1031 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
| 1021 cricket::VideoChannel video_channel( | 1032 cricket::VideoChannel video_channel( |
| 1022 worker_thread_, network_thread_, media_channel, nullptr, | 1033 worker_thread_, network_thread_, media_channel, nullptr, |
| 1023 kVideoChannelName, kDefaultRtcpEnabled, kDefaultSrtpRequired); | 1034 kVideoChannelName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
| 1024 AddOutgoingVideoTrackStats(); | 1035 AddOutgoingVideoTrackStats(); |
| 1025 stats.AddStream(stream_); | 1036 stats.AddStream(stream_); |
| 1026 | 1037 |
| 1027 // Constructs an ssrc stats update. | 1038 // Constructs an ssrc stats update. |
| 1028 cricket::VideoSenderInfo video_sender_info; | 1039 cricket::VideoSenderInfo video_sender_info; |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1103 video_sender_info.bytes_sent = kBytesSent; | 1114 video_sender_info.bytes_sent = kBytesSent; |
| 1104 stats_read.senders.push_back(video_sender_info); | 1115 stats_read.senders.push_back(video_sender_info); |
| 1105 | 1116 |
| 1106 EXPECT_CALL(session_, video_channel()).WillRepeatedly(Return(&video_channel)); | 1117 EXPECT_CALL(session_, video_channel()).WillRepeatedly(Return(&video_channel)); |
| 1107 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); | 1118 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); |
| 1108 EXPECT_CALL(*media_channel, GetStats(_)) | 1119 EXPECT_CALL(*media_channel, GetStats(_)) |
| 1109 .WillRepeatedly(DoAll(SetArgPointee<0>(stats_read), | 1120 .WillRepeatedly(DoAll(SetArgPointee<0>(stats_read), |
| 1110 Return(true))); | 1121 Return(true))); |
| 1111 | 1122 |
| 1112 InitSessionStats(kVcName); | 1123 InitSessionStats(kVcName); |
| 1113 EXPECT_CALL(session_, GetTransportStats(_)) | 1124 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
| 1114 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1125 [this](const ChannelNamePairs&) { |
| 1115 Return(true))); | 1126 return std::unique_ptr<SessionStats>( |
| 1127 new SessionStats(session_stats_)); |
| 1128 })); |
| 1116 | 1129 |
| 1117 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); | 1130 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); |
| 1118 StatsReports reports; | 1131 StatsReports reports; |
| 1119 stats.GetStats(NULL, &reports); | 1132 stats.GetStats(NULL, &reports); |
| 1120 std::string transport_id = ExtractStatsValue( | 1133 std::string transport_id = ExtractStatsValue( |
| 1121 StatsReport::kStatsReportTypeSsrc, | 1134 StatsReport::kStatsReportTypeSsrc, |
| 1122 reports, | 1135 reports, |
| 1123 StatsReport::kStatsValueNameTransportId); | 1136 StatsReport::kStatsValueNameTransportId); |
| 1124 ASSERT_NE(kNotFound, transport_id); | 1137 ASSERT_NE(kNotFound, transport_id); |
| 1125 // Transport id component ID will always be 1. | 1138 // Transport id component ID will always be 1. |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1174 // The transport_name known by the video channel. | 1187 // The transport_name known by the video channel. |
| 1175 const std::string kVcName("vcname"); | 1188 const std::string kVcName("vcname"); |
| 1176 cricket::VideoChannel video_channel( | 1189 cricket::VideoChannel video_channel( |
| 1177 worker_thread_, network_thread_, media_channel, nullptr, kVcName, | 1190 worker_thread_, network_thread_, media_channel, nullptr, kVcName, |
| 1178 kDefaultRtcpEnabled, kDefaultSrtpRequired); | 1191 kDefaultRtcpEnabled, kDefaultSrtpRequired); |
| 1179 AddOutgoingVideoTrackStats(); | 1192 AddOutgoingVideoTrackStats(); |
| 1180 stats.AddStream(stream_); | 1193 stats.AddStream(stream_); |
| 1181 | 1194 |
| 1182 // Instruct the session to return stats containing the transport channel. | 1195 // Instruct the session to return stats containing the transport channel. |
| 1183 InitSessionStats(kVcName); | 1196 InitSessionStats(kVcName); |
| 1184 EXPECT_CALL(session_, GetTransportStats(_)) | 1197 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
| 1185 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1198 [this](const ChannelNamePairs&) { |
| 1186 Return(true))); | 1199 return std::unique_ptr<SessionStats>( |
| 1200 new SessionStats(session_stats_)); |
| 1201 })); |
| 1187 | 1202 |
| 1188 // Constructs an ssrc stats update. | 1203 // Constructs an ssrc stats update. |
| 1189 cricket::VideoMediaInfo stats_read; | 1204 cricket::VideoMediaInfo stats_read; |
| 1190 | 1205 |
| 1191 cricket::SsrcReceiverInfo remote_ssrc_stats; | 1206 cricket::SsrcReceiverInfo remote_ssrc_stats; |
| 1192 remote_ssrc_stats.timestamp = 12345.678; | 1207 remote_ssrc_stats.timestamp = 12345.678; |
| 1193 remote_ssrc_stats.ssrc = kSsrcOfTrack; | 1208 remote_ssrc_stats.ssrc = kSsrcOfTrack; |
| 1194 cricket::VideoSenderInfo video_sender_info; | 1209 cricket::VideoSenderInfo video_sender_info; |
| 1195 video_sender_info.add_ssrc(kSsrcOfTrack); | 1210 video_sender_info.add_ssrc(kSsrcOfTrack); |
| 1196 video_sender_info.remote_stats.push_back(remote_ssrc_stats); | 1211 video_sender_info.remote_stats.push_back(remote_ssrc_stats); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1217 TEST_F(StatsCollectorTest, ReportsFromRemoteTrack) { | 1232 TEST_F(StatsCollectorTest, ReportsFromRemoteTrack) { |
| 1218 StatsCollectorForTest stats(&pc_); | 1233 StatsCollectorForTest stats(&pc_); |
| 1219 | 1234 |
| 1220 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1235 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
| 1221 .WillRepeatedly(Return(false)); | 1236 .WillRepeatedly(Return(false)); |
| 1222 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1237 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
| 1223 .WillRepeatedly(Return(nullptr)); | 1238 .WillRepeatedly(Return(nullptr)); |
| 1224 | 1239 |
| 1225 const char kVideoChannelName[] = "video"; | 1240 const char kVideoChannelName[] = "video"; |
| 1226 InitSessionStats(kVideoChannelName); | 1241 InitSessionStats(kVideoChannelName); |
| 1227 EXPECT_CALL(session_, GetTransportStats(_)) | 1242 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
| 1228 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1243 [this](const ChannelNamePairs&) { |
| 1229 Return(true))); | 1244 return std::unique_ptr<SessionStats>( |
| 1245 new SessionStats(session_stats_)); |
| 1246 })); |
| 1230 | 1247 |
| 1231 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1248 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
| 1232 cricket::VideoChannel video_channel( | 1249 cricket::VideoChannel video_channel( |
| 1233 worker_thread_, network_thread_, media_channel, nullptr, | 1250 worker_thread_, network_thread_, media_channel, nullptr, |
| 1234 kVideoChannelName, kDefaultRtcpEnabled, kDefaultSrtpRequired); | 1251 kVideoChannelName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
| 1235 AddIncomingVideoTrackStats(); | 1252 AddIncomingVideoTrackStats(); |
| 1236 stats.AddStream(stream_); | 1253 stats.AddStream(stream_); |
| 1237 | 1254 |
| 1238 // Constructs an ssrc stats update. | 1255 // Constructs an ssrc stats update. |
| 1239 cricket::VideoReceiverInfo video_receiver_info; | 1256 cricket::VideoReceiverInfo video_receiver_info; |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1423 | 1440 |
| 1424 cricket::TransportStats transport_stats; | 1441 cricket::TransportStats transport_stats; |
| 1425 transport_stats.transport_name = "audio"; | 1442 transport_stats.transport_name = "audio"; |
| 1426 transport_stats.channel_stats.push_back(channel_stats); | 1443 transport_stats.channel_stats.push_back(channel_stats); |
| 1427 | 1444 |
| 1428 SessionStats session_stats; | 1445 SessionStats session_stats; |
| 1429 session_stats.transport_stats[transport_stats.transport_name] = | 1446 session_stats.transport_stats[transport_stats.transport_name] = |
| 1430 transport_stats; | 1447 transport_stats; |
| 1431 | 1448 |
| 1432 // Configure MockWebRtcSession | 1449 // Configure MockWebRtcSession |
| 1433 EXPECT_CALL(session_, GetTransportStats(_)) | 1450 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
| 1434 .WillOnce(DoAll(SetArgPointee<0>(session_stats), | 1451 [&session_stats](const ChannelNamePairs&) { |
| 1435 Return(true))); | 1452 return std::unique_ptr<SessionStats>( |
| 1453 new SessionStats(session_stats)); |
| 1454 })); |
| 1436 | 1455 |
| 1437 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); | 1456 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); |
| 1438 stats.GetStats(NULL, &reports); | 1457 stats.GetStats(NULL, &reports); |
| 1439 | 1458 |
| 1440 // Check that the local certificate is absent. | 1459 // Check that the local certificate is absent. |
| 1441 std::string local_certificate_id = ExtractStatsValue( | 1460 std::string local_certificate_id = ExtractStatsValue( |
| 1442 StatsReport::kStatsReportTypeComponent, | 1461 StatsReport::kStatsReportTypeComponent, |
| 1443 reports, | 1462 reports, |
| 1444 StatsReport::kStatsValueNameLocalCertificateId); | 1463 StatsReport::kStatsValueNameLocalCertificateId); |
| 1445 ASSERT_EQ(kNotFound, local_certificate_id); | 1464 ASSERT_EQ(kNotFound, local_certificate_id); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1480 | 1499 |
| 1481 cricket::TransportStats transport_stats; | 1500 cricket::TransportStats transport_stats; |
| 1482 transport_stats.transport_name = "audio"; | 1501 transport_stats.transport_name = "audio"; |
| 1483 transport_stats.channel_stats.push_back(channel_stats); | 1502 transport_stats.channel_stats.push_back(channel_stats); |
| 1484 | 1503 |
| 1485 SessionStats session_stats; | 1504 SessionStats session_stats; |
| 1486 session_stats.transport_stats[transport_stats.transport_name] = | 1505 session_stats.transport_stats[transport_stats.transport_name] = |
| 1487 transport_stats; | 1506 transport_stats; |
| 1488 | 1507 |
| 1489 // Configure MockWebRtcSession | 1508 // Configure MockWebRtcSession |
| 1490 EXPECT_CALL(session_, GetTransportStats(_)) | 1509 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
| 1491 .WillOnce(DoAll(SetArgPointee<0>(session_stats), | 1510 [&session_stats](const ChannelNamePairs&) { |
| 1492 Return(true))); | 1511 return std::unique_ptr<SessionStats>( |
| 1512 new SessionStats(session_stats)); |
| 1513 })); |
| 1493 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); | 1514 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); |
| 1494 stats.GetStats(NULL, &reports); | 1515 stats.GetStats(NULL, &reports); |
| 1495 | 1516 |
| 1496 // Check that the local certificate is absent. | 1517 // Check that the local certificate is absent. |
| 1497 std::string local_certificate_id = ExtractStatsValue( | 1518 std::string local_certificate_id = ExtractStatsValue( |
| 1498 StatsReport::kStatsReportTypeComponent, | 1519 StatsReport::kStatsReportTypeComponent, |
| 1499 reports, | 1520 reports, |
| 1500 StatsReport::kStatsValueNameLocalCertificateId); | 1521 StatsReport::kStatsValueNameLocalCertificateId); |
| 1501 ASSERT_EQ(kNotFound, local_certificate_id); | 1522 ASSERT_EQ(kNotFound, local_certificate_id); |
| 1502 | 1523 |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1559 webrtc::MediaStream::Create("remotestreamlabel")); | 1580 webrtc::MediaStream::Create("remotestreamlabel")); |
| 1560 rtc::scoped_refptr<FakeAudioTrackWithInitValue> remote_track( | 1581 rtc::scoped_refptr<FakeAudioTrackWithInitValue> remote_track( |
| 1561 new rtc::RefCountedObject<FakeAudioTrackWithInitValue>(kRemoteTrackId)); | 1582 new rtc::RefCountedObject<FakeAudioTrackWithInitValue>(kRemoteTrackId)); |
| 1562 EXPECT_CALL(session_, GetRemoteTrackIdBySsrc(kSsrcOfTrack, _)) | 1583 EXPECT_CALL(session_, GetRemoteTrackIdBySsrc(kSsrcOfTrack, _)) |
| 1563 .WillOnce(DoAll(SetArgPointee<1>(kRemoteTrackId), Return(true))); | 1584 .WillOnce(DoAll(SetArgPointee<1>(kRemoteTrackId), Return(true))); |
| 1564 remote_stream->AddTrack(remote_track); | 1585 remote_stream->AddTrack(remote_track); |
| 1565 stats.AddStream(remote_stream); | 1586 stats.AddStream(remote_stream); |
| 1566 | 1587 |
| 1567 // Instruct the session to return stats containing the transport channel. | 1588 // Instruct the session to return stats containing the transport channel. |
| 1568 InitSessionStats(kVcName); | 1589 InitSessionStats(kVcName); |
| 1569 EXPECT_CALL(session_, GetTransportStats(_)) | 1590 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
| 1570 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), Return(true))); | 1591 [this](const ChannelNamePairs&) { |
| 1592 return std::unique_ptr<SessionStats>( |
| 1593 new SessionStats(session_stats_)); |
| 1594 })); |
| 1571 | 1595 |
| 1572 cricket::VoiceSenderInfo voice_sender_info; | 1596 cricket::VoiceSenderInfo voice_sender_info; |
| 1573 voice_sender_info.add_ssrc(kSsrcOfTrack); | 1597 voice_sender_info.add_ssrc(kSsrcOfTrack); |
| 1574 // These values are set to -1 initially in audio_send_stream. | 1598 // These values are set to -1 initially in audio_send_stream. |
| 1575 // The voice_sender_info will read the values from audio_send_stream. | 1599 // The voice_sender_info will read the values from audio_send_stream. |
| 1576 voice_sender_info.rtt_ms = -1; | 1600 voice_sender_info.rtt_ms = -1; |
| 1577 voice_sender_info.packets_lost = -1; | 1601 voice_sender_info.packets_lost = -1; |
| 1578 voice_sender_info.jitter_ms = -1; | 1602 voice_sender_info.jitter_ms = -1; |
| 1579 | 1603 |
| 1580 // Some of the contents in |voice_sender_info| needs to be updated from the | 1604 // Some of the contents in |voice_sender_info| needs to be updated from the |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1713 const std::string kVcName("vcname"); | 1737 const std::string kVcName("vcname"); |
| 1714 cricket::VoiceChannel voice_channel( | 1738 cricket::VoiceChannel voice_channel( |
| 1715 worker_thread_, network_thread_, media_engine_, media_channel, nullptr, | 1739 worker_thread_, network_thread_, media_engine_, media_channel, nullptr, |
| 1716 kVcName, kDefaultRtcpEnabled, kDefaultSrtpRequired); | 1740 kVcName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
| 1717 AddOutgoingAudioTrackStats(); | 1741 AddOutgoingAudioTrackStats(); |
| 1718 stats.AddStream(stream_); | 1742 stats.AddStream(stream_); |
| 1719 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); | 1743 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); |
| 1720 | 1744 |
| 1721 // Instruct the session to return stats containing the transport channel. | 1745 // Instruct the session to return stats containing the transport channel. |
| 1722 InitSessionStats(kVcName); | 1746 InitSessionStats(kVcName); |
| 1723 EXPECT_CALL(session_, GetTransportStats(_)) | 1747 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
| 1724 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1748 [this](const ChannelNamePairs&) { |
| 1725 Return(true))); | 1749 return std::unique_ptr<SessionStats>( |
| 1750 new SessionStats(session_stats_)); |
| 1751 })); |
| 1726 | 1752 |
| 1727 stats.RemoveLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); | 1753 stats.RemoveLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); |
| 1728 cricket::VoiceSenderInfo voice_sender_info; | 1754 cricket::VoiceSenderInfo voice_sender_info; |
| 1729 InitVoiceSenderInfo(&voice_sender_info); | 1755 InitVoiceSenderInfo(&voice_sender_info); |
| 1730 | 1756 |
| 1731 // Constructs an ssrc stats update. | 1757 // Constructs an ssrc stats update. |
| 1732 cricket::VoiceMediaInfo stats_read; | 1758 cricket::VoiceMediaInfo stats_read; |
| 1733 stats_read.senders.push_back(voice_sender_info); | 1759 stats_read.senders.push_back(voice_sender_info); |
| 1734 | 1760 |
| 1735 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(Return(&voice_channel)); | 1761 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(Return(&voice_channel)); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1787 webrtc::MediaStream::Create("remotestreamlabel")); | 1813 webrtc::MediaStream::Create("remotestreamlabel")); |
| 1788 rtc::scoped_refptr<FakeAudioTrack> remote_track( | 1814 rtc::scoped_refptr<FakeAudioTrack> remote_track( |
| 1789 new rtc::RefCountedObject<FakeAudioTrack>(kRemoteTrackId)); | 1815 new rtc::RefCountedObject<FakeAudioTrack>(kRemoteTrackId)); |
| 1790 EXPECT_CALL(session_, GetRemoteTrackIdBySsrc(kSsrcOfTrack, _)) | 1816 EXPECT_CALL(session_, GetRemoteTrackIdBySsrc(kSsrcOfTrack, _)) |
| 1791 .WillOnce(DoAll(SetArgPointee<1>(kRemoteTrackId), Return(true))); | 1817 .WillOnce(DoAll(SetArgPointee<1>(kRemoteTrackId), Return(true))); |
| 1792 remote_stream->AddTrack(remote_track); | 1818 remote_stream->AddTrack(remote_track); |
| 1793 stats.AddStream(remote_stream); | 1819 stats.AddStream(remote_stream); |
| 1794 | 1820 |
| 1795 // Instruct the session to return stats containing the transport channel. | 1821 // Instruct the session to return stats containing the transport channel. |
| 1796 InitSessionStats(kVcName); | 1822 InitSessionStats(kVcName); |
| 1797 EXPECT_CALL(session_, GetTransportStats(_)) | 1823 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
| 1798 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1824 [this](const ChannelNamePairs&) { |
| 1799 Return(true))); | 1825 return std::unique_ptr<SessionStats>( |
| 1826 new SessionStats(session_stats_)); |
| 1827 })); |
| 1800 | 1828 |
| 1801 cricket::VoiceSenderInfo voice_sender_info; | 1829 cricket::VoiceSenderInfo voice_sender_info; |
| 1802 InitVoiceSenderInfo(&voice_sender_info); | 1830 InitVoiceSenderInfo(&voice_sender_info); |
| 1803 | 1831 |
| 1804 // Some of the contents in |voice_sender_info| needs to be updated from the | 1832 // Some of the contents in |voice_sender_info| needs to be updated from the |
| 1805 // |audio_track_|. | 1833 // |audio_track_|. |
| 1806 UpdateVoiceSenderInfoFromAudioTrack(audio_track_.get(), &voice_sender_info); | 1834 UpdateVoiceSenderInfoFromAudioTrack(audio_track_.get(), &voice_sender_info); |
| 1807 | 1835 |
| 1808 cricket::VoiceReceiverInfo voice_receiver_info; | 1836 cricket::VoiceReceiverInfo voice_receiver_info; |
| 1809 InitVoiceReceiverInfo(&voice_receiver_info); | 1837 InitVoiceReceiverInfo(&voice_receiver_info); |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1907 StatsCollectorForTest stats(&pc_); | 1935 StatsCollectorForTest stats(&pc_); |
| 1908 | 1936 |
| 1909 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1937 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
| 1910 .WillRepeatedly(Return(false)); | 1938 .WillRepeatedly(Return(false)); |
| 1911 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1939 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
| 1912 .WillRepeatedly(Return(nullptr)); | 1940 .WillRepeatedly(Return(nullptr)); |
| 1913 | 1941 |
| 1914 const char kVideoChannelName[] = "video"; | 1942 const char kVideoChannelName[] = "video"; |
| 1915 | 1943 |
| 1916 InitSessionStats(kVideoChannelName); | 1944 InitSessionStats(kVideoChannelName); |
| 1917 EXPECT_CALL(session_, GetTransportStats(_)) | 1945 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
| 1918 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), Return(true))); | 1946 [this](const ChannelNamePairs&) { |
| 1947 return std::unique_ptr<SessionStats>( |
| 1948 new SessionStats(session_stats_)); |
| 1949 })); |
| 1919 | 1950 |
| 1920 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1951 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
| 1921 cricket::VideoChannel video_channel( | 1952 cricket::VideoChannel video_channel( |
| 1922 worker_thread_, network_thread_, media_channel, nullptr, | 1953 worker_thread_, network_thread_, media_channel, nullptr, |
| 1923 kVideoChannelName, kDefaultRtcpEnabled, kDefaultSrtpRequired); | 1954 kVideoChannelName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
| 1924 StatsReports reports; // returned values. | 1955 StatsReports reports; // returned values. |
| 1925 cricket::VideoSenderInfo video_sender_info; | 1956 cricket::VideoSenderInfo video_sender_info; |
| 1926 cricket::VideoMediaInfo stats_read; | 1957 cricket::VideoMediaInfo stats_read; |
| 1927 | 1958 |
| 1928 AddOutgoingVideoTrackStats(); | 1959 AddOutgoingVideoTrackStats(); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1952 StatsCollectorForTest stats(&pc_); | 1983 StatsCollectorForTest stats(&pc_); |
| 1953 | 1984 |
| 1954 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1985 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
| 1955 .WillRepeatedly(Return(false)); | 1986 .WillRepeatedly(Return(false)); |
| 1956 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1987 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
| 1957 .WillRepeatedly(Return(nullptr)); | 1988 .WillRepeatedly(Return(nullptr)); |
| 1958 | 1989 |
| 1959 const char kVideoChannelName[] = "video"; | 1990 const char kVideoChannelName[] = "video"; |
| 1960 | 1991 |
| 1961 InitSessionStats(kVideoChannelName); | 1992 InitSessionStats(kVideoChannelName); |
| 1962 EXPECT_CALL(session_, GetTransportStats(_)) | 1993 EXPECT_CALL(session_, GetStats(_)).WillRepeatedly(Invoke( |
| 1963 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), Return(true))); | 1994 [this](const ChannelNamePairs&) { |
| 1995 return std::unique_ptr<SessionStats>( |
| 1996 new SessionStats(session_stats_)); |
| 1997 })); |
| 1964 | 1998 |
| 1965 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1999 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
| 1966 cricket::VideoChannel video_channel( | 2000 cricket::VideoChannel video_channel( |
| 1967 worker_thread_, network_thread_, media_channel, nullptr, | 2001 worker_thread_, network_thread_, media_channel, nullptr, |
| 1968 kVideoChannelName, kDefaultRtcpEnabled, kDefaultSrtpRequired); | 2002 kVideoChannelName, kDefaultRtcpEnabled, kDefaultSrtpRequired); |
| 1969 StatsReports reports; // returned values. | 2003 StatsReports reports; // returned values. |
| 1970 cricket::VideoReceiverInfo video_receiver_info; | 2004 cricket::VideoReceiverInfo video_receiver_info; |
| 1971 cricket::VideoMediaInfo stats_read; | 2005 cricket::VideoMediaInfo stats_read; |
| 1972 | 2006 |
| 1973 AddIncomingVideoTrackStats(); | 2007 AddIncomingVideoTrackStats(); |
| 1974 stats.AddStream(stream_); | 2008 stats.AddStream(stream_); |
| 1975 | 2009 |
| 1976 // Construct a stats value to read. | 2010 // Construct a stats value to read. |
| 1977 video_receiver_info.add_ssrc(1234); | 2011 video_receiver_info.add_ssrc(1234); |
| 1978 video_receiver_info.frames_decoded = 10; | 2012 video_receiver_info.frames_decoded = 10; |
| 1979 stats_read.receivers.push_back(video_receiver_info); | 2013 stats_read.receivers.push_back(video_receiver_info); |
| 1980 | 2014 |
| 1981 EXPECT_CALL(session_, video_channel()).WillRepeatedly(Return(&video_channel)); | 2015 EXPECT_CALL(session_, video_channel()).WillRepeatedly(Return(&video_channel)); |
| 1982 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); | 2016 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); |
| 1983 EXPECT_CALL(*media_channel, GetStats(_)) | 2017 EXPECT_CALL(*media_channel, GetStats(_)) |
| 1984 .WillOnce(DoAll(SetArgPointee<0>(stats_read), Return(true))); | 2018 .WillOnce(DoAll(SetArgPointee<0>(stats_read), Return(true))); |
| 1985 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); | 2019 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); |
| 1986 stats.GetStats(NULL, &reports); | 2020 stats.GetStats(NULL, &reports); |
| 1987 EXPECT_EQ(rtc::ToString(video_receiver_info.frames_decoded), | 2021 EXPECT_EQ(rtc::ToString(video_receiver_info.frames_decoded), |
| 1988 ExtractSsrcStatsValue(reports, | 2022 ExtractSsrcStatsValue(reports, |
| 1989 StatsReport::kStatsValueNameFramesDecoded)); | 2023 StatsReport::kStatsValueNameFramesDecoded)); |
| 1990 } | 2024 } |
| 1991 | 2025 |
| 1992 } // namespace webrtc | 2026 } // namespace webrtc |
| OLD | NEW |