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 cricket { | 53 namespace cricket { |
53 | 54 |
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
497 channel_manager_(new cricket::ChannelManager(media_engine_, | 498 channel_manager_(new cricket::ChannelManager(media_engine_, |
498 worker_thread_, | 499 worker_thread_, |
499 network_thread_)), | 500 network_thread_)), |
500 media_controller_( | 501 media_controller_( |
501 webrtc::MediaControllerInterface::Create(cricket::MediaConfig(), | 502 webrtc::MediaControllerInterface::Create(cricket::MediaConfig(), |
502 worker_thread_, | 503 worker_thread_, |
503 channel_manager_.get(), | 504 channel_manager_.get(), |
504 &event_log_)), | 505 &event_log_)), |
505 session_(media_controller_.get()) { | 506 session_(media_controller_.get()) { |
506 // By default, we ignore session GetStats calls. | 507 // By default, we ignore session GetStats calls. |
507 EXPECT_CALL(session_, GetTransportStats(_)).WillRepeatedly(Return(false)); | 508 EXPECT_CALL(session_, GetSessionStats(_)).WillRepeatedly(ReturnNull()); |
508 // Add default returns for mock classes. | 509 // Add default returns for mock classes. |
509 EXPECT_CALL(session_, video_channel()).WillRepeatedly(ReturnNull()); | 510 EXPECT_CALL(session_, video_channel()).WillRepeatedly(ReturnNull()); |
510 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); | 511 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); |
511 EXPECT_CALL(pc_, session()).WillRepeatedly(Return(&session_)); | 512 EXPECT_CALL(pc_, session()).WillRepeatedly(Return(&session_)); |
512 EXPECT_CALL(pc_, sctp_data_channels()) | 513 EXPECT_CALL(pc_, sctp_data_channels()) |
513 .WillRepeatedly(ReturnRef(data_channels_)); | 514 .WillRepeatedly(ReturnRef(data_channels_)); |
514 } | 515 } |
515 | 516 |
516 ~StatsCollectorTest() {} | 517 ~StatsCollectorTest() {} |
517 | 518 |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
600 cricket::VoiceSenderInfo* voice_sender_info, | 601 cricket::VoiceSenderInfo* voice_sender_info, |
601 cricket::VoiceReceiverInfo* voice_receiver_info, | 602 cricket::VoiceReceiverInfo* voice_receiver_info, |
602 cricket::VoiceMediaInfo* stats_read, | 603 cricket::VoiceMediaInfo* stats_read, |
603 StatsReports* reports) { | 604 StatsReports* reports) { |
604 // A track can't have both sender report and recv report at the same time | 605 // A track can't have both sender report and recv report at the same time |
605 // for now, this might change in the future though. | 606 // for now, this might change in the future though. |
606 ASSERT((voice_sender_info == NULL) ^ (voice_receiver_info == NULL)); | 607 ASSERT((voice_sender_info == NULL) ^ (voice_receiver_info == NULL)); |
607 | 608 |
608 // Instruct the session to return stats containing the transport channel. | 609 // Instruct the session to return stats containing the transport channel. |
609 InitSessionStats(vc_name); | 610 InitSessionStats(vc_name); |
610 EXPECT_CALL(session_, GetTransportStats(_)) | 611 EXPECT_CALL(session_, GetSessionStats(_)).WillRepeatedly(Invoke( |
611 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 612 [this](const ChannelNamePairs&) { |
612 Return(true))); | 613 return std::unique_ptr<SessionStats>( |
| 614 new SessionStats(session_stats_)); |
| 615 })); |
613 | 616 |
614 // Constructs an ssrc stats update. | 617 // Constructs an ssrc stats update. |
615 if (voice_sender_info) | 618 if (voice_sender_info) |
616 stats_read->senders.push_back(*voice_sender_info); | 619 stats_read->senders.push_back(*voice_sender_info); |
617 if (voice_receiver_info) | 620 if (voice_receiver_info) |
618 stats_read->receivers.push_back(*voice_receiver_info); | 621 stats_read->receivers.push_back(*voice_receiver_info); |
619 | 622 |
620 EXPECT_CALL(session_, voice_channel()).WillRepeatedly( | 623 EXPECT_CALL(session_, voice_channel()).WillRepeatedly( |
621 Return(voice_channel)); | 624 Return(voice_channel)); |
622 EXPECT_CALL(session_, video_channel()).WillRepeatedly(ReturnNull()); | 625 EXPECT_CALL(session_, video_channel()).WillRepeatedly(ReturnNull()); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
700 rtc::RTCCertificate::Create(std::unique_ptr<rtc::FakeSSLIdentity>( | 703 rtc::RTCCertificate::Create(std::unique_ptr<rtc::FakeSSLIdentity>( |
701 new rtc::FakeSSLIdentity(local_cert)))); | 704 new rtc::FakeSSLIdentity(local_cert)))); |
702 | 705 |
703 // Configure MockWebRtcSession | 706 // Configure MockWebRtcSession |
704 EXPECT_CALL(session_, | 707 EXPECT_CALL(session_, |
705 GetLocalCertificate(transport_stats.transport_name, _)) | 708 GetLocalCertificate(transport_stats.transport_name, _)) |
706 .WillOnce(DoAll(SetArgPointee<1>(local_certificate), Return(true))); | 709 .WillOnce(DoAll(SetArgPointee<1>(local_certificate), Return(true))); |
707 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer( | 710 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer( |
708 transport_stats.transport_name)) | 711 transport_stats.transport_name)) |
709 .WillOnce(Return(remote_cert.release())); | 712 .WillOnce(Return(remote_cert.release())); |
710 EXPECT_CALL(session_, GetTransportStats(_)) | 713 EXPECT_CALL(session_, GetSessionStats(_)).WillOnce(Invoke( |
711 .WillOnce(DoAll(SetArgPointee<0>(session_stats), | 714 [&session_stats](const ChannelNamePairs&) { |
712 Return(true))); | 715 return std::unique_ptr<SessionStats>( |
| 716 new SessionStats(session_stats)); |
| 717 })); |
713 | 718 |
714 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); | 719 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); |
715 | 720 |
716 stats.GetStats(NULL, &reports); | 721 stats.GetStats(NULL, &reports); |
717 | 722 |
718 const StatsReport* channel_report = FindNthReportByType( | 723 const StatsReport* channel_report = FindNthReportByType( |
719 reports, StatsReport::kStatsReportTypeComponent, 1); | 724 reports, StatsReport::kStatsReportTypeComponent, 1); |
720 EXPECT_TRUE(channel_report != NULL); | 725 EXPECT_TRUE(channel_report != NULL); |
721 | 726 |
722 // Check local certificate chain. | 727 // Check local certificate chain. |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
841 StatsCollectorForTest stats(&pc_); | 846 StatsCollectorForTest stats(&pc_); |
842 | 847 |
843 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 848 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
844 .WillRepeatedly(Return(false)); | 849 .WillRepeatedly(Return(false)); |
845 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 850 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
846 .WillRepeatedly(Return(nullptr)); | 851 .WillRepeatedly(Return(nullptr)); |
847 | 852 |
848 const char kVideoChannelName[] = "video"; | 853 const char kVideoChannelName[] = "video"; |
849 | 854 |
850 InitSessionStats(kVideoChannelName); | 855 InitSessionStats(kVideoChannelName); |
851 EXPECT_CALL(session_, GetTransportStats(_)) | 856 EXPECT_CALL(session_, GetSessionStats(_)).WillRepeatedly(Invoke( |
852 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 857 [this](const ChannelNamePairs&) { |
853 Return(true))); | 858 return std::unique_ptr<SessionStats>( |
| 859 new SessionStats(session_stats_)); |
| 860 })); |
854 | 861 |
855 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 862 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
856 cricket::VideoChannel video_channel(worker_thread_, network_thread_, | 863 cricket::VideoChannel video_channel(worker_thread_, network_thread_, |
857 media_channel, nullptr, kVideoChannelName, | 864 media_channel, nullptr, kVideoChannelName, |
858 false); | 865 false); |
859 StatsReports reports; // returned values. | 866 StatsReports reports; // returned values. |
860 cricket::VideoSenderInfo video_sender_info; | 867 cricket::VideoSenderInfo video_sender_info; |
861 cricket::VideoMediaInfo stats_read; | 868 cricket::VideoMediaInfo stats_read; |
862 // The number of bytes must be larger than 0xFFFFFFFF for this test. | 869 // The number of bytes must be larger than 0xFFFFFFFF for this test. |
863 const int64_t kBytesSent = 12345678901234LL; | 870 const int64_t kBytesSent = 12345678901234LL; |
(...skipping 24 matching lines...) Expand all Loading... |
888 StatsCollectorForTest stats(&pc_); | 895 StatsCollectorForTest stats(&pc_); |
889 | 896 |
890 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 897 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
891 .WillRepeatedly(Return(false)); | 898 .WillRepeatedly(Return(false)); |
892 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 899 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
893 .WillRepeatedly(Return(nullptr)); | 900 .WillRepeatedly(Return(nullptr)); |
894 | 901 |
895 const char kVideoChannelName[] = "video"; | 902 const char kVideoChannelName[] = "video"; |
896 | 903 |
897 InitSessionStats(kVideoChannelName); | 904 InitSessionStats(kVideoChannelName); |
898 EXPECT_CALL(session_, GetTransportStats(_)) | 905 EXPECT_CALL(session_, GetSessionStats(_)).WillRepeatedly(Invoke( |
899 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 906 [this](const ChannelNamePairs&) { |
900 Return(true))); | 907 return std::unique_ptr<SessionStats>( |
| 908 new SessionStats(session_stats_)); |
| 909 })); |
901 | 910 |
902 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 911 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
903 cricket::VideoChannel video_channel(worker_thread_, network_thread_, | 912 cricket::VideoChannel video_channel(worker_thread_, network_thread_, |
904 media_channel, nullptr, kVideoChannelName, | 913 media_channel, nullptr, kVideoChannelName, |
905 false); | 914 false); |
906 | 915 |
907 StatsReports reports; // returned values. | 916 StatsReports reports; // returned values. |
908 cricket::VideoSenderInfo video_sender_info; | 917 cricket::VideoSenderInfo video_sender_info; |
909 cricket::VideoMediaInfo stats_read; | 918 cricket::VideoMediaInfo stats_read; |
910 // Set up an SSRC just to test that we get both kinds of stats back: SSRC and | 919 // Set up an SSRC just to test that we get both kinds of stats back: SSRC and |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1000 TEST_F(StatsCollectorTest, TrackAndSsrcObjectExistAfterUpdateSsrcStats) { | 1009 TEST_F(StatsCollectorTest, TrackAndSsrcObjectExistAfterUpdateSsrcStats) { |
1001 StatsCollectorForTest stats(&pc_); | 1010 StatsCollectorForTest stats(&pc_); |
1002 | 1011 |
1003 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1012 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1004 .WillRepeatedly(Return(false)); | 1013 .WillRepeatedly(Return(false)); |
1005 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1014 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1006 .WillRepeatedly(Return(nullptr)); | 1015 .WillRepeatedly(Return(nullptr)); |
1007 | 1016 |
1008 const char kVideoChannelName[] = "video"; | 1017 const char kVideoChannelName[] = "video"; |
1009 InitSessionStats(kVideoChannelName); | 1018 InitSessionStats(kVideoChannelName); |
1010 EXPECT_CALL(session_, GetTransportStats(_)) | 1019 EXPECT_CALL(session_, GetSessionStats(_)).WillRepeatedly(Invoke( |
1011 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1020 [this](const ChannelNamePairs&) { |
1012 Return(true))); | 1021 return std::unique_ptr<SessionStats>( |
| 1022 new SessionStats(session_stats_)); |
| 1023 })); |
1013 | 1024 |
1014 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1025 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1015 cricket::VideoChannel video_channel(worker_thread_, network_thread_, | 1026 cricket::VideoChannel video_channel(worker_thread_, network_thread_, |
1016 media_channel, nullptr, kVideoChannelName, | 1027 media_channel, nullptr, kVideoChannelName, |
1017 false); | 1028 false); |
1018 AddOutgoingVideoTrackStats(); | 1029 AddOutgoingVideoTrackStats(); |
1019 stats.AddStream(stream_); | 1030 stats.AddStream(stream_); |
1020 | 1031 |
1021 // Constructs an ssrc stats update. | 1032 // Constructs an ssrc stats update. |
1022 cricket::VideoSenderInfo video_sender_info; | 1033 cricket::VideoSenderInfo video_sender_info; |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1096 video_sender_info.bytes_sent = kBytesSent; | 1107 video_sender_info.bytes_sent = kBytesSent; |
1097 stats_read.senders.push_back(video_sender_info); | 1108 stats_read.senders.push_back(video_sender_info); |
1098 | 1109 |
1099 EXPECT_CALL(session_, video_channel()).WillRepeatedly(Return(&video_channel)); | 1110 EXPECT_CALL(session_, video_channel()).WillRepeatedly(Return(&video_channel)); |
1100 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); | 1111 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); |
1101 EXPECT_CALL(*media_channel, GetStats(_)) | 1112 EXPECT_CALL(*media_channel, GetStats(_)) |
1102 .WillRepeatedly(DoAll(SetArgPointee<0>(stats_read), | 1113 .WillRepeatedly(DoAll(SetArgPointee<0>(stats_read), |
1103 Return(true))); | 1114 Return(true))); |
1104 | 1115 |
1105 InitSessionStats(kVcName); | 1116 InitSessionStats(kVcName); |
1106 EXPECT_CALL(session_, GetTransportStats(_)) | 1117 EXPECT_CALL(session_, GetSessionStats(_)).WillRepeatedly(Invoke( |
1107 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1118 [this](const ChannelNamePairs&) { |
1108 Return(true))); | 1119 return std::unique_ptr<SessionStats>( |
| 1120 new SessionStats(session_stats_)); |
| 1121 })); |
1109 | 1122 |
1110 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); | 1123 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); |
1111 StatsReports reports; | 1124 StatsReports reports; |
1112 stats.GetStats(NULL, &reports); | 1125 stats.GetStats(NULL, &reports); |
1113 std::string transport_id = ExtractStatsValue( | 1126 std::string transport_id = ExtractStatsValue( |
1114 StatsReport::kStatsReportTypeSsrc, | 1127 StatsReport::kStatsReportTypeSsrc, |
1115 reports, | 1128 reports, |
1116 StatsReport::kStatsValueNameTransportId); | 1129 StatsReport::kStatsValueNameTransportId); |
1117 ASSERT_NE(kNotFound, transport_id); | 1130 ASSERT_NE(kNotFound, transport_id); |
1118 // Transport id component ID will always be 1. | 1131 // Transport id component ID will always be 1. |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1165 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1178 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1166 // The transport_name known by the video channel. | 1179 // The transport_name known by the video channel. |
1167 const std::string kVcName("vcname"); | 1180 const std::string kVcName("vcname"); |
1168 cricket::VideoChannel video_channel(worker_thread_, network_thread_, | 1181 cricket::VideoChannel video_channel(worker_thread_, network_thread_, |
1169 media_channel, nullptr, kVcName, false); | 1182 media_channel, nullptr, kVcName, false); |
1170 AddOutgoingVideoTrackStats(); | 1183 AddOutgoingVideoTrackStats(); |
1171 stats.AddStream(stream_); | 1184 stats.AddStream(stream_); |
1172 | 1185 |
1173 // Instruct the session to return stats containing the transport channel. | 1186 // Instruct the session to return stats containing the transport channel. |
1174 InitSessionStats(kVcName); | 1187 InitSessionStats(kVcName); |
1175 EXPECT_CALL(session_, GetTransportStats(_)) | 1188 EXPECT_CALL(session_, GetSessionStats(_)).WillRepeatedly(Invoke( |
1176 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1189 [this](const ChannelNamePairs&) { |
1177 Return(true))); | 1190 return std::unique_ptr<SessionStats>( |
| 1191 new SessionStats(session_stats_)); |
| 1192 })); |
1178 | 1193 |
1179 // Constructs an ssrc stats update. | 1194 // Constructs an ssrc stats update. |
1180 cricket::VideoMediaInfo stats_read; | 1195 cricket::VideoMediaInfo stats_read; |
1181 | 1196 |
1182 cricket::SsrcReceiverInfo remote_ssrc_stats; | 1197 cricket::SsrcReceiverInfo remote_ssrc_stats; |
1183 remote_ssrc_stats.timestamp = 12345.678; | 1198 remote_ssrc_stats.timestamp = 12345.678; |
1184 remote_ssrc_stats.ssrc = kSsrcOfTrack; | 1199 remote_ssrc_stats.ssrc = kSsrcOfTrack; |
1185 cricket::VideoSenderInfo video_sender_info; | 1200 cricket::VideoSenderInfo video_sender_info; |
1186 video_sender_info.add_ssrc(kSsrcOfTrack); | 1201 video_sender_info.add_ssrc(kSsrcOfTrack); |
1187 video_sender_info.remote_stats.push_back(remote_ssrc_stats); | 1202 video_sender_info.remote_stats.push_back(remote_ssrc_stats); |
(...skipping 20 matching lines...) Expand all Loading... |
1208 TEST_F(StatsCollectorTest, ReportsFromRemoteTrack) { | 1223 TEST_F(StatsCollectorTest, ReportsFromRemoteTrack) { |
1209 StatsCollectorForTest stats(&pc_); | 1224 StatsCollectorForTest stats(&pc_); |
1210 | 1225 |
1211 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1226 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1212 .WillRepeatedly(Return(false)); | 1227 .WillRepeatedly(Return(false)); |
1213 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1228 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1214 .WillRepeatedly(Return(nullptr)); | 1229 .WillRepeatedly(Return(nullptr)); |
1215 | 1230 |
1216 const char kVideoChannelName[] = "video"; | 1231 const char kVideoChannelName[] = "video"; |
1217 InitSessionStats(kVideoChannelName); | 1232 InitSessionStats(kVideoChannelName); |
1218 EXPECT_CALL(session_, GetTransportStats(_)) | 1233 EXPECT_CALL(session_, GetSessionStats(_)).WillRepeatedly(Invoke( |
1219 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1234 [this](const ChannelNamePairs&) { |
1220 Return(true))); | 1235 return std::unique_ptr<SessionStats>( |
| 1236 new SessionStats(session_stats_)); |
| 1237 })); |
1221 | 1238 |
1222 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1239 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1223 cricket::VideoChannel video_channel(worker_thread_, network_thread_, | 1240 cricket::VideoChannel video_channel(worker_thread_, network_thread_, |
1224 media_channel, nullptr, kVideoChannelName, | 1241 media_channel, nullptr, kVideoChannelName, |
1225 false); | 1242 false); |
1226 AddIncomingVideoTrackStats(); | 1243 AddIncomingVideoTrackStats(); |
1227 stats.AddStream(stream_); | 1244 stats.AddStream(stream_); |
1228 | 1245 |
1229 // Constructs an ssrc stats update. | 1246 // Constructs an ssrc stats update. |
1230 cricket::VideoReceiverInfo video_receiver_info; | 1247 cricket::VideoReceiverInfo video_receiver_info; |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1414 | 1431 |
1415 cricket::TransportStats transport_stats; | 1432 cricket::TransportStats transport_stats; |
1416 transport_stats.transport_name = "audio"; | 1433 transport_stats.transport_name = "audio"; |
1417 transport_stats.channel_stats.push_back(channel_stats); | 1434 transport_stats.channel_stats.push_back(channel_stats); |
1418 | 1435 |
1419 SessionStats session_stats; | 1436 SessionStats session_stats; |
1420 session_stats.transport_stats[transport_stats.transport_name] = | 1437 session_stats.transport_stats[transport_stats.transport_name] = |
1421 transport_stats; | 1438 transport_stats; |
1422 | 1439 |
1423 // Configure MockWebRtcSession | 1440 // Configure MockWebRtcSession |
1424 EXPECT_CALL(session_, GetTransportStats(_)) | 1441 EXPECT_CALL(session_, GetSessionStats(_)).WillRepeatedly(Invoke( |
1425 .WillOnce(DoAll(SetArgPointee<0>(session_stats), | 1442 [&session_stats](const ChannelNamePairs&) { |
1426 Return(true))); | 1443 return std::unique_ptr<SessionStats>( |
| 1444 new SessionStats(session_stats)); |
| 1445 })); |
1427 | 1446 |
1428 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); | 1447 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); |
1429 stats.GetStats(NULL, &reports); | 1448 stats.GetStats(NULL, &reports); |
1430 | 1449 |
1431 // Check that the local certificate is absent. | 1450 // Check that the local certificate is absent. |
1432 std::string local_certificate_id = ExtractStatsValue( | 1451 std::string local_certificate_id = ExtractStatsValue( |
1433 StatsReport::kStatsReportTypeComponent, | 1452 StatsReport::kStatsReportTypeComponent, |
1434 reports, | 1453 reports, |
1435 StatsReport::kStatsValueNameLocalCertificateId); | 1454 StatsReport::kStatsValueNameLocalCertificateId); |
1436 ASSERT_EQ(kNotFound, local_certificate_id); | 1455 ASSERT_EQ(kNotFound, local_certificate_id); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1471 | 1490 |
1472 cricket::TransportStats transport_stats; | 1491 cricket::TransportStats transport_stats; |
1473 transport_stats.transport_name = "audio"; | 1492 transport_stats.transport_name = "audio"; |
1474 transport_stats.channel_stats.push_back(channel_stats); | 1493 transport_stats.channel_stats.push_back(channel_stats); |
1475 | 1494 |
1476 SessionStats session_stats; | 1495 SessionStats session_stats; |
1477 session_stats.transport_stats[transport_stats.transport_name] = | 1496 session_stats.transport_stats[transport_stats.transport_name] = |
1478 transport_stats; | 1497 transport_stats; |
1479 | 1498 |
1480 // Configure MockWebRtcSession | 1499 // Configure MockWebRtcSession |
1481 EXPECT_CALL(session_, GetTransportStats(_)) | 1500 EXPECT_CALL(session_, GetSessionStats(_)).WillRepeatedly(Invoke( |
1482 .WillOnce(DoAll(SetArgPointee<0>(session_stats), | 1501 [&session_stats](const ChannelNamePairs&) { |
1483 Return(true))); | 1502 return std::unique_ptr<SessionStats>( |
| 1503 new SessionStats(session_stats)); |
| 1504 })); |
1484 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); | 1505 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); |
1485 stats.GetStats(NULL, &reports); | 1506 stats.GetStats(NULL, &reports); |
1486 | 1507 |
1487 // Check that the local certificate is absent. | 1508 // Check that the local certificate is absent. |
1488 std::string local_certificate_id = ExtractStatsValue( | 1509 std::string local_certificate_id = ExtractStatsValue( |
1489 StatsReport::kStatsReportTypeComponent, | 1510 StatsReport::kStatsReportTypeComponent, |
1490 reports, | 1511 reports, |
1491 StatsReport::kStatsValueNameLocalCertificateId); | 1512 StatsReport::kStatsValueNameLocalCertificateId); |
1492 ASSERT_EQ(kNotFound, local_certificate_id); | 1513 ASSERT_EQ(kNotFound, local_certificate_id); |
1493 | 1514 |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1550 webrtc::MediaStream::Create("remotestreamlabel")); | 1571 webrtc::MediaStream::Create("remotestreamlabel")); |
1551 rtc::scoped_refptr<FakeAudioTrackWithInitValue> remote_track( | 1572 rtc::scoped_refptr<FakeAudioTrackWithInitValue> remote_track( |
1552 new rtc::RefCountedObject<FakeAudioTrackWithInitValue>(kRemoteTrackId)); | 1573 new rtc::RefCountedObject<FakeAudioTrackWithInitValue>(kRemoteTrackId)); |
1553 EXPECT_CALL(session_, GetRemoteTrackIdBySsrc(kSsrcOfTrack, _)) | 1574 EXPECT_CALL(session_, GetRemoteTrackIdBySsrc(kSsrcOfTrack, _)) |
1554 .WillOnce(DoAll(SetArgPointee<1>(kRemoteTrackId), Return(true))); | 1575 .WillOnce(DoAll(SetArgPointee<1>(kRemoteTrackId), Return(true))); |
1555 remote_stream->AddTrack(remote_track); | 1576 remote_stream->AddTrack(remote_track); |
1556 stats.AddStream(remote_stream); | 1577 stats.AddStream(remote_stream); |
1557 | 1578 |
1558 // Instruct the session to return stats containing the transport channel. | 1579 // Instruct the session to return stats containing the transport channel. |
1559 InitSessionStats(kVcName); | 1580 InitSessionStats(kVcName); |
1560 EXPECT_CALL(session_, GetTransportStats(_)) | 1581 EXPECT_CALL(session_, GetSessionStats(_)).WillRepeatedly(Invoke( |
1561 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), Return(true))); | 1582 [this](const ChannelNamePairs&) { |
| 1583 return std::unique_ptr<SessionStats>( |
| 1584 new SessionStats(session_stats_)); |
| 1585 })); |
1562 | 1586 |
1563 cricket::VoiceSenderInfo voice_sender_info; | 1587 cricket::VoiceSenderInfo voice_sender_info; |
1564 voice_sender_info.add_ssrc(kSsrcOfTrack); | 1588 voice_sender_info.add_ssrc(kSsrcOfTrack); |
1565 // These values are set to -1 initially in audio_send_stream. | 1589 // These values are set to -1 initially in audio_send_stream. |
1566 // The voice_sender_info will read the values from audio_send_stream. | 1590 // The voice_sender_info will read the values from audio_send_stream. |
1567 voice_sender_info.rtt_ms = -1; | 1591 voice_sender_info.rtt_ms = -1; |
1568 voice_sender_info.packets_lost = -1; | 1592 voice_sender_info.packets_lost = -1; |
1569 voice_sender_info.jitter_ms = -1; | 1593 voice_sender_info.jitter_ms = -1; |
1570 | 1594 |
1571 // Some of the contents in |voice_sender_info| needs to be updated from the | 1595 // 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... |
1704 const std::string kVcName("vcname"); | 1728 const std::string kVcName("vcname"); |
1705 cricket::VoiceChannel voice_channel(worker_thread_, network_thread_, | 1729 cricket::VoiceChannel voice_channel(worker_thread_, network_thread_, |
1706 media_engine_, media_channel, nullptr, | 1730 media_engine_, media_channel, nullptr, |
1707 kVcName, false); | 1731 kVcName, false); |
1708 AddOutgoingAudioTrackStats(); | 1732 AddOutgoingAudioTrackStats(); |
1709 stats.AddStream(stream_); | 1733 stats.AddStream(stream_); |
1710 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); | 1734 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); |
1711 | 1735 |
1712 // Instruct the session to return stats containing the transport channel. | 1736 // Instruct the session to return stats containing the transport channel. |
1713 InitSessionStats(kVcName); | 1737 InitSessionStats(kVcName); |
1714 EXPECT_CALL(session_, GetTransportStats(_)) | 1738 EXPECT_CALL(session_, GetSessionStats(_)).WillRepeatedly(Invoke( |
1715 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1739 [this](const ChannelNamePairs&) { |
1716 Return(true))); | 1740 return std::unique_ptr<SessionStats>( |
| 1741 new SessionStats(session_stats_)); |
| 1742 })); |
1717 | 1743 |
1718 stats.RemoveLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); | 1744 stats.RemoveLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); |
1719 cricket::VoiceSenderInfo voice_sender_info; | 1745 cricket::VoiceSenderInfo voice_sender_info; |
1720 InitVoiceSenderInfo(&voice_sender_info); | 1746 InitVoiceSenderInfo(&voice_sender_info); |
1721 | 1747 |
1722 // Constructs an ssrc stats update. | 1748 // Constructs an ssrc stats update. |
1723 cricket::VoiceMediaInfo stats_read; | 1749 cricket::VoiceMediaInfo stats_read; |
1724 stats_read.senders.push_back(voice_sender_info); | 1750 stats_read.senders.push_back(voice_sender_info); |
1725 | 1751 |
1726 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(Return(&voice_channel)); | 1752 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(Return(&voice_channel)); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1778 webrtc::MediaStream::Create("remotestreamlabel")); | 1804 webrtc::MediaStream::Create("remotestreamlabel")); |
1779 rtc::scoped_refptr<FakeAudioTrack> remote_track( | 1805 rtc::scoped_refptr<FakeAudioTrack> remote_track( |
1780 new rtc::RefCountedObject<FakeAudioTrack>(kRemoteTrackId)); | 1806 new rtc::RefCountedObject<FakeAudioTrack>(kRemoteTrackId)); |
1781 EXPECT_CALL(session_, GetRemoteTrackIdBySsrc(kSsrcOfTrack, _)) | 1807 EXPECT_CALL(session_, GetRemoteTrackIdBySsrc(kSsrcOfTrack, _)) |
1782 .WillOnce(DoAll(SetArgPointee<1>(kRemoteTrackId), Return(true))); | 1808 .WillOnce(DoAll(SetArgPointee<1>(kRemoteTrackId), Return(true))); |
1783 remote_stream->AddTrack(remote_track); | 1809 remote_stream->AddTrack(remote_track); |
1784 stats.AddStream(remote_stream); | 1810 stats.AddStream(remote_stream); |
1785 | 1811 |
1786 // Instruct the session to return stats containing the transport channel. | 1812 // Instruct the session to return stats containing the transport channel. |
1787 InitSessionStats(kVcName); | 1813 InitSessionStats(kVcName); |
1788 EXPECT_CALL(session_, GetTransportStats(_)) | 1814 EXPECT_CALL(session_, GetSessionStats(_)).WillRepeatedly(Invoke( |
1789 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1815 [this](const ChannelNamePairs&) { |
1790 Return(true))); | 1816 return std::unique_ptr<SessionStats>( |
| 1817 new SessionStats(session_stats_)); |
| 1818 })); |
1791 | 1819 |
1792 cricket::VoiceSenderInfo voice_sender_info; | 1820 cricket::VoiceSenderInfo voice_sender_info; |
1793 InitVoiceSenderInfo(&voice_sender_info); | 1821 InitVoiceSenderInfo(&voice_sender_info); |
1794 | 1822 |
1795 // Some of the contents in |voice_sender_info| needs to be updated from the | 1823 // Some of the contents in |voice_sender_info| needs to be updated from the |
1796 // |audio_track_|. | 1824 // |audio_track_|. |
1797 UpdateVoiceSenderInfoFromAudioTrack(audio_track_.get(), &voice_sender_info); | 1825 UpdateVoiceSenderInfoFromAudioTrack(audio_track_.get(), &voice_sender_info); |
1798 | 1826 |
1799 cricket::VoiceReceiverInfo voice_receiver_info; | 1827 cricket::VoiceReceiverInfo voice_receiver_info; |
1800 InitVoiceReceiverInfo(&voice_receiver_info); | 1828 InitVoiceReceiverInfo(&voice_receiver_info); |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1898 StatsCollectorForTest stats(&pc_); | 1926 StatsCollectorForTest stats(&pc_); |
1899 | 1927 |
1900 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1928 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1901 .WillRepeatedly(Return(false)); | 1929 .WillRepeatedly(Return(false)); |
1902 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1930 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1903 .WillRepeatedly(Return(nullptr)); | 1931 .WillRepeatedly(Return(nullptr)); |
1904 | 1932 |
1905 const char kVideoChannelName[] = "video"; | 1933 const char kVideoChannelName[] = "video"; |
1906 | 1934 |
1907 InitSessionStats(kVideoChannelName); | 1935 InitSessionStats(kVideoChannelName); |
1908 EXPECT_CALL(session_, GetTransportStats(_)) | 1936 EXPECT_CALL(session_, GetSessionStats(_)).WillRepeatedly(Invoke( |
1909 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), Return(true))); | 1937 [this](const ChannelNamePairs&) { |
| 1938 return std::unique_ptr<SessionStats>( |
| 1939 new SessionStats(session_stats_)); |
| 1940 })); |
1910 | 1941 |
1911 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1942 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1912 cricket::VideoChannel video_channel(worker_thread_, network_thread_, | 1943 cricket::VideoChannel video_channel(worker_thread_, network_thread_, |
1913 media_channel, nullptr, kVideoChannelName, | 1944 media_channel, nullptr, kVideoChannelName, |
1914 false); | 1945 false); |
1915 StatsReports reports; // returned values. | 1946 StatsReports reports; // returned values. |
1916 cricket::VideoSenderInfo video_sender_info; | 1947 cricket::VideoSenderInfo video_sender_info; |
1917 cricket::VideoMediaInfo stats_read; | 1948 cricket::VideoMediaInfo stats_read; |
1918 | 1949 |
1919 AddOutgoingVideoTrackStats(); | 1950 AddOutgoingVideoTrackStats(); |
(...skipping 23 matching lines...) Expand all Loading... |
1943 StatsCollectorForTest stats(&pc_); | 1974 StatsCollectorForTest stats(&pc_); |
1944 | 1975 |
1945 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1976 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1946 .WillRepeatedly(Return(false)); | 1977 .WillRepeatedly(Return(false)); |
1947 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1978 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1948 .WillRepeatedly(Return(nullptr)); | 1979 .WillRepeatedly(Return(nullptr)); |
1949 | 1980 |
1950 const char kVideoChannelName[] = "video"; | 1981 const char kVideoChannelName[] = "video"; |
1951 | 1982 |
1952 InitSessionStats(kVideoChannelName); | 1983 InitSessionStats(kVideoChannelName); |
1953 EXPECT_CALL(session_, GetTransportStats(_)) | 1984 EXPECT_CALL(session_, GetSessionStats(_)).WillRepeatedly(Invoke( |
1954 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), Return(true))); | 1985 [this](const ChannelNamePairs&) { |
| 1986 return std::unique_ptr<SessionStats>( |
| 1987 new SessionStats(session_stats_)); |
| 1988 })); |
1955 | 1989 |
1956 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1990 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1957 cricket::VideoChannel video_channel(worker_thread_, network_thread_, | 1991 cricket::VideoChannel video_channel(worker_thread_, network_thread_, |
1958 media_channel, nullptr, kVideoChannelName, | 1992 media_channel, nullptr, kVideoChannelName, |
1959 false); | 1993 false); |
1960 StatsReports reports; // returned values. | 1994 StatsReports reports; // returned values. |
1961 cricket::VideoReceiverInfo video_receiver_info; | 1995 cricket::VideoReceiverInfo video_receiver_info; |
1962 cricket::VideoMediaInfo stats_read; | 1996 cricket::VideoMediaInfo stats_read; |
1963 | 1997 |
1964 AddIncomingVideoTrackStats(); | 1998 AddIncomingVideoTrackStats(); |
1965 stats.AddStream(stream_); | 1999 stats.AddStream(stream_); |
1966 | 2000 |
1967 // Construct a stats value to read. | 2001 // Construct a stats value to read. |
1968 video_receiver_info.add_ssrc(1234); | 2002 video_receiver_info.add_ssrc(1234); |
1969 video_receiver_info.frames_decoded = 10; | 2003 video_receiver_info.frames_decoded = 10; |
1970 stats_read.receivers.push_back(video_receiver_info); | 2004 stats_read.receivers.push_back(video_receiver_info); |
1971 | 2005 |
1972 EXPECT_CALL(session_, video_channel()).WillRepeatedly(Return(&video_channel)); | 2006 EXPECT_CALL(session_, video_channel()).WillRepeatedly(Return(&video_channel)); |
1973 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); | 2007 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); |
1974 EXPECT_CALL(*media_channel, GetStats(_)) | 2008 EXPECT_CALL(*media_channel, GetStats(_)) |
1975 .WillOnce(DoAll(SetArgPointee<0>(stats_read), Return(true))); | 2009 .WillOnce(DoAll(SetArgPointee<0>(stats_read), Return(true))); |
1976 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); | 2010 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); |
1977 stats.GetStats(NULL, &reports); | 2011 stats.GetStats(NULL, &reports); |
1978 EXPECT_EQ(rtc::ToString(video_receiver_info.frames_decoded), | 2012 EXPECT_EQ(rtc::ToString(video_receiver_info.frames_decoded), |
1979 ExtractSsrcStatsValue(reports, | 2013 ExtractSsrcStatsValue(reports, |
1980 StatsReport::kStatsValueNameFramesDecoded)); | 2014 StatsReport::kStatsValueNameFramesDecoded)); |
1981 } | 2015 } |
1982 | 2016 |
1983 } // namespace webrtc | 2017 } // namespace webrtc |
OLD | NEW |