OLD | NEW |
1 /* | 1 /* |
2 * libjingle | 2 * libjingle |
3 * Copyright 2014 Google Inc. | 3 * Copyright 2014 Google Inc. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 // Error return values | 75 // Error return values |
76 const char kNotFound[] = "NOT FOUND"; | 76 const char kNotFound[] = "NOT FOUND"; |
77 | 77 |
78 // Constant names for track identification. | 78 // Constant names for track identification. |
79 const char kLocalTrackId[] = "local_track_id"; | 79 const char kLocalTrackId[] = "local_track_id"; |
80 const char kRemoteTrackId[] = "remote_track_id"; | 80 const char kRemoteTrackId[] = "remote_track_id"; |
81 const uint32_t kSsrcOfTrack = 1234; | 81 const uint32_t kSsrcOfTrack = 1234; |
82 | 82 |
83 class MockWebRtcSession : public webrtc::WebRtcSession { | 83 class MockWebRtcSession : public webrtc::WebRtcSession { |
84 public: | 84 public: |
85 explicit MockWebRtcSession(cricket::ChannelManager* channel_manager) | 85 explicit MockWebRtcSession(webrtc::MediaControllerInterface* media_controller) |
86 : WebRtcSession(channel_manager, rtc::Thread::Current(), | 86 : WebRtcSession(media_controller, |
87 rtc::Thread::Current(), NULL, NULL) { | 87 rtc::Thread::Current(), |
88 } | 88 rtc::Thread::Current(), |
| 89 NULL, |
| 90 NULL) {} |
89 MOCK_METHOD0(voice_channel, cricket::VoiceChannel*()); | 91 MOCK_METHOD0(voice_channel, cricket::VoiceChannel*()); |
90 MOCK_METHOD0(video_channel, cricket::VideoChannel*()); | 92 MOCK_METHOD0(video_channel, cricket::VideoChannel*()); |
91 MOCK_CONST_METHOD0(mediastream_signaling, const MediaStreamSignaling*()); | 93 MOCK_CONST_METHOD0(mediastream_signaling, const MediaStreamSignaling*()); |
92 // Libjingle uses "local" for a outgoing track, and "remote" for a incoming | 94 // Libjingle uses "local" for a outgoing track, and "remote" for a incoming |
93 // track. | 95 // track. |
94 MOCK_METHOD2(GetLocalTrackIdBySsrc, bool(uint32_t, std::string*)); | 96 MOCK_METHOD2(GetLocalTrackIdBySsrc, bool(uint32_t, std::string*)); |
95 MOCK_METHOD2(GetRemoteTrackIdBySsrc, bool(uint32_t, std::string*)); | 97 MOCK_METHOD2(GetRemoteTrackIdBySsrc, bool(uint32_t, std::string*)); |
96 MOCK_METHOD1(GetTransportStats, bool(cricket::SessionStats*)); | 98 MOCK_METHOD1(GetTransportStats, bool(cricket::SessionStats*)); |
97 MOCK_METHOD2(GetLocalCertificate, | 99 MOCK_METHOD2(GetLocalCertificate, |
98 bool(const std::string& transport_name, | 100 bool(const std::string& transport_name, |
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
480 return time_now_; | 482 return time_now_; |
481 } | 483 } |
482 | 484 |
483 private: | 485 private: |
484 double time_now_; | 486 double time_now_; |
485 }; | 487 }; |
486 | 488 |
487 class StatsCollectorTest : public testing::Test { | 489 class StatsCollectorTest : public testing::Test { |
488 protected: | 490 protected: |
489 StatsCollectorTest() | 491 StatsCollectorTest() |
490 : media_engine_(new cricket::FakeMediaEngine()), | 492 : media_engine_(new cricket::FakeMediaEngine()), |
491 channel_manager_( | 493 channel_manager_( |
492 new cricket::ChannelManager(media_engine_, rtc::Thread::Current())), | 494 new cricket::ChannelManager(media_engine_, rtc::Thread::Current())), |
493 session_(channel_manager_.get()), | 495 media_controller_( |
494 signaling_(channel_manager_.get()) { | 496 webrtc::MediaControllerInterface::Create(rtc::Thread::Current(), |
| 497 channel_manager_.get())), |
| 498 session_(media_controller_.get()), |
| 499 signaling_(channel_manager_.get()) { |
495 // By default, we ignore session GetStats calls. | 500 // By default, we ignore session GetStats calls. |
496 EXPECT_CALL(session_, GetTransportStats(_)).WillRepeatedly(Return(false)); | 501 EXPECT_CALL(session_, GetTransportStats(_)).WillRepeatedly(Return(false)); |
497 EXPECT_CALL(session_, mediastream_signaling()).WillRepeatedly( | 502 EXPECT_CALL(session_, mediastream_signaling()).WillRepeatedly( |
498 Return(&signaling_)); | 503 Return(&signaling_)); |
499 } | 504 } |
500 | 505 |
501 ~StatsCollectorTest() {} | 506 ~StatsCollectorTest() {} |
502 | 507 |
503 // This creates a standard setup with a transport called "trspname" | 508 // This creates a standard setup with a transport called "trspname" |
504 // having one transport channel | 509 // having one transport channel |
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
726 dtls_cipher); | 731 dtls_cipher); |
727 std::string srtp_cipher = ExtractStatsValue( | 732 std::string srtp_cipher = ExtractStatsValue( |
728 StatsReport::kStatsReportTypeComponent, | 733 StatsReport::kStatsReportTypeComponent, |
729 reports, | 734 reports, |
730 StatsReport::kStatsValueNameSrtpCipher); | 735 StatsReport::kStatsValueNameSrtpCipher); |
731 EXPECT_EQ("the-srtp-cipher", srtp_cipher); | 736 EXPECT_EQ("the-srtp-cipher", srtp_cipher); |
732 } | 737 } |
733 | 738 |
734 cricket::FakeMediaEngine* media_engine_; | 739 cricket::FakeMediaEngine* media_engine_; |
735 rtc::scoped_ptr<cricket::ChannelManager> channel_manager_; | 740 rtc::scoped_ptr<cricket::ChannelManager> channel_manager_; |
| 741 rtc::scoped_ptr<webrtc::MediaControllerInterface> media_controller_; |
736 MockWebRtcSession session_; | 742 MockWebRtcSession session_; |
737 FakeMediaStreamSignaling signaling_; | 743 FakeMediaStreamSignaling signaling_; |
738 FakeDataChannelProvider data_channel_provider_; | 744 FakeDataChannelProvider data_channel_provider_; |
739 cricket::SessionStats session_stats_; | 745 cricket::SessionStats session_stats_; |
740 rtc::scoped_refptr<webrtc::MediaStream> stream_; | 746 rtc::scoped_refptr<webrtc::MediaStream> stream_; |
741 rtc::scoped_refptr<webrtc::VideoTrack> track_; | 747 rtc::scoped_refptr<webrtc::VideoTrack> track_; |
742 rtc::scoped_refptr<FakeAudioTrack> audio_track_; | 748 rtc::scoped_refptr<FakeAudioTrack> audio_track_; |
743 }; | 749 }; |
744 | 750 |
745 // Verify that ExtractDataInfo populates reports. | 751 // Verify that ExtractDataInfo populates reports. |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
796 .WillRepeatedly(Return(false)); | 802 .WillRepeatedly(Return(false)); |
797 | 803 |
798 const char kVideoChannelName[] = "video"; | 804 const char kVideoChannelName[] = "video"; |
799 | 805 |
800 InitSessionStats(kVideoChannelName); | 806 InitSessionStats(kVideoChannelName); |
801 EXPECT_CALL(session_, GetTransportStats(_)) | 807 EXPECT_CALL(session_, GetTransportStats(_)) |
802 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 808 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), |
803 Return(true))); | 809 Return(true))); |
804 | 810 |
805 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 811 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
806 cricket::VideoChannel video_channel(rtc::Thread::Current(), | 812 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, |
807 media_channel, NULL, kVideoChannelName, false); | 813 nullptr, kVideoChannelName, false); |
808 StatsReports reports; // returned values. | 814 StatsReports reports; // returned values. |
809 cricket::VideoSenderInfo video_sender_info; | 815 cricket::VideoSenderInfo video_sender_info; |
810 cricket::VideoMediaInfo stats_read; | 816 cricket::VideoMediaInfo stats_read; |
811 // The number of bytes must be larger than 0xFFFFFFFF for this test. | 817 // The number of bytes must be larger than 0xFFFFFFFF for this test. |
812 const int64_t kBytesSent = 12345678901234LL; | 818 const int64_t kBytesSent = 12345678901234LL; |
813 const std::string kBytesSentString("12345678901234"); | 819 const std::string kBytesSentString("12345678901234"); |
814 | 820 |
815 AddOutgoingVideoTrackStats(); | 821 AddOutgoingVideoTrackStats(); |
816 stats.AddStream(stream_); | 822 stats.AddStream(stream_); |
817 | 823 |
(...skipping 24 matching lines...) Expand all Loading... |
842 .WillRepeatedly(Return(false)); | 848 .WillRepeatedly(Return(false)); |
843 | 849 |
844 const char kVideoChannelName[] = "video"; | 850 const char kVideoChannelName[] = "video"; |
845 | 851 |
846 InitSessionStats(kVideoChannelName); | 852 InitSessionStats(kVideoChannelName); |
847 EXPECT_CALL(session_, GetTransportStats(_)) | 853 EXPECT_CALL(session_, GetTransportStats(_)) |
848 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 854 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), |
849 Return(true))); | 855 Return(true))); |
850 | 856 |
851 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 857 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
852 cricket::VideoChannel video_channel(rtc::Thread::Current(), | 858 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, |
853 media_channel, NULL, kVideoChannelName, false); | 859 nullptr, kVideoChannelName, false); |
854 | 860 |
855 StatsReports reports; // returned values. | 861 StatsReports reports; // returned values. |
856 cricket::VideoSenderInfo video_sender_info; | 862 cricket::VideoSenderInfo video_sender_info; |
857 cricket::VideoMediaInfo stats_read; | 863 cricket::VideoMediaInfo stats_read; |
858 // Set up an SSRC just to test that we get both kinds of stats back: SSRC and | 864 // Set up an SSRC just to test that we get both kinds of stats back: SSRC and |
859 // BWE. | 865 // BWE. |
860 const int64_t kBytesSent = 12345678901234LL; | 866 const int64_t kBytesSent = 12345678901234LL; |
861 const std::string kBytesSentString("12345678901234"); | 867 const std::string kBytesSentString("12345678901234"); |
862 | 868 |
863 AddOutgoingVideoTrackStats(); | 869 AddOutgoingVideoTrackStats(); |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
921 reports, StatsReport::kStatsReportTypeSession, 2); | 927 reports, StatsReport::kStatsReportTypeSession, 2); |
922 EXPECT_EQ(NULL, session_report); | 928 EXPECT_EQ(NULL, session_report); |
923 } | 929 } |
924 | 930 |
925 // This test verifies that the empty track report exists in the returned stats | 931 // This test verifies that the empty track report exists in the returned stats |
926 // without calling StatsCollector::UpdateStats. | 932 // without calling StatsCollector::UpdateStats. |
927 TEST_F(StatsCollectorTest, TrackObjectExistsWithoutUpdateStats) { | 933 TEST_F(StatsCollectorTest, TrackObjectExistsWithoutUpdateStats) { |
928 StatsCollectorForTest stats(&session_); | 934 StatsCollectorForTest stats(&session_); |
929 | 935 |
930 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 936 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
931 cricket::VideoChannel video_channel(rtc::Thread::Current(), | 937 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, |
932 media_channel, NULL, "video", false); | 938 nullptr, "video", false); |
933 AddOutgoingVideoTrackStats(); | 939 AddOutgoingVideoTrackStats(); |
934 stats.AddStream(stream_); | 940 stats.AddStream(stream_); |
935 | 941 |
936 // Verfies the existence of the track report. | 942 // Verfies the existence of the track report. |
937 StatsReports reports; | 943 StatsReports reports; |
938 stats.GetStats(NULL, &reports); | 944 stats.GetStats(NULL, &reports); |
939 EXPECT_EQ((size_t)1, reports.size()); | 945 EXPECT_EQ((size_t)1, reports.size()); |
940 EXPECT_EQ(StatsReport::kStatsReportTypeTrack, reports[0]->type()); | 946 EXPECT_EQ(StatsReport::kStatsReportTypeTrack, reports[0]->type()); |
941 EXPECT_EQ(0, reports[0]->timestamp()); | 947 EXPECT_EQ(0, reports[0]->timestamp()); |
942 | 948 |
(...skipping 14 matching lines...) Expand all Loading... |
957 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) | 963 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
958 .WillRepeatedly(Return(false)); | 964 .WillRepeatedly(Return(false)); |
959 | 965 |
960 const char kVideoChannelName[] = "video"; | 966 const char kVideoChannelName[] = "video"; |
961 InitSessionStats(kVideoChannelName); | 967 InitSessionStats(kVideoChannelName); |
962 EXPECT_CALL(session_, GetTransportStats(_)) | 968 EXPECT_CALL(session_, GetTransportStats(_)) |
963 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 969 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), |
964 Return(true))); | 970 Return(true))); |
965 | 971 |
966 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 972 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
967 cricket::VideoChannel video_channel(rtc::Thread::Current(), | 973 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, |
968 media_channel, NULL, kVideoChannelName, false); | 974 nullptr, kVideoChannelName, false); |
969 AddOutgoingVideoTrackStats(); | 975 AddOutgoingVideoTrackStats(); |
970 stats.AddStream(stream_); | 976 stats.AddStream(stream_); |
971 | 977 |
972 // Constructs an ssrc stats update. | 978 // Constructs an ssrc stats update. |
973 cricket::VideoSenderInfo video_sender_info; | 979 cricket::VideoSenderInfo video_sender_info; |
974 cricket::VideoMediaInfo stats_read; | 980 cricket::VideoMediaInfo stats_read; |
975 const int64_t kBytesSent = 12345678901234LL; | 981 const int64_t kBytesSent = 12345678901234LL; |
976 | 982 |
977 // Construct a stats value to read. | 983 // Construct a stats value to read. |
978 video_sender_info.add_ssrc(1234); | 984 video_sender_info.add_ssrc(1234); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1021 StatsCollectorForTest stats(&session_); | 1027 StatsCollectorForTest stats(&session_); |
1022 | 1028 |
1023 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1029 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1024 .WillRepeatedly(Return(false)); | 1030 .WillRepeatedly(Return(false)); |
1025 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) | 1031 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
1026 .WillRepeatedly(Return(false)); | 1032 .WillRepeatedly(Return(false)); |
1027 | 1033 |
1028 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1034 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1029 // The transport_name known by the video channel. | 1035 // The transport_name known by the video channel. |
1030 const std::string kVcName("vcname"); | 1036 const std::string kVcName("vcname"); |
1031 cricket::VideoChannel video_channel(rtc::Thread::Current(), | 1037 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, |
1032 media_channel, NULL, kVcName, false); | 1038 nullptr, kVcName, false); |
1033 AddOutgoingVideoTrackStats(); | 1039 AddOutgoingVideoTrackStats(); |
1034 stats.AddStream(stream_); | 1040 stats.AddStream(stream_); |
1035 | 1041 |
1036 // Constructs an ssrc stats update. | 1042 // Constructs an ssrc stats update. |
1037 cricket::VideoSenderInfo video_sender_info; | 1043 cricket::VideoSenderInfo video_sender_info; |
1038 cricket::VideoMediaInfo stats_read; | 1044 cricket::VideoMediaInfo stats_read; |
1039 const int64_t kBytesSent = 12345678901234LL; | 1045 const int64_t kBytesSent = 12345678901234LL; |
1040 | 1046 |
1041 // Construct a stats value to read. | 1047 // Construct a stats value to read. |
1042 video_sender_info.add_ssrc(1234); | 1048 video_sender_info.add_ssrc(1234); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1079 } | 1085 } |
1080 | 1086 |
1081 // This test verifies that a remote stats object will not be created for | 1087 // This test verifies that a remote stats object will not be created for |
1082 // an outgoing SSRC where remote stats are not returned. | 1088 // an outgoing SSRC where remote stats are not returned. |
1083 TEST_F(StatsCollectorTest, RemoteSsrcInfoIsAbsent) { | 1089 TEST_F(StatsCollectorTest, RemoteSsrcInfoIsAbsent) { |
1084 StatsCollectorForTest stats(&session_); | 1090 StatsCollectorForTest stats(&session_); |
1085 | 1091 |
1086 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1092 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1087 // The transport_name known by the video channel. | 1093 // The transport_name known by the video channel. |
1088 const std::string kVcName("vcname"); | 1094 const std::string kVcName("vcname"); |
1089 cricket::VideoChannel video_channel(rtc::Thread::Current(), | 1095 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, |
1090 media_channel, NULL, kVcName, false); | 1096 nullptr, kVcName, false); |
1091 AddOutgoingVideoTrackStats(); | 1097 AddOutgoingVideoTrackStats(); |
1092 stats.AddStream(stream_); | 1098 stats.AddStream(stream_); |
1093 | 1099 |
1094 EXPECT_CALL(session_, video_channel()).WillRepeatedly(ReturnNull()); | 1100 EXPECT_CALL(session_, video_channel()).WillRepeatedly(ReturnNull()); |
1095 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); | 1101 EXPECT_CALL(session_, voice_channel()).WillRepeatedly(ReturnNull()); |
1096 | 1102 |
1097 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); | 1103 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); |
1098 StatsReports reports; | 1104 StatsReports reports; |
1099 stats.GetStats(NULL, &reports); | 1105 stats.GetStats(NULL, &reports); |
1100 const StatsReport* remote_report = FindNthReportByType(reports, | 1106 const StatsReport* remote_report = FindNthReportByType(reports, |
1101 StatsReport::kStatsReportTypeRemoteSsrc, 1); | 1107 StatsReport::kStatsReportTypeRemoteSsrc, 1); |
1102 EXPECT_TRUE(remote_report == NULL); | 1108 EXPECT_TRUE(remote_report == NULL); |
1103 } | 1109 } |
1104 | 1110 |
1105 // This test verifies that a remote stats object will be created for | 1111 // This test verifies that a remote stats object will be created for |
1106 // an outgoing SSRC where stats are returned. | 1112 // an outgoing SSRC where stats are returned. |
1107 TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) { | 1113 TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) { |
1108 StatsCollectorForTest stats(&session_); | 1114 StatsCollectorForTest stats(&session_); |
1109 | 1115 |
1110 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1116 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1111 .WillRepeatedly(Return(false)); | 1117 .WillRepeatedly(Return(false)); |
1112 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) | 1118 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
1113 .WillRepeatedly(Return(false)); | 1119 .WillRepeatedly(Return(false)); |
1114 | 1120 |
1115 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1121 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1116 // The transport_name known by the video channel. | 1122 // The transport_name known by the video channel. |
1117 const std::string kVcName("vcname"); | 1123 const std::string kVcName("vcname"); |
1118 cricket::VideoChannel video_channel(rtc::Thread::Current(), | 1124 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, |
1119 media_channel, NULL, kVcName, false); | 1125 nullptr, kVcName, false); |
1120 AddOutgoingVideoTrackStats(); | 1126 AddOutgoingVideoTrackStats(); |
1121 stats.AddStream(stream_); | 1127 stats.AddStream(stream_); |
1122 | 1128 |
1123 // Instruct the session to return stats containing the transport channel. | 1129 // Instruct the session to return stats containing the transport channel. |
1124 InitSessionStats(kVcName); | 1130 InitSessionStats(kVcName); |
1125 EXPECT_CALL(session_, GetTransportStats(_)) | 1131 EXPECT_CALL(session_, GetTransportStats(_)) |
1126 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1132 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), |
1127 Return(true))); | 1133 Return(true))); |
1128 | 1134 |
1129 // Constructs an ssrc stats update. | 1135 // Constructs an ssrc stats update. |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1163 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) | 1169 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
1164 .WillRepeatedly(Return(false)); | 1170 .WillRepeatedly(Return(false)); |
1165 | 1171 |
1166 const char kVideoChannelName[] = "video"; | 1172 const char kVideoChannelName[] = "video"; |
1167 InitSessionStats(kVideoChannelName); | 1173 InitSessionStats(kVideoChannelName); |
1168 EXPECT_CALL(session_, GetTransportStats(_)) | 1174 EXPECT_CALL(session_, GetTransportStats(_)) |
1169 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1175 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), |
1170 Return(true))); | 1176 Return(true))); |
1171 | 1177 |
1172 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); | 1178 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
1173 cricket::VideoChannel video_channel(rtc::Thread::Current(), | 1179 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, |
1174 media_channel, NULL, kVideoChannelName, false); | 1180 nullptr, kVideoChannelName, false); |
1175 AddIncomingVideoTrackStats(); | 1181 AddIncomingVideoTrackStats(); |
1176 stats.AddStream(stream_); | 1182 stats.AddStream(stream_); |
1177 | 1183 |
1178 // Constructs an ssrc stats update. | 1184 // Constructs an ssrc stats update. |
1179 cricket::VideoReceiverInfo video_receiver_info; | 1185 cricket::VideoReceiverInfo video_receiver_info; |
1180 cricket::VideoMediaInfo stats_read; | 1186 cricket::VideoMediaInfo stats_read; |
1181 const int64_t kNumOfPacketsConcealed = 54321; | 1187 const int64_t kNumOfPacketsConcealed = 54321; |
1182 | 1188 |
1183 // Construct a stats value to read. | 1189 // Construct a stats value to read. |
1184 video_receiver_info.add_ssrc(1234); | 1190 video_receiver_info.add_ssrc(1234); |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1478 StatsCollectorForTest stats(&session_); | 1484 StatsCollectorForTest stats(&session_); |
1479 | 1485 |
1480 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1486 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1481 .WillRepeatedly(Return(false)); | 1487 .WillRepeatedly(Return(false)); |
1482 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) | 1488 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
1483 .WillRepeatedly(Return(false)); | 1489 .WillRepeatedly(Return(false)); |
1484 | 1490 |
1485 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1491 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
1486 // The transport_name known by the voice channel. | 1492 // The transport_name known by the voice channel. |
1487 const std::string kVcName("vcname"); | 1493 const std::string kVcName("vcname"); |
1488 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), | 1494 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, |
1489 media_engine_, media_channel, NULL, kVcName, false); | 1495 media_channel, nullptr, kVcName, false); |
1490 AddOutgoingAudioTrackStats(); | 1496 AddOutgoingAudioTrackStats(); |
1491 stats.AddStream(stream_); | 1497 stats.AddStream(stream_); |
1492 stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack); | 1498 stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack); |
1493 | 1499 |
1494 cricket::VoiceSenderInfo voice_sender_info; | 1500 cricket::VoiceSenderInfo voice_sender_info; |
1495 InitVoiceSenderInfo(&voice_sender_info); | 1501 InitVoiceSenderInfo(&voice_sender_info); |
1496 | 1502 |
1497 cricket::VoiceMediaInfo stats_read; | 1503 cricket::VoiceMediaInfo stats_read; |
1498 StatsReports reports; // returned values. | 1504 StatsReports reports; // returned values. |
1499 SetupAndVerifyAudioTrackStats( | 1505 SetupAndVerifyAudioTrackStats( |
(...skipping 13 matching lines...) Expand all Loading... |
1513 StatsCollectorForTest stats(&session_); | 1519 StatsCollectorForTest stats(&session_); |
1514 | 1520 |
1515 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1521 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1516 .WillRepeatedly(Return(false)); | 1522 .WillRepeatedly(Return(false)); |
1517 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) | 1523 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
1518 .WillRepeatedly(Return(false)); | 1524 .WillRepeatedly(Return(false)); |
1519 | 1525 |
1520 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1526 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
1521 // The transport_name known by the voice channel. | 1527 // The transport_name known by the voice channel. |
1522 const std::string kVcName("vcname"); | 1528 const std::string kVcName("vcname"); |
1523 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), | 1529 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, |
1524 media_engine_, media_channel, NULL, kVcName, false); | 1530 media_channel, nullptr, kVcName, false); |
1525 AddIncomingAudioTrackStats(); | 1531 AddIncomingAudioTrackStats(); |
1526 stats.AddStream(stream_); | 1532 stats.AddStream(stream_); |
1527 | 1533 |
1528 cricket::VoiceReceiverInfo voice_receiver_info; | 1534 cricket::VoiceReceiverInfo voice_receiver_info; |
1529 InitVoiceReceiverInfo(&voice_receiver_info); | 1535 InitVoiceReceiverInfo(&voice_receiver_info); |
1530 voice_receiver_info.codec_name = "fake_codec"; | 1536 voice_receiver_info.codec_name = "fake_codec"; |
1531 | 1537 |
1532 cricket::VoiceMediaInfo stats_read; | 1538 cricket::VoiceMediaInfo stats_read; |
1533 StatsReports reports; // returned values. | 1539 StatsReports reports; // returned values. |
1534 SetupAndVerifyAudioTrackStats( | 1540 SetupAndVerifyAudioTrackStats( |
1535 audio_track_.get(), stream_.get(), &stats, &voice_channel, kVcName, | 1541 audio_track_.get(), stream_.get(), &stats, &voice_channel, kVcName, |
1536 media_channel, NULL, &voice_receiver_info, &stats_read, &reports); | 1542 media_channel, NULL, &voice_receiver_info, &stats_read, &reports); |
1537 } | 1543 } |
1538 | 1544 |
1539 // This test verifies that a local stats object won't update its statistics | 1545 // This test verifies that a local stats object won't update its statistics |
1540 // after a RemoveLocalAudioTrack() call. | 1546 // after a RemoveLocalAudioTrack() call. |
1541 TEST_F(StatsCollectorTest, GetStatsAfterRemoveAudioStream) { | 1547 TEST_F(StatsCollectorTest, GetStatsAfterRemoveAudioStream) { |
1542 StatsCollectorForTest stats(&session_); | 1548 StatsCollectorForTest stats(&session_); |
1543 | 1549 |
1544 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1550 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1545 .WillRepeatedly(Return(false)); | 1551 .WillRepeatedly(Return(false)); |
1546 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) | 1552 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
1547 .WillRepeatedly(Return(false)); | 1553 .WillRepeatedly(Return(false)); |
1548 | 1554 |
1549 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1555 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
1550 // The transport_name known by the voice channel. | 1556 // The transport_name known by the voice channel. |
1551 const std::string kVcName("vcname"); | 1557 const std::string kVcName("vcname"); |
1552 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), | 1558 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, |
1553 media_engine_, media_channel, NULL, kVcName, false); | 1559 media_channel, nullptr, kVcName, false); |
1554 AddOutgoingAudioTrackStats(); | 1560 AddOutgoingAudioTrackStats(); |
1555 stats.AddStream(stream_); | 1561 stats.AddStream(stream_); |
1556 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); | 1562 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); |
1557 | 1563 |
1558 // Instruct the session to return stats containing the transport channel. | 1564 // Instruct the session to return stats containing the transport channel. |
1559 InitSessionStats(kVcName); | 1565 InitSessionStats(kVcName); |
1560 EXPECT_CALL(session_, GetTransportStats(_)) | 1566 EXPECT_CALL(session_, GetTransportStats(_)) |
1561 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), | 1567 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), |
1562 Return(true))); | 1568 Return(true))); |
1563 | 1569 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1603 StatsCollectorForTest stats(&session_); | 1609 StatsCollectorForTest stats(&session_); |
1604 | 1610 |
1605 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1611 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1606 .WillRepeatedly(Return(false)); | 1612 .WillRepeatedly(Return(false)); |
1607 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) | 1613 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
1608 .WillRepeatedly(Return(false)); | 1614 .WillRepeatedly(Return(false)); |
1609 | 1615 |
1610 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1616 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
1611 // The transport_name known by the voice channel. | 1617 // The transport_name known by the voice channel. |
1612 const std::string kVcName("vcname"); | 1618 const std::string kVcName("vcname"); |
1613 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), | 1619 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, |
1614 media_engine_, media_channel, NULL, kVcName, false); | 1620 media_channel, nullptr, kVcName, false); |
1615 | 1621 |
1616 // Create a local stream with a local audio track and adds it to the stats. | 1622 // Create a local stream with a local audio track and adds it to the stats. |
1617 AddOutgoingAudioTrackStats(); | 1623 AddOutgoingAudioTrackStats(); |
1618 stats.AddStream(stream_); | 1624 stats.AddStream(stream_); |
1619 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); | 1625 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); |
1620 | 1626 |
1621 // Create a remote stream with a remote audio track and adds it to the stats. | 1627 // Create a remote stream with a remote audio track and adds it to the stats. |
1622 rtc::scoped_refptr<webrtc::MediaStream> remote_stream( | 1628 rtc::scoped_refptr<webrtc::MediaStream> remote_stream( |
1623 webrtc::MediaStream::Create("remotestreamlabel")); | 1629 webrtc::MediaStream::Create("remotestreamlabel")); |
1624 rtc::scoped_refptr<FakeAudioTrack> remote_track( | 1630 rtc::scoped_refptr<FakeAudioTrack> remote_track( |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1690 StatsCollectorForTest stats(&session_); | 1696 StatsCollectorForTest stats(&session_); |
1691 | 1697 |
1692 EXPECT_CALL(session_, GetLocalCertificate(_, _)) | 1698 EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
1693 .WillRepeatedly(Return(false)); | 1699 .WillRepeatedly(Return(false)); |
1694 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) | 1700 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
1695 .WillRepeatedly(Return(false)); | 1701 .WillRepeatedly(Return(false)); |
1696 | 1702 |
1697 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); | 1703 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
1698 // The transport_name known by the voice channel. | 1704 // The transport_name known by the voice channel. |
1699 const std::string kVcName("vcname"); | 1705 const std::string kVcName("vcname"); |
1700 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), | 1706 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, |
1701 media_engine_, media_channel, NULL, kVcName, false); | 1707 media_channel, nullptr, kVcName, false); |
1702 | 1708 |
1703 // Create a local stream with a local audio track and adds it to the stats. | 1709 // Create a local stream with a local audio track and adds it to the stats. |
1704 AddOutgoingAudioTrackStats(); | 1710 AddOutgoingAudioTrackStats(); |
1705 stats.AddStream(stream_); | 1711 stats.AddStream(stream_); |
1706 stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack); | 1712 stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack); |
1707 | 1713 |
1708 cricket::VoiceSenderInfo voice_sender_info; | 1714 cricket::VoiceSenderInfo voice_sender_info; |
1709 voice_sender_info.add_ssrc(kSsrcOfTrack); | 1715 voice_sender_info.add_ssrc(kSsrcOfTrack); |
1710 | 1716 |
1711 cricket::VoiceMediaInfo stats_read; | 1717 cricket::VoiceMediaInfo stats_read; |
(...skipping 19 matching lines...) Expand all Loading... |
1731 cricket::VoiceSenderInfo new_voice_sender_info; | 1737 cricket::VoiceSenderInfo new_voice_sender_info; |
1732 InitVoiceSenderInfo(&new_voice_sender_info); | 1738 InitVoiceSenderInfo(&new_voice_sender_info); |
1733 cricket::VoiceMediaInfo new_stats_read; | 1739 cricket::VoiceMediaInfo new_stats_read; |
1734 reports.clear(); | 1740 reports.clear(); |
1735 SetupAndVerifyAudioTrackStats( | 1741 SetupAndVerifyAudioTrackStats( |
1736 new_audio_track.get(), stream_.get(), &stats, &voice_channel, kVcName, | 1742 new_audio_track.get(), stream_.get(), &stats, &voice_channel, kVcName, |
1737 media_channel, &new_voice_sender_info, NULL, &new_stats_read, &reports); | 1743 media_channel, &new_voice_sender_info, NULL, &new_stats_read, &reports); |
1738 } | 1744 } |
1739 | 1745 |
1740 } // namespace webrtc | 1746 } // namespace webrtc |
OLD | NEW |