Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1007)

Side by Side Diff: talk/app/webrtc/statscollector_unittest.cc

Issue 1363573002: Wire up transport sequence number / send time callbacks to webrtc via libjingle. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Cleanup Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698