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 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 const char kLocalTrackId[] = "local_track_id"; | 64 const char kLocalTrackId[] = "local_track_id"; |
65 const char kRemoteTrackId[] = "remote_track_id"; | 65 const char kRemoteTrackId[] = "remote_track_id"; |
66 const uint32_t kSsrcOfTrack = 1234; | 66 const uint32_t kSsrcOfTrack = 1234; |
67 | 67 |
68 class MockWebRtcSession : public webrtc::WebRtcSession { | 68 class MockWebRtcSession : public webrtc::WebRtcSession { |
69 public: | 69 public: |
70 explicit MockWebRtcSession(webrtc::MediaControllerInterface* media_controller) | 70 explicit MockWebRtcSession(webrtc::MediaControllerInterface* media_controller) |
71 : WebRtcSession(media_controller, | 71 : WebRtcSession(media_controller, |
72 rtc::Thread::Current(), | 72 rtc::Thread::Current(), |
73 rtc::Thread::Current(), | 73 rtc::Thread::Current(), |
| 74 rtc::Thread::Current(), |
74 nullptr) {} | 75 nullptr) {} |
75 MOCK_METHOD0(voice_channel, cricket::VoiceChannel*()); | 76 MOCK_METHOD0(voice_channel, cricket::VoiceChannel*()); |
76 MOCK_METHOD0(video_channel, cricket::VideoChannel*()); | 77 MOCK_METHOD0(video_channel, cricket::VideoChannel*()); |
77 // Libjingle uses "local" for a outgoing track, and "remote" for a incoming | 78 // Libjingle uses "local" for a outgoing track, and "remote" for a incoming |
78 // track. | 79 // track. |
79 MOCK_METHOD2(GetLocalTrackIdBySsrc, bool(uint32_t, std::string*)); | 80 MOCK_METHOD2(GetLocalTrackIdBySsrc, bool(uint32_t, std::string*)); |
80 MOCK_METHOD2(GetRemoteTrackIdBySsrc, bool(uint32_t, std::string*)); | 81 MOCK_METHOD2(GetRemoteTrackIdBySsrc, bool(uint32_t, std::string*)); |
81 MOCK_METHOD1(GetTransportStats, bool(SessionStats*)); | 82 MOCK_METHOD1(GetTransportStats, bool(SessionStats*)); |
82 MOCK_METHOD2(GetLocalCertificate, | 83 MOCK_METHOD2(GetLocalCertificate, |
83 bool(const std::string& transport_name, | 84 bool(const std::string& transport_name, |
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
486 } | 487 } |
487 | 488 |
488 private: | 489 private: |
489 double time_now_; | 490 double time_now_; |
490 }; | 491 }; |
491 | 492 |
492 class StatsCollectorTest : public testing::Test { | 493 class StatsCollectorTest : public testing::Test { |
493 protected: | 494 protected: |
494 StatsCollectorTest() | 495 StatsCollectorTest() |
495 : media_engine_(new cricket::FakeMediaEngine()), | 496 : media_engine_(new cricket::FakeMediaEngine()), |
496 channel_manager_( | 497 channel_manager_(new cricket::ChannelManager(media_engine_, |
497 new cricket::ChannelManager(media_engine_, rtc::Thread::Current())), | 498 rtc::Thread::Current(), |
| 499 rtc::Thread::Current())), |
498 media_controller_( | 500 media_controller_( |
499 webrtc::MediaControllerInterface::Create(cricket::MediaConfig(), | 501 webrtc::MediaControllerInterface::Create(cricket::MediaConfig(), |
500 rtc::Thread::Current(), | 502 rtc::Thread::Current(), |
501 channel_manager_.get())), | 503 channel_manager_.get())), |
502 session_(media_controller_.get()) { | 504 session_(media_controller_.get()) { |
503 // By default, we ignore session GetStats calls. | 505 // By default, we ignore session GetStats calls. |
504 EXPECT_CALL(session_, GetTransportStats(_)).WillRepeatedly(Return(false)); | 506 EXPECT_CALL(session_, GetTransportStats(_)).WillRepeatedly(Return(false)); |
505 // Add default returns for mock classes. | 507 // Add default returns for mock classes. |
506 EXPECT_CALL(session_, video_channel()).WillRepeatedly(ReturnNull()); | 508 EXPECT_CALL(session_, video_channel()).WillRepeatedly(ReturnNull()); |
507 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); | 509 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); |
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
817 .WillRepeatedly(Return(nullptr)); | 819 .WillRepeatedly(Return(nullptr)); |
818 | 820 |
819 const char kVideoChannelName[] = "video"; | 821 const char kVideoChannelName[] = "video"; |
820 | 822 |
821 InitSessionStats(kVideoChannelName); | 823 InitSessionStats(kVideoChannelName); |
822 EXPECT_CALL(session_, GetTransportStats(_)) | 824 EXPECT_CALL(session_, GetTransportStats(_)) |
823 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 825 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), |
824 Return(true))); | 826 Return(true))); |
825 | 827 |
826 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 828 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
827 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, | 829 cricket::VideoChannel video_channel(rtc::Thread::Current(), |
| 830 rtc::Thread::Current(), media_channel, |
828 nullptr, kVideoChannelName, false); | 831 nullptr, kVideoChannelName, false); |
829 StatsReports reports; // returned values. | 832 StatsReports reports; // returned values. |
830 cricket::VideoSenderInfo video_sender_info; | 833 cricket::VideoSenderInfo video_sender_info; |
831 cricket::VideoMediaInfo stats_read; | 834 cricket::VideoMediaInfo stats_read; |
832 // The number of bytes must be larger than 0xFFFFFFFF for this test. | 835 // The number of bytes must be larger than 0xFFFFFFFF for this test. |
833 const int64_t kBytesSent = 12345678901234LL; | 836 const int64_t kBytesSent = 12345678901234LL; |
834 const std::string kBytesSentString("12345678901234"); | 837 const std::string kBytesSentString("12345678901234"); |
835 | 838 |
836 AddOutgoingVideoTrackStats(); | 839 AddOutgoingVideoTrackStats(); |
837 stats.AddStream(stream_); | 840 stats.AddStream(stream_); |
(...skipping 25 matching lines...) Expand all Loading... |
863 .WillRepeatedly(Return(nullptr)); | 866 .WillRepeatedly(Return(nullptr)); |
864 | 867 |
865 const char kVideoChannelName[] = "video"; | 868 const char kVideoChannelName[] = "video"; |
866 | 869 |
867 InitSessionStats(kVideoChannelName); | 870 InitSessionStats(kVideoChannelName); |
868 EXPECT_CALL(session_, GetTransportStats(_)) | 871 EXPECT_CALL(session_, GetTransportStats(_)) |
869 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 872 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), |
870 Return(true))); | 873 Return(true))); |
871 | 874 |
872 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 875 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
873 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, | 876 cricket::VideoChannel video_channel(rtc::Thread::Current(), |
| 877 rtc::Thread::Current(), media_channel, |
874 nullptr, kVideoChannelName, false); | 878 nullptr, kVideoChannelName, false); |
875 | 879 |
876 StatsReports reports; // returned values. | 880 StatsReports reports; // returned values. |
877 cricket::VideoSenderInfo video_sender_info; | 881 cricket::VideoSenderInfo video_sender_info; |
878 cricket::VideoMediaInfo stats_read; | 882 cricket::VideoMediaInfo stats_read; |
879 // Set up an SSRC just to test that we get both kinds of stats back: SSRC and | 883 // Set up an SSRC just to test that we get both kinds of stats back: SSRC and |
880 // BWE. | 884 // BWE. |
881 const int64_t kBytesSent = 12345678901234LL; | 885 const int64_t kBytesSent = 12345678901234LL; |
882 const std::string kBytesSentString("12345678901234"); | 886 const std::string kBytesSentString("12345678901234"); |
883 | 887 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
938 reports, StatsReport::kStatsReportTypeSession, 2); | 942 reports, StatsReport::kStatsReportTypeSession, 2); |
939 EXPECT_EQ(NULL, session_report); | 943 EXPECT_EQ(NULL, session_report); |
940 } | 944 } |
941 | 945 |
942 // This test verifies that the empty track report exists in the returned stats | 946 // This test verifies that the empty track report exists in the returned stats |
943 // without calling StatsCollector::UpdateStats. | 947 // without calling StatsCollector::UpdateStats. |
944 TEST_F(StatsCollectorTest, TrackObjectExistsWithoutUpdateStats) { | 948 TEST_F(StatsCollectorTest, TrackObjectExistsWithoutUpdateStats) { |
945 StatsCollectorForTest stats(&pc_); | 949 StatsCollectorForTest stats(&pc_); |
946 | 950 |
947 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 951 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
948 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, | 952 cricket::VideoChannel video_channel(rtc::Thread::Current(), |
| 953 rtc::Thread::Current(), media_channel, |
949 nullptr, "video", false); | 954 nullptr, "video", false); |
950 AddOutgoingVideoTrackStats(); | 955 AddOutgoingVideoTrackStats(); |
951 stats.AddStream(stream_); | 956 stats.AddStream(stream_); |
952 | 957 |
953 // Verfies the existence of the track report. | 958 // Verfies the existence of the track report. |
954 StatsReports reports; | 959 StatsReports reports; |
955 stats.GetStats(NULL, &reports); | 960 stats.GetStats(NULL, &reports); |
956 EXPECT_EQ((size_t)1, reports.size()); | 961 EXPECT_EQ((size_t)1, reports.size()); |
957 EXPECT_EQ(StatsReport::kStatsReportTypeTrack, reports[0]->type()); | 962 EXPECT_EQ(StatsReport::kStatsReportTypeTrack, reports[0]->type()); |
958 EXPECT_EQ(0, reports[0]->timestamp()); | 963 EXPECT_EQ(0, reports[0]->timestamp()); |
(...skipping 15 matching lines...) Expand all Loading... |
974 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 979 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
975 .WillRepeatedly(Return(nullptr)); | 980 .WillRepeatedly(Return(nullptr)); |
976 | 981 |
977 const char kVideoChannelName[] = "video"; | 982 const char kVideoChannelName[] = "video"; |
978 InitSessionStats(kVideoChannelName); | 983 InitSessionStats(kVideoChannelName); |
979 EXPECT_CALL(session_, GetTransportStats(_)) | 984 EXPECT_CALL(session_, GetTransportStats(_)) |
980 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 985 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), |
981 Return(true))); | 986 Return(true))); |
982 | 987 |
983 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 988 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
984 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, | 989 cricket::VideoChannel video_channel(rtc::Thread::Current(), |
| 990 rtc::Thread::Current(), media_channel, |
985 nullptr, kVideoChannelName, false); | 991 nullptr, kVideoChannelName, false); |
986 AddOutgoingVideoTrackStats(); | 992 AddOutgoingVideoTrackStats(); |
987 stats.AddStream(stream_); | 993 stats.AddStream(stream_); |
988 | 994 |
989 // Constructs an ssrc stats update. | 995 // Constructs an ssrc stats update. |
990 cricket::VideoSenderInfo video_sender_info; | 996 cricket::VideoSenderInfo video_sender_info; |
991 cricket::VideoMediaInfo stats_read; | 997 cricket::VideoMediaInfo stats_read; |
992 const int64_t kBytesSent = 12345678901234LL; | 998 const int64_t kBytesSent = 12345678901234LL; |
993 | 999 |
994 // Construct a stats value to read. | 1000 // Construct a stats value to read. |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1042 StatsCollectorForTest stats(&pc_); | 1048 StatsCollectorForTest stats(&pc_); |
1043 | 1049 |
1044 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1050 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1045 .WillRepeatedly(Return(false)); | 1051 .WillRepeatedly(Return(false)); |
1046 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1052 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1047 .WillRepeatedly(Return(nullptr)); | 1053 .WillRepeatedly(Return(nullptr)); |
1048 | 1054 |
1049 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1055 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1050 // The transport_name known by the video channel. | 1056 // The transport_name known by the video channel. |
1051 const std::string kVcName("vcname"); | 1057 const std::string kVcName("vcname"); |
1052 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, | 1058 cricket::VideoChannel video_channel(rtc::Thread::Current(), |
| 1059 rtc::Thread::Current(), media_channel, |
1053 nullptr, kVcName, false); | 1060 nullptr, kVcName, false); |
1054 AddOutgoingVideoTrackStats(); | 1061 AddOutgoingVideoTrackStats(); |
1055 stats.AddStream(stream_); | 1062 stats.AddStream(stream_); |
1056 | 1063 |
1057 // Constructs an ssrc stats update. | 1064 // Constructs an ssrc stats update. |
1058 cricket::VideoSenderInfo video_sender_info; | 1065 cricket::VideoSenderInfo video_sender_info; |
1059 cricket::VideoMediaInfo stats_read; | 1066 cricket::VideoMediaInfo stats_read; |
1060 const int64_t kBytesSent = 12345678901234LL; | 1067 const int64_t kBytesSent = 12345678901234LL; |
1061 | 1068 |
1062 // Construct a stats value to read. | 1069 // Construct a stats value to read. |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1100 } | 1107 } |
1101 | 1108 |
1102 // This test verifies that a remote stats object will not be created for | 1109 // This test verifies that a remote stats object will not be created for |
1103 // an outgoing SSRC where remote stats are not returned. | 1110 // an outgoing SSRC where remote stats are not returned. |
1104 TEST_F(StatsCollectorTest, RemoteSsrcInfoIsAbsent) { | 1111 TEST_F(StatsCollectorTest, RemoteSsrcInfoIsAbsent) { |
1105 StatsCollectorForTest stats(&pc_); | 1112 StatsCollectorForTest stats(&pc_); |
1106 | 1113 |
1107 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1114 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1108 // The transport_name known by the video channel. | 1115 // The transport_name known by the video channel. |
1109 const std::string kVcName("vcname"); | 1116 const std::string kVcName("vcname"); |
1110 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, | 1117 cricket::VideoChannel video_channel(rtc::Thread::Current(), |
| 1118 rtc::Thread::Current(), media_channel, |
1111 nullptr, kVcName, false); | 1119 nullptr, kVcName, false); |
1112 AddOutgoingVideoTrackStats(); | 1120 AddOutgoingVideoTrackStats(); |
1113 stats.AddStream(stream_); | 1121 stats.AddStream(stream_); |
1114 | 1122 |
1115 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); | 1123 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); |
1116 StatsReports reports; | 1124 StatsReports reports; |
1117 stats.GetStats(NULL, &reports); | 1125 stats.GetStats(NULL, &reports); |
1118 const StatsReport* remote_report = FindNthReportByType(reports, | 1126 const StatsReport* remote_report = FindNthReportByType(reports, |
1119 StatsReport::kStatsReportTypeRemoteSsrc, 1); | 1127 StatsReport::kStatsReportTypeRemoteSsrc, 1); |
1120 EXPECT_TRUE(remote_report == NULL); | 1128 EXPECT_TRUE(remote_report == NULL); |
1121 } | 1129 } |
1122 | 1130 |
1123 // This test verifies that a remote stats object will be created for | 1131 // This test verifies that a remote stats object will be created for |
1124 // an outgoing SSRC where stats are returned. | 1132 // an outgoing SSRC where stats are returned. |
1125 TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) { | 1133 TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) { |
1126 StatsCollectorForTest stats(&pc_); | 1134 StatsCollectorForTest stats(&pc_); |
1127 | 1135 |
1128 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1136 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1129 .WillRepeatedly(Return(false)); | 1137 .WillRepeatedly(Return(false)); |
1130 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1138 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1131 .WillRepeatedly(Return(nullptr)); | 1139 .WillRepeatedly(Return(nullptr)); |
1132 | 1140 |
1133 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1141 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1134 // The transport_name known by the video channel. | 1142 // The transport_name known by the video channel. |
1135 const std::string kVcName("vcname"); | 1143 const std::string kVcName("vcname"); |
1136 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, | 1144 cricket::VideoChannel video_channel(rtc::Thread::Current(), |
| 1145 rtc::Thread::Current(), media_channel, |
1137 nullptr, kVcName, false); | 1146 nullptr, kVcName, false); |
1138 AddOutgoingVideoTrackStats(); | 1147 AddOutgoingVideoTrackStats(); |
1139 stats.AddStream(stream_); | 1148 stats.AddStream(stream_); |
1140 | 1149 |
1141 // Instruct the session to return stats containing the transport channel. | 1150 // Instruct the session to return stats containing the transport channel. |
1142 InitSessionStats(kVcName); | 1151 InitSessionStats(kVcName); |
1143 EXPECT_CALL(session_, GetTransportStats(_)) | 1152 EXPECT_CALL(session_, GetTransportStats(_)) |
1144 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1153 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), |
1145 Return(true))); | 1154 Return(true))); |
1146 | 1155 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1181 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1190 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1182 .WillRepeatedly(Return(nullptr)); | 1191 .WillRepeatedly(Return(nullptr)); |
1183 | 1192 |
1184 const char kVideoChannelName[] = "video"; | 1193 const char kVideoChannelName[] = "video"; |
1185 InitSessionStats(kVideoChannelName); | 1194 InitSessionStats(kVideoChannelName); |
1186 EXPECT_CALL(session_, GetTransportStats(_)) | 1195 EXPECT_CALL(session_, GetTransportStats(_)) |
1187 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1196 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), |
1188 Return(true))); | 1197 Return(true))); |
1189 | 1198 |
1190 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1199 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1191 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, | 1200 cricket::VideoChannel video_channel(rtc::Thread::Current(), |
| 1201 rtc::Thread::Current(), media_channel, |
1192 nullptr, kVideoChannelName, false); | 1202 nullptr, kVideoChannelName, false); |
1193 AddIncomingVideoTrackStats(); | 1203 AddIncomingVideoTrackStats(); |
1194 stats.AddStream(stream_); | 1204 stats.AddStream(stream_); |
1195 | 1205 |
1196 // Constructs an ssrc stats update. | 1206 // Constructs an ssrc stats update. |
1197 cricket::VideoReceiverInfo video_receiver_info; | 1207 cricket::VideoReceiverInfo video_receiver_info; |
1198 cricket::VideoMediaInfo stats_read; | 1208 cricket::VideoMediaInfo stats_read; |
1199 const int64_t kNumOfPacketsConcealed = 54321; | 1209 const int64_t kNumOfPacketsConcealed = 54321; |
1200 | 1210 |
1201 // Construct a stats value to read. | 1211 // Construct a stats value to read. |
(...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1493 StatsCollectorForTest stats(&pc_); | 1503 StatsCollectorForTest stats(&pc_); |
1494 | 1504 |
1495 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1505 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1496 .WillRepeatedly(Return(false)); | 1506 .WillRepeatedly(Return(false)); |
1497 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1507 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1498 .WillRepeatedly(Return(nullptr)); | 1508 .WillRepeatedly(Return(nullptr)); |
1499 | 1509 |
1500 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1510 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
1501 // The transport_name known by the voice channel. | 1511 // The transport_name known by the voice channel. |
1502 const std::string kVcName("vcname"); | 1512 const std::string kVcName("vcname"); |
1503 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, | 1513 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), |
| 1514 rtc::Thread::Current(), media_engine_, |
1504 media_channel, nullptr, kVcName, false); | 1515 media_channel, nullptr, kVcName, false); |
1505 AddOutgoingAudioTrackStats(); | 1516 AddOutgoingAudioTrackStats(); |
1506 stats.AddStream(stream_); | 1517 stats.AddStream(stream_); |
1507 stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack); | 1518 stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack); |
1508 | 1519 |
1509 cricket::VoiceSenderInfo voice_sender_info; | 1520 cricket::VoiceSenderInfo voice_sender_info; |
1510 InitVoiceSenderInfo(&voice_sender_info); | 1521 InitVoiceSenderInfo(&voice_sender_info); |
1511 | 1522 |
1512 cricket::VoiceMediaInfo stats_read; | 1523 cricket::VoiceMediaInfo stats_read; |
1513 StatsReports reports; // returned values. | 1524 StatsReports reports; // returned values. |
(...skipping 14 matching lines...) Expand all Loading... |
1528 StatsCollectorForTest stats(&pc_); | 1539 StatsCollectorForTest stats(&pc_); |
1529 | 1540 |
1530 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1541 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1531 .WillRepeatedly(Return(false)); | 1542 .WillRepeatedly(Return(false)); |
1532 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1543 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1533 .WillRepeatedly(Return(nullptr)); | 1544 .WillRepeatedly(Return(nullptr)); |
1534 | 1545 |
1535 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1546 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
1536 // The transport_name known by the voice channel. | 1547 // The transport_name known by the voice channel. |
1537 const std::string kVcName("vcname"); | 1548 const std::string kVcName("vcname"); |
1538 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, | 1549 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), |
| 1550 rtc::Thread::Current(), media_engine_, |
1539 media_channel, nullptr, kVcName, false); | 1551 media_channel, nullptr, kVcName, false); |
1540 AddIncomingAudioTrackStats(); | 1552 AddIncomingAudioTrackStats(); |
1541 stats.AddStream(stream_); | 1553 stats.AddStream(stream_); |
1542 | 1554 |
1543 cricket::VoiceReceiverInfo voice_receiver_info; | 1555 cricket::VoiceReceiverInfo voice_receiver_info; |
1544 InitVoiceReceiverInfo(&voice_receiver_info); | 1556 InitVoiceReceiverInfo(&voice_receiver_info); |
1545 voice_receiver_info.codec_name = "fake_codec"; | 1557 voice_receiver_info.codec_name = "fake_codec"; |
1546 | 1558 |
1547 cricket::VoiceMediaInfo stats_read; | 1559 cricket::VoiceMediaInfo stats_read; |
1548 StatsReports reports; // returned values. | 1560 StatsReports reports; // returned values. |
1549 SetupAndVerifyAudioTrackStats( | 1561 SetupAndVerifyAudioTrackStats( |
1550 audio_track_.get(), stream_.get(), &stats, &voice_channel, kVcName, | 1562 audio_track_.get(), stream_.get(), &stats, &voice_channel, kVcName, |
1551 media_channel, NULL, &voice_receiver_info, &stats_read, &reports); | 1563 media_channel, NULL, &voice_receiver_info, &stats_read, &reports); |
1552 } | 1564 } |
1553 | 1565 |
1554 // This test verifies that a local stats object won't update its statistics | 1566 // This test verifies that a local stats object won't update its statistics |
1555 // after a RemoveLocalAudioTrack() call. | 1567 // after a RemoveLocalAudioTrack() call. |
1556 TEST_F(StatsCollectorTest, GetStatsAfterRemoveAudioStream) { | 1568 TEST_F(StatsCollectorTest, GetStatsAfterRemoveAudioStream) { |
1557 StatsCollectorForTest stats(&pc_); | 1569 StatsCollectorForTest stats(&pc_); |
1558 | 1570 |
1559 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1571 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1560 .WillRepeatedly(Return(false)); | 1572 .WillRepeatedly(Return(false)); |
1561 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1573 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1562 .WillRepeatedly(Return(nullptr)); | 1574 .WillRepeatedly(Return(nullptr)); |
1563 | 1575 |
1564 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1576 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
1565 // The transport_name known by the voice channel. | 1577 // The transport_name known by the voice channel. |
1566 const std::string kVcName("vcname"); | 1578 const std::string kVcName("vcname"); |
1567 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, | 1579 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), |
| 1580 rtc::Thread::Current(), media_engine_, |
1568 media_channel, nullptr, kVcName, false); | 1581 media_channel, nullptr, kVcName, false); |
1569 AddOutgoingAudioTrackStats(); | 1582 AddOutgoingAudioTrackStats(); |
1570 stats.AddStream(stream_); | 1583 stats.AddStream(stream_); |
1571 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); | 1584 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); |
1572 | 1585 |
1573 // Instruct the session to return stats containing the transport channel. | 1586 // Instruct the session to return stats containing the transport channel. |
1574 InitSessionStats(kVcName); | 1587 InitSessionStats(kVcName); |
1575 EXPECT_CALL(session_, GetTransportStats(_)) | 1588 EXPECT_CALL(session_, GetTransportStats(_)) |
1576 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1589 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), |
1577 Return(true))); | 1590 Return(true))); |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1618 StatsCollectorForTest stats(&pc_); | 1631 StatsCollectorForTest stats(&pc_); |
1619 | 1632 |
1620 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1633 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1621 .WillRepeatedly(Return(false)); | 1634 .WillRepeatedly(Return(false)); |
1622 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1635 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1623 .WillRepeatedly(Return(nullptr)); | 1636 .WillRepeatedly(Return(nullptr)); |
1624 | 1637 |
1625 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1638 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
1626 // The transport_name known by the voice channel. | 1639 // The transport_name known by the voice channel. |
1627 const std::string kVcName("vcname"); | 1640 const std::string kVcName("vcname"); |
1628 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, | 1641 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), |
| 1642 rtc::Thread::Current(), media_engine_, |
1629 media_channel, nullptr, kVcName, false); | 1643 media_channel, nullptr, kVcName, false); |
1630 | 1644 |
1631 // Create a local stream with a local audio track and adds it to the stats. | 1645 // Create a local stream with a local audio track and adds it to the stats. |
1632 AddOutgoingAudioTrackStats(); | 1646 AddOutgoingAudioTrackStats(); |
1633 stats.AddStream(stream_); | 1647 stats.AddStream(stream_); |
1634 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); | 1648 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); |
1635 | 1649 |
1636 // Create a remote stream with a remote audio track and adds it to the stats. | 1650 // Create a remote stream with a remote audio track and adds it to the stats. |
1637 rtc::scoped_refptr<webrtc::MediaStream> remote_stream( | 1651 rtc::scoped_refptr<webrtc::MediaStream> remote_stream( |
1638 webrtc::MediaStream::Create("remotestreamlabel")); | 1652 webrtc::MediaStream::Create("remotestreamlabel")); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1705 StatsCollectorForTest stats(&pc_); | 1719 StatsCollectorForTest stats(&pc_); |
1706 | 1720 |
1707 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1721 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1708 .WillRepeatedly(Return(false)); | 1722 .WillRepeatedly(Return(false)); |
1709 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1723 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
1710 .WillRepeatedly(Return(nullptr)); | 1724 .WillRepeatedly(Return(nullptr)); |
1711 | 1725 |
1712 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1726 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
1713 // The transport_name known by the voice channel. | 1727 // The transport_name known by the voice channel. |
1714 const std::string kVcName("vcname"); | 1728 const std::string kVcName("vcname"); |
1715 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, | 1729 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), |
| 1730 rtc::Thread::Current(), media_engine_, |
1716 media_channel, nullptr, kVcName, false); | 1731 media_channel, nullptr, kVcName, false); |
1717 | 1732 |
1718 // Create a local stream with a local audio track and adds it to the stats. | 1733 // Create a local stream with a local audio track and adds it to the stats. |
1719 AddOutgoingAudioTrackStats(); | 1734 AddOutgoingAudioTrackStats(); |
1720 stats.AddStream(stream_); | 1735 stats.AddStream(stream_); |
1721 stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack); | 1736 stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack); |
1722 | 1737 |
1723 cricket::VoiceSenderInfo voice_sender_info; | 1738 cricket::VoiceSenderInfo voice_sender_info; |
1724 voice_sender_info.add_ssrc(kSsrcOfTrack); | 1739 voice_sender_info.add_ssrc(kSsrcOfTrack); |
1725 | 1740 |
(...skipping 20 matching lines...) Expand all Loading... |
1746 cricket::VoiceSenderInfo new_voice_sender_info; | 1761 cricket::VoiceSenderInfo new_voice_sender_info; |
1747 InitVoiceSenderInfo(&new_voice_sender_info); | 1762 InitVoiceSenderInfo(&new_voice_sender_info); |
1748 cricket::VoiceMediaInfo new_stats_read; | 1763 cricket::VoiceMediaInfo new_stats_read; |
1749 reports.clear(); | 1764 reports.clear(); |
1750 SetupAndVerifyAudioTrackStats( | 1765 SetupAndVerifyAudioTrackStats( |
1751 new_audio_track.get(), stream_.get(), &stats, &voice_channel, kVcName, | 1766 new_audio_track.get(), stream_.get(), &stats, &voice_channel, kVcName, |
1752 media_channel, &new_voice_sender_info, NULL, &new_stats_read, &reports); | 1767 media_channel, &new_voice_sender_info, NULL, &new_stats_read, &reports); |
1753 } | 1768 } |
1754 | 1769 |
1755 } // namespace webrtc | 1770 } // namespace webrtc |
OLD | NEW |