| 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 478 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 489 return time_now_; | 489 return time_now_; |
| 490 } | 490 } |
| 491 | 491 |
| 492 private: | 492 private: |
| 493 double time_now_; | 493 double time_now_; |
| 494 }; | 494 }; |
| 495 | 495 |
| 496 class StatsCollectorTest : public testing::Test { | 496 class StatsCollectorTest : public testing::Test { |
| 497 protected: | 497 protected: |
| 498 StatsCollectorTest() | 498 StatsCollectorTest() |
| 499 : media_engine_(new cricket::FakeMediaEngine()), | 499 : worker_thread_(rtc::Thread::Current()), |
| 500 channel_manager_( | 500 network_thread_(rtc::Thread::Current()), |
| 501 new cricket::ChannelManager(media_engine_, rtc::Thread::Current())), | 501 media_engine_(new cricket::FakeMediaEngine()), |
| 502 channel_manager_(new cricket::ChannelManager(media_engine_, |
| 503 worker_thread_, |
| 504 network_thread_)), |
| 502 media_controller_( | 505 media_controller_( |
| 503 webrtc::MediaControllerInterface::Create(cricket::MediaConfig(), | 506 webrtc::MediaControllerInterface::Create(cricket::MediaConfig(), |
| 504 rtc::Thread::Current(), | 507 worker_thread_, |
| 505 channel_manager_.get())), | 508 channel_manager_.get())), |
| 506 session_(media_controller_.get()) { | 509 session_(media_controller_.get()) { |
| 507 // By default, we ignore session GetStats calls. | 510 // By default, we ignore session GetStats calls. |
| 508 EXPECT_CALL(session_, GetTransportStats(_)).WillRepeatedly(Return(false)); | 511 EXPECT_CALL(session_, GetTransportStats(_)).WillRepeatedly(Return(false)); |
| 509 // Add default returns for mock classes. | 512 // Add default returns for mock classes. |
| 510 EXPECT_CALL(session_, video_channel()).WillRepeatedly(ReturnNull()); | 513 EXPECT_CALL(session_, video_channel()).WillRepeatedly(ReturnNull()); |
| 511 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); | 514 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); |
| 512 EXPECT_CALL(pc_, session()).WillRepeatedly(Return(&session_)); | 515 EXPECT_CALL(pc_, session()).WillRepeatedly(Return(&session_)); |
| 513 EXPECT_CALL(pc_, sctp_data_channels()) | 516 EXPECT_CALL(pc_, sctp_data_channels()) |
| 514 .WillRepeatedly(ReturnRef(data_channels_)); | 517 .WillRepeatedly(ReturnRef(data_channels_)); |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 753 EXPECT_EQ(rtc::SSLStreamAdapter::SslCipherSuiteToName( | 756 EXPECT_EQ(rtc::SSLStreamAdapter::SslCipherSuiteToName( |
| 754 internal::TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA), | 757 internal::TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA), |
| 755 dtls_cipher_suite); | 758 dtls_cipher_suite); |
| 756 std::string srtp_crypto_suite = | 759 std::string srtp_crypto_suite = |
| 757 ExtractStatsValue(StatsReport::kStatsReportTypeComponent, reports, | 760 ExtractStatsValue(StatsReport::kStatsReportTypeComponent, reports, |
| 758 StatsReport::kStatsValueNameSrtpCipher); | 761 StatsReport::kStatsValueNameSrtpCipher); |
| 759 EXPECT_EQ(rtc::SrtpCryptoSuiteToName(rtc::SRTP_AES128_CM_SHA1_80), | 762 EXPECT_EQ(rtc::SrtpCryptoSuiteToName(rtc::SRTP_AES128_CM_SHA1_80), |
| 760 srtp_crypto_suite); | 763 srtp_crypto_suite); |
| 761 } | 764 } |
| 762 | 765 |
| 766 rtc::Thread* const worker_thread_; |
| 767 rtc::Thread* const network_thread_; |
| 763 cricket::FakeMediaEngine* media_engine_; | 768 cricket::FakeMediaEngine* media_engine_; |
| 764 std::unique_ptr<cricket::ChannelManager> channel_manager_; | 769 std::unique_ptr<cricket::ChannelManager> channel_manager_; |
| 765 std::unique_ptr<webrtc::MediaControllerInterface> media_controller_; | 770 std::unique_ptr<webrtc::MediaControllerInterface> media_controller_; |
| 766 MockWebRtcSession session_; | 771 MockWebRtcSession session_; |
| 767 MockPeerConnection pc_; | 772 MockPeerConnection pc_; |
| 768 FakeDataChannelProvider data_channel_provider_; | 773 FakeDataChannelProvider data_channel_provider_; |
| 769 SessionStats session_stats_; | 774 SessionStats session_stats_; |
| 770 rtc::scoped_refptr<webrtc::MediaStream> stream_; | 775 rtc::scoped_refptr<webrtc::MediaStream> stream_; |
| 771 rtc::scoped_refptr<webrtc::VideoTrack> track_; | 776 rtc::scoped_refptr<webrtc::VideoTrack> track_; |
| 772 rtc::scoped_refptr<FakeAudioTrack> audio_track_; | 777 rtc::scoped_refptr<FakeAudioTrack> audio_track_; |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 821 .WillRepeatedly(Return(nullptr)); | 826 .WillRepeatedly(Return(nullptr)); |
| 822 | 827 |
| 823 const char kVideoChannelName[] = "video"; | 828 const char kVideoChannelName[] = "video"; |
| 824 | 829 |
| 825 InitSessionStats(kVideoChannelName); | 830 InitSessionStats(kVideoChannelName); |
| 826 EXPECT_CALL(session_, GetTransportStats(_)) | 831 EXPECT_CALL(session_, GetTransportStats(_)) |
| 827 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 832 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), |
| 828 Return(true))); | 833 Return(true))); |
| 829 | 834 |
| 830 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 835 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
| 831 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, | 836 cricket::VideoChannel video_channel(worker_thread_, network_thread_, |
| 832 nullptr, kVideoChannelName, false); | 837 media_channel, nullptr, kVideoChannelName, |
| 838 false); |
| 833 StatsReports reports; // returned values. | 839 StatsReports reports; // returned values. |
| 834 cricket::VideoSenderInfo video_sender_info; | 840 cricket::VideoSenderInfo video_sender_info; |
| 835 cricket::VideoMediaInfo stats_read; | 841 cricket::VideoMediaInfo stats_read; |
| 836 // The number of bytes must be larger than 0xFFFFFFFF for this test. | 842 // The number of bytes must be larger than 0xFFFFFFFF for this test. |
| 837 const int64_t kBytesSent = 12345678901234LL; | 843 const int64_t kBytesSent = 12345678901234LL; |
| 838 const std::string kBytesSentString("12345678901234"); | 844 const std::string kBytesSentString("12345678901234"); |
| 839 | 845 |
| 840 AddOutgoingVideoTrackStats(); | 846 AddOutgoingVideoTrackStats(); |
| 841 stats.AddStream(stream_); | 847 stats.AddStream(stream_); |
| 842 | 848 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 867 .WillRepeatedly(Return(nullptr)); | 873 .WillRepeatedly(Return(nullptr)); |
| 868 | 874 |
| 869 const char kVideoChannelName[] = "video"; | 875 const char kVideoChannelName[] = "video"; |
| 870 | 876 |
| 871 InitSessionStats(kVideoChannelName); | 877 InitSessionStats(kVideoChannelName); |
| 872 EXPECT_CALL(session_, GetTransportStats(_)) | 878 EXPECT_CALL(session_, GetTransportStats(_)) |
| 873 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 879 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), |
| 874 Return(true))); | 880 Return(true))); |
| 875 | 881 |
| 876 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 882 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
| 877 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, | 883 cricket::VideoChannel video_channel(worker_thread_, network_thread_, |
| 878 nullptr, kVideoChannelName, false); | 884 media_channel, nullptr, kVideoChannelName, |
| 885 false); |
| 879 | 886 |
| 880 StatsReports reports; // returned values. | 887 StatsReports reports; // returned values. |
| 881 cricket::VideoSenderInfo video_sender_info; | 888 cricket::VideoSenderInfo video_sender_info; |
| 882 cricket::VideoMediaInfo stats_read; | 889 cricket::VideoMediaInfo stats_read; |
| 883 // Set up an SSRC just to test that we get both kinds of stats back: SSRC and | 890 // Set up an SSRC just to test that we get both kinds of stats back: SSRC and |
| 884 // BWE. | 891 // BWE. |
| 885 const int64_t kBytesSent = 12345678901234LL; | 892 const int64_t kBytesSent = 12345678901234LL; |
| 886 const std::string kBytesSentString("12345678901234"); | 893 const std::string kBytesSentString("12345678901234"); |
| 887 | 894 |
| 888 AddOutgoingVideoTrackStats(); | 895 AddOutgoingVideoTrackStats(); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 942 reports, StatsReport::kStatsReportTypeSession, 2); | 949 reports, StatsReport::kStatsReportTypeSession, 2); |
| 943 EXPECT_EQ(NULL, session_report); | 950 EXPECT_EQ(NULL, session_report); |
| 944 } | 951 } |
| 945 | 952 |
| 946 // This test verifies that the empty track report exists in the returned stats | 953 // This test verifies that the empty track report exists in the returned stats |
| 947 // without calling StatsCollector::UpdateStats. | 954 // without calling StatsCollector::UpdateStats. |
| 948 TEST_F(StatsCollectorTest, TrackObjectExistsWithoutUpdateStats) { | 955 TEST_F(StatsCollectorTest, TrackObjectExistsWithoutUpdateStats) { |
| 949 StatsCollectorForTest stats(&pc_); | 956 StatsCollectorForTest stats(&pc_); |
| 950 | 957 |
| 951 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 958 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
| 952 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, | 959 cricket::VideoChannel video_channel(worker_thread_, network_thread_, |
| 953 nullptr, "video", false); | 960 media_channel, nullptr, "video", false); |
| 954 AddOutgoingVideoTrackStats(); | 961 AddOutgoingVideoTrackStats(); |
| 955 stats.AddStream(stream_); | 962 stats.AddStream(stream_); |
| 956 | 963 |
| 957 // Verfies the existence of the track report. | 964 // Verfies the existence of the track report. |
| 958 StatsReports reports; | 965 StatsReports reports; |
| 959 stats.GetStats(NULL, &reports); | 966 stats.GetStats(NULL, &reports); |
| 960 EXPECT_EQ((size_t)1, reports.size()); | 967 EXPECT_EQ((size_t)1, reports.size()); |
| 961 EXPECT_EQ(StatsReport::kStatsReportTypeTrack, reports[0]->type()); | 968 EXPECT_EQ(StatsReport::kStatsReportTypeTrack, reports[0]->type()); |
| 962 EXPECT_EQ(0, reports[0]->timestamp()); | 969 EXPECT_EQ(0, reports[0]->timestamp()); |
| 963 | 970 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 978 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 985 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
| 979 .WillRepeatedly(Return(nullptr)); | 986 .WillRepeatedly(Return(nullptr)); |
| 980 | 987 |
| 981 const char kVideoChannelName[] = "video"; | 988 const char kVideoChannelName[] = "video"; |
| 982 InitSessionStats(kVideoChannelName); | 989 InitSessionStats(kVideoChannelName); |
| 983 EXPECT_CALL(session_, GetTransportStats(_)) | 990 EXPECT_CALL(session_, GetTransportStats(_)) |
| 984 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 991 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), |
| 985 Return(true))); | 992 Return(true))); |
| 986 | 993 |
| 987 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 994 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
| 988 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, | 995 cricket::VideoChannel video_channel(worker_thread_, network_thread_, |
| 989 nullptr, kVideoChannelName, false); | 996 media_channel, nullptr, kVideoChannelName, |
| 997 false); |
| 990 AddOutgoingVideoTrackStats(); | 998 AddOutgoingVideoTrackStats(); |
| 991 stats.AddStream(stream_); | 999 stats.AddStream(stream_); |
| 992 | 1000 |
| 993 // Constructs an ssrc stats update. | 1001 // Constructs an ssrc stats update. |
| 994 cricket::VideoSenderInfo video_sender_info; | 1002 cricket::VideoSenderInfo video_sender_info; |
| 995 cricket::VideoMediaInfo stats_read; | 1003 cricket::VideoMediaInfo stats_read; |
| 996 const int64_t kBytesSent = 12345678901234LL; | 1004 const int64_t kBytesSent = 12345678901234LL; |
| 997 | 1005 |
| 998 // Construct a stats value to read. | 1006 // Construct a stats value to read. |
| 999 video_sender_info.add_ssrc(1234); | 1007 video_sender_info.add_ssrc(1234); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1046 StatsCollectorForTest stats(&pc_); | 1054 StatsCollectorForTest stats(&pc_); |
| 1047 | 1055 |
| 1048 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1056 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
| 1049 .WillRepeatedly(Return(false)); | 1057 .WillRepeatedly(Return(false)); |
| 1050 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1058 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
| 1051 .WillRepeatedly(Return(nullptr)); | 1059 .WillRepeatedly(Return(nullptr)); |
| 1052 | 1060 |
| 1053 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1061 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
| 1054 // The transport_name known by the video channel. | 1062 // The transport_name known by the video channel. |
| 1055 const std::string kVcName("vcname"); | 1063 const std::string kVcName("vcname"); |
| 1056 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, | 1064 cricket::VideoChannel video_channel(worker_thread_, network_thread_, |
| 1057 nullptr, kVcName, false); | 1065 media_channel, nullptr, kVcName, false); |
| 1058 AddOutgoingVideoTrackStats(); | 1066 AddOutgoingVideoTrackStats(); |
| 1059 stats.AddStream(stream_); | 1067 stats.AddStream(stream_); |
| 1060 | 1068 |
| 1061 // Constructs an ssrc stats update. | 1069 // Constructs an ssrc stats update. |
| 1062 cricket::VideoSenderInfo video_sender_info; | 1070 cricket::VideoSenderInfo video_sender_info; |
| 1063 cricket::VideoMediaInfo stats_read; | 1071 cricket::VideoMediaInfo stats_read; |
| 1064 const int64_t kBytesSent = 12345678901234LL; | 1072 const int64_t kBytesSent = 12345678901234LL; |
| 1065 | 1073 |
| 1066 // Construct a stats value to read. | 1074 // Construct a stats value to read. |
| 1067 video_sender_info.add_ssrc(1234); | 1075 video_sender_info.add_ssrc(1234); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1104 } | 1112 } |
| 1105 | 1113 |
| 1106 // This test verifies that a remote stats object will not be created for | 1114 // This test verifies that a remote stats object will not be created for |
| 1107 // an outgoing SSRC where remote stats are not returned. | 1115 // an outgoing SSRC where remote stats are not returned. |
| 1108 TEST_F(StatsCollectorTest, RemoteSsrcInfoIsAbsent) { | 1116 TEST_F(StatsCollectorTest, RemoteSsrcInfoIsAbsent) { |
| 1109 StatsCollectorForTest stats(&pc_); | 1117 StatsCollectorForTest stats(&pc_); |
| 1110 | 1118 |
| 1111 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1119 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
| 1112 // The transport_name known by the video channel. | 1120 // The transport_name known by the video channel. |
| 1113 const std::string kVcName("vcname"); | 1121 const std::string kVcName("vcname"); |
| 1114 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, | 1122 cricket::VideoChannel video_channel(worker_thread_, network_thread_, |
| 1115 nullptr, kVcName, false); | 1123 media_channel, nullptr, kVcName, false); |
| 1116 AddOutgoingVideoTrackStats(); | 1124 AddOutgoingVideoTrackStats(); |
| 1117 stats.AddStream(stream_); | 1125 stats.AddStream(stream_); |
| 1118 | 1126 |
| 1119 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); | 1127 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); |
| 1120 StatsReports reports; | 1128 StatsReports reports; |
| 1121 stats.GetStats(NULL, &reports); | 1129 stats.GetStats(NULL, &reports); |
| 1122 const StatsReport* remote_report = FindNthReportByType(reports, | 1130 const StatsReport* remote_report = FindNthReportByType(reports, |
| 1123 StatsReport::kStatsReportTypeRemoteSsrc, 1); | 1131 StatsReport::kStatsReportTypeRemoteSsrc, 1); |
| 1124 EXPECT_TRUE(remote_report == NULL); | 1132 EXPECT_TRUE(remote_report == NULL); |
| 1125 } | 1133 } |
| 1126 | 1134 |
| 1127 // This test verifies that a remote stats object will be created for | 1135 // This test verifies that a remote stats object will be created for |
| 1128 // an outgoing SSRC where stats are returned. | 1136 // an outgoing SSRC where stats are returned. |
| 1129 TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) { | 1137 TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) { |
| 1130 StatsCollectorForTest stats(&pc_); | 1138 StatsCollectorForTest stats(&pc_); |
| 1131 | 1139 |
| 1132 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1140 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
| 1133 .WillRepeatedly(Return(false)); | 1141 .WillRepeatedly(Return(false)); |
| 1134 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1142 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
| 1135 .WillRepeatedly(Return(nullptr)); | 1143 .WillRepeatedly(Return(nullptr)); |
| 1136 | 1144 |
| 1137 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1145 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
| 1138 // The transport_name known by the video channel. | 1146 // The transport_name known by the video channel. |
| 1139 const std::string kVcName("vcname"); | 1147 const std::string kVcName("vcname"); |
| 1140 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, | 1148 cricket::VideoChannel video_channel(worker_thread_, network_thread_, |
| 1141 nullptr, kVcName, false); | 1149 media_channel, nullptr, kVcName, false); |
| 1142 AddOutgoingVideoTrackStats(); | 1150 AddOutgoingVideoTrackStats(); |
| 1143 stats.AddStream(stream_); | 1151 stats.AddStream(stream_); |
| 1144 | 1152 |
| 1145 // Instruct the session to return stats containing the transport channel. | 1153 // Instruct the session to return stats containing the transport channel. |
| 1146 InitSessionStats(kVcName); | 1154 InitSessionStats(kVcName); |
| 1147 EXPECT_CALL(session_, GetTransportStats(_)) | 1155 EXPECT_CALL(session_, GetTransportStats(_)) |
| 1148 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1156 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), |
| 1149 Return(true))); | 1157 Return(true))); |
| 1150 | 1158 |
| 1151 // Constructs an ssrc stats update. | 1159 // Constructs an ssrc stats update. |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1185 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1193 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
| 1186 .WillRepeatedly(Return(nullptr)); | 1194 .WillRepeatedly(Return(nullptr)); |
| 1187 | 1195 |
| 1188 const char kVideoChannelName[] = "video"; | 1196 const char kVideoChannelName[] = "video"; |
| 1189 InitSessionStats(kVideoChannelName); | 1197 InitSessionStats(kVideoChannelName); |
| 1190 EXPECT_CALL(session_, GetTransportStats(_)) | 1198 EXPECT_CALL(session_, GetTransportStats(_)) |
| 1191 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1199 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), |
| 1192 Return(true))); | 1200 Return(true))); |
| 1193 | 1201 |
| 1194 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1202 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
| 1195 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, | 1203 cricket::VideoChannel video_channel(worker_thread_, network_thread_, |
| 1196 nullptr, kVideoChannelName, false); | 1204 media_channel, nullptr, kVideoChannelName, |
| 1205 false); |
| 1197 AddIncomingVideoTrackStats(); | 1206 AddIncomingVideoTrackStats(); |
| 1198 stats.AddStream(stream_); | 1207 stats.AddStream(stream_); |
| 1199 | 1208 |
| 1200 // Constructs an ssrc stats update. | 1209 // Constructs an ssrc stats update. |
| 1201 cricket::VideoReceiverInfo video_receiver_info; | 1210 cricket::VideoReceiverInfo video_receiver_info; |
| 1202 cricket::VideoMediaInfo stats_read; | 1211 cricket::VideoMediaInfo stats_read; |
| 1203 const int64_t kNumOfPacketsConcealed = 54321; | 1212 const int64_t kNumOfPacketsConcealed = 54321; |
| 1204 | 1213 |
| 1205 // Construct a stats value to read. | 1214 // Construct a stats value to read. |
| 1206 video_receiver_info.add_ssrc(1234); | 1215 video_receiver_info.add_ssrc(1234); |
| (...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1497 StatsCollectorForTest stats(&pc_); | 1506 StatsCollectorForTest stats(&pc_); |
| 1498 | 1507 |
| 1499 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1508 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
| 1500 .WillRepeatedly(Return(false)); | 1509 .WillRepeatedly(Return(false)); |
| 1501 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1510 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
| 1502 .WillRepeatedly(Return(nullptr)); | 1511 .WillRepeatedly(Return(nullptr)); |
| 1503 | 1512 |
| 1504 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1513 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
| 1505 // The transport_name known by the voice channel. | 1514 // The transport_name known by the voice channel. |
| 1506 const std::string kVcName("vcname"); | 1515 const std::string kVcName("vcname"); |
| 1507 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, | 1516 cricket::VoiceChannel voice_channel(worker_thread_, network_thread_, |
| 1508 media_channel, nullptr, kVcName, false); | 1517 media_engine_, media_channel, nullptr, |
| 1518 kVcName, false); |
| 1509 AddOutgoingAudioTrackStats(); | 1519 AddOutgoingAudioTrackStats(); |
| 1510 stats.AddStream(stream_); | 1520 stats.AddStream(stream_); |
| 1511 stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack); | 1521 stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack); |
| 1512 | 1522 |
| 1513 cricket::VoiceSenderInfo voice_sender_info; | 1523 cricket::VoiceSenderInfo voice_sender_info; |
| 1514 InitVoiceSenderInfo(&voice_sender_info); | 1524 InitVoiceSenderInfo(&voice_sender_info); |
| 1515 | 1525 |
| 1516 cricket::VoiceMediaInfo stats_read; | 1526 cricket::VoiceMediaInfo stats_read; |
| 1517 StatsReports reports; // returned values. | 1527 StatsReports reports; // returned values. |
| 1518 SetupAndVerifyAudioTrackStats( | 1528 SetupAndVerifyAudioTrackStats( |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1532 StatsCollectorForTest stats(&pc_); | 1542 StatsCollectorForTest stats(&pc_); |
| 1533 | 1543 |
| 1534 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1544 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
| 1535 .WillRepeatedly(Return(false)); | 1545 .WillRepeatedly(Return(false)); |
| 1536 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1546 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
| 1537 .WillRepeatedly(Return(nullptr)); | 1547 .WillRepeatedly(Return(nullptr)); |
| 1538 | 1548 |
| 1539 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1549 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
| 1540 // The transport_name known by the voice channel. | 1550 // The transport_name known by the voice channel. |
| 1541 const std::string kVcName("vcname"); | 1551 const std::string kVcName("vcname"); |
| 1542 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, | 1552 cricket::VoiceChannel voice_channel(worker_thread_, network_thread_, |
| 1543 media_channel, nullptr, kVcName, false); | 1553 media_engine_, media_channel, nullptr, |
| 1554 kVcName, false); |
| 1544 AddIncomingAudioTrackStats(); | 1555 AddIncomingAudioTrackStats(); |
| 1545 stats.AddStream(stream_); | 1556 stats.AddStream(stream_); |
| 1546 | 1557 |
| 1547 cricket::VoiceReceiverInfo voice_receiver_info; | 1558 cricket::VoiceReceiverInfo voice_receiver_info; |
| 1548 InitVoiceReceiverInfo(&voice_receiver_info); | 1559 InitVoiceReceiverInfo(&voice_receiver_info); |
| 1549 voice_receiver_info.codec_name = "fake_codec"; | 1560 voice_receiver_info.codec_name = "fake_codec"; |
| 1550 | 1561 |
| 1551 cricket::VoiceMediaInfo stats_read; | 1562 cricket::VoiceMediaInfo stats_read; |
| 1552 StatsReports reports; // returned values. | 1563 StatsReports reports; // returned values. |
| 1553 SetupAndVerifyAudioTrackStats( | 1564 SetupAndVerifyAudioTrackStats( |
| 1554 audio_track_.get(), stream_.get(), &stats, &voice_channel, kVcName, | 1565 audio_track_.get(), stream_.get(), &stats, &voice_channel, kVcName, |
| 1555 media_channel, NULL, &voice_receiver_info, &stats_read, &reports); | 1566 media_channel, NULL, &voice_receiver_info, &stats_read, &reports); |
| 1556 } | 1567 } |
| 1557 | 1568 |
| 1558 // This test verifies that a local stats object won't update its statistics | 1569 // This test verifies that a local stats object won't update its statistics |
| 1559 // after a RemoveLocalAudioTrack() call. | 1570 // after a RemoveLocalAudioTrack() call. |
| 1560 TEST_F(StatsCollectorTest, GetStatsAfterRemoveAudioStream) { | 1571 TEST_F(StatsCollectorTest, GetStatsAfterRemoveAudioStream) { |
| 1561 StatsCollectorForTest stats(&pc_); | 1572 StatsCollectorForTest stats(&pc_); |
| 1562 | 1573 |
| 1563 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1574 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
| 1564 .WillRepeatedly(Return(false)); | 1575 .WillRepeatedly(Return(false)); |
| 1565 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1576 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
| 1566 .WillRepeatedly(Return(nullptr)); | 1577 .WillRepeatedly(Return(nullptr)); |
| 1567 | 1578 |
| 1568 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1579 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
| 1569 // The transport_name known by the voice channel. | 1580 // The transport_name known by the voice channel. |
| 1570 const std::string kVcName("vcname"); | 1581 const std::string kVcName("vcname"); |
| 1571 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, | 1582 cricket::VoiceChannel voice_channel(worker_thread_, network_thread_, |
| 1572 media_channel, nullptr, kVcName, false); | 1583 media_engine_, media_channel, nullptr, |
| 1584 kVcName, false); |
| 1573 AddOutgoingAudioTrackStats(); | 1585 AddOutgoingAudioTrackStats(); |
| 1574 stats.AddStream(stream_); | 1586 stats.AddStream(stream_); |
| 1575 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); | 1587 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); |
| 1576 | 1588 |
| 1577 // Instruct the session to return stats containing the transport channel. | 1589 // Instruct the session to return stats containing the transport channel. |
| 1578 InitSessionStats(kVcName); | 1590 InitSessionStats(kVcName); |
| 1579 EXPECT_CALL(session_, GetTransportStats(_)) | 1591 EXPECT_CALL(session_, GetTransportStats(_)) |
| 1580 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1592 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), |
| 1581 Return(true))); | 1593 Return(true))); |
| 1582 | 1594 |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1622 StatsCollectorForTest stats(&pc_); | 1634 StatsCollectorForTest stats(&pc_); |
| 1623 | 1635 |
| 1624 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1636 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
| 1625 .WillRepeatedly(Return(false)); | 1637 .WillRepeatedly(Return(false)); |
| 1626 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1638 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
| 1627 .WillRepeatedly(Return(nullptr)); | 1639 .WillRepeatedly(Return(nullptr)); |
| 1628 | 1640 |
| 1629 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1641 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
| 1630 // The transport_name known by the voice channel. | 1642 // The transport_name known by the voice channel. |
| 1631 const std::string kVcName("vcname"); | 1643 const std::string kVcName("vcname"); |
| 1632 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, | 1644 cricket::VoiceChannel voice_channel(worker_thread_, network_thread_, |
| 1633 media_channel, nullptr, kVcName, false); | 1645 media_engine_, media_channel, nullptr, |
| 1646 kVcName, false); |
| 1634 | 1647 |
| 1635 // Create a local stream with a local audio track and adds it to the stats. | 1648 // Create a local stream with a local audio track and adds it to the stats. |
| 1636 AddOutgoingAudioTrackStats(); | 1649 AddOutgoingAudioTrackStats(); |
| 1637 stats.AddStream(stream_); | 1650 stats.AddStream(stream_); |
| 1638 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); | 1651 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); |
| 1639 | 1652 |
| 1640 // Create a remote stream with a remote audio track and adds it to the stats. | 1653 // Create a remote stream with a remote audio track and adds it to the stats. |
| 1641 rtc::scoped_refptr<webrtc::MediaStream> remote_stream( | 1654 rtc::scoped_refptr<webrtc::MediaStream> remote_stream( |
| 1642 webrtc::MediaStream::Create("remotestreamlabel")); | 1655 webrtc::MediaStream::Create("remotestreamlabel")); |
| 1643 rtc::scoped_refptr<FakeAudioTrack> remote_track( | 1656 rtc::scoped_refptr<FakeAudioTrack> remote_track( |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1709 StatsCollectorForTest stats(&pc_); | 1722 StatsCollectorForTest stats(&pc_); |
| 1710 | 1723 |
| 1711 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1724 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
| 1712 .WillRepeatedly(Return(false)); | 1725 .WillRepeatedly(Return(false)); |
| 1713 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) | 1726 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
| 1714 .WillRepeatedly(Return(nullptr)); | 1727 .WillRepeatedly(Return(nullptr)); |
| 1715 | 1728 |
| 1716 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1729 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
| 1717 // The transport_name known by the voice channel. | 1730 // The transport_name known by the voice channel. |
| 1718 const std::string kVcName("vcname"); | 1731 const std::string kVcName("vcname"); |
| 1719 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, | 1732 cricket::VoiceChannel voice_channel(worker_thread_, network_thread_, |
| 1720 media_channel, nullptr, kVcName, false); | 1733 media_engine_, media_channel, nullptr, |
| 1734 kVcName, false); |
| 1721 | 1735 |
| 1722 // Create a local stream with a local audio track and adds it to the stats. | 1736 // Create a local stream with a local audio track and adds it to the stats. |
| 1723 AddOutgoingAudioTrackStats(); | 1737 AddOutgoingAudioTrackStats(); |
| 1724 stats.AddStream(stream_); | 1738 stats.AddStream(stream_); |
| 1725 stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack); | 1739 stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack); |
| 1726 | 1740 |
| 1727 cricket::VoiceSenderInfo voice_sender_info; | 1741 cricket::VoiceSenderInfo voice_sender_info; |
| 1728 voice_sender_info.add_ssrc(kSsrcOfTrack); | 1742 voice_sender_info.add_ssrc(kSsrcOfTrack); |
| 1729 | 1743 |
| 1730 cricket::VoiceMediaInfo stats_read; | 1744 cricket::VoiceMediaInfo stats_read; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 1750 cricket::VoiceSenderInfo new_voice_sender_info; | 1764 cricket::VoiceSenderInfo new_voice_sender_info; |
| 1751 InitVoiceSenderInfo(&new_voice_sender_info); | 1765 InitVoiceSenderInfo(&new_voice_sender_info); |
| 1752 cricket::VoiceMediaInfo new_stats_read; | 1766 cricket::VoiceMediaInfo new_stats_read; |
| 1753 reports.clear(); | 1767 reports.clear(); |
| 1754 SetupAndVerifyAudioTrackStats( | 1768 SetupAndVerifyAudioTrackStats( |
| 1755 new_audio_track.get(), stream_.get(), &stats, &voice_channel, kVcName, | 1769 new_audio_track.get(), stream_.get(), &stats, &voice_channel, kVcName, |
| 1756 media_channel, &new_voice_sender_info, NULL, &new_stats_read, &reports); | 1770 media_channel, &new_voice_sender_info, NULL, &new_stats_read, &reports); |
| 1757 } | 1771 } |
| 1758 | 1772 |
| 1759 } // namespace webrtc | 1773 } // namespace webrtc |
| OLD | NEW |