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