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

Side by Side Diff: webrtc/api/statscollector_unittest.cc

Issue 1802013002: A bunch of interfaces: Return scoped_ptr<SSLCertificate> (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 9 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 * Copyright 2014 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2014 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 MOCK_METHOD0(voice_channel, cricket::VoiceChannel*()); 74 MOCK_METHOD0(voice_channel, cricket::VoiceChannel*());
75 MOCK_METHOD0(video_channel, cricket::VideoChannel*()); 75 MOCK_METHOD0(video_channel, cricket::VideoChannel*());
76 // Libjingle uses "local" for a outgoing track, and "remote" for a incoming 76 // Libjingle uses "local" for a outgoing track, and "remote" for a incoming
77 // track. 77 // track.
78 MOCK_METHOD2(GetLocalTrackIdBySsrc, bool(uint32_t, std::string*)); 78 MOCK_METHOD2(GetLocalTrackIdBySsrc, bool(uint32_t, std::string*));
79 MOCK_METHOD2(GetRemoteTrackIdBySsrc, bool(uint32_t, std::string*)); 79 MOCK_METHOD2(GetRemoteTrackIdBySsrc, bool(uint32_t, std::string*));
80 MOCK_METHOD1(GetTransportStats, bool(SessionStats*)); 80 MOCK_METHOD1(GetTransportStats, bool(SessionStats*));
81 MOCK_METHOD2(GetLocalCertificate, 81 MOCK_METHOD2(GetLocalCertificate,
82 bool(const std::string& transport_name, 82 bool(const std::string& transport_name,
83 rtc::scoped_refptr<rtc::RTCCertificate>* certificate)); 83 rtc::scoped_refptr<rtc::RTCCertificate>* certificate));
84 MOCK_METHOD2(GetRemoteSSLCertificate, 84
85 bool(const std::string& transport_name, 85 // Workaround for gmock's inability to cope with move-only return values.
86 rtc::SSLCertificate** cert)); 86 rtc::scoped_ptr<rtc::SSLCertificate> GetRemoteSSLCertificate(
87 const std::string& transport_name) override {
88 return rtc::scoped_ptr<rtc::SSLCertificate>(
89 GetRemoteSSLCertificate_ReturnsRawPointer(transport_name));
90 }
91 MOCK_METHOD1(GetRemoteSSLCertificate_ReturnsRawPointer,
92 rtc::SSLCertificate*(const std::string& transport_name));
87 }; 93 };
88 94
89 // The factory isn't really used; it just satisfies the base PeerConnection. 95 // The factory isn't really used; it just satisfies the base PeerConnection.
90 class FakePeerConnectionFactory 96 class FakePeerConnectionFactory
91 : public rtc::RefCountedObject<PeerConnectionFactory> {}; 97 : public rtc::RefCountedObject<PeerConnectionFactory> {};
92 98
93 class MockPeerConnection 99 class MockPeerConnection
94 : public rtc::RefCountedObject<webrtc::PeerConnection> { 100 : public rtc::RefCountedObject<webrtc::PeerConnection> {
95 public: 101 public:
96 MockPeerConnection() 102 MockPeerConnection()
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after
652 EXPECT_EQ(audio_track->id(), track_id); 658 EXPECT_EQ(audio_track->id(), track_id);
653 ssrc_id = ExtractSsrcStatsValue(track_reports, 659 ssrc_id = ExtractSsrcStatsValue(track_reports,
654 StatsReport::kStatsValueNameSsrc); 660 StatsReport::kStatsValueNameSsrc);
655 EXPECT_EQ(rtc::ToString<uint32_t>(kSsrcOfTrack), ssrc_id); 661 EXPECT_EQ(rtc::ToString<uint32_t>(kSsrcOfTrack), ssrc_id);
656 if (voice_sender_info) 662 if (voice_sender_info)
657 VerifyVoiceSenderInfoReport(track_report, *voice_sender_info); 663 VerifyVoiceSenderInfoReport(track_report, *voice_sender_info);
658 if (voice_receiver_info) 664 if (voice_receiver_info)
659 VerifyVoiceReceiverInfoReport(track_report, *voice_receiver_info); 665 VerifyVoiceReceiverInfoReport(track_report, *voice_receiver_info);
660 } 666 }
661 667
662 void TestCertificateReports(const rtc::FakeSSLCertificate& local_cert, 668 void TestCertificateReports(
663 const std::vector<std::string>& local_ders, 669 const rtc::FakeSSLCertificate& local_cert,
664 const rtc::FakeSSLCertificate& remote_cert, 670 const std::vector<std::string>& local_ders,
665 const std::vector<std::string>& remote_ders) { 671 rtc::scoped_ptr<rtc::FakeSSLCertificate> remote_cert,
672 const std::vector<std::string>& remote_ders) {
666 StatsCollectorForTest stats(&pc_); 673 StatsCollectorForTest stats(&pc_);
667 674
668 StatsReports reports; // returned values. 675 StatsReports reports; // returned values.
669 676
670 // Fake stats to process. 677 // Fake stats to process.
671 cricket::TransportChannelStats channel_stats; 678 cricket::TransportChannelStats channel_stats;
672 channel_stats.component = 1; 679 channel_stats.component = 1;
673 channel_stats.srtp_crypto_suite = rtc::SRTP_AES128_CM_SHA1_80; 680 channel_stats.srtp_crypto_suite = rtc::SRTP_AES128_CM_SHA1_80;
674 channel_stats.ssl_cipher_suite = TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA; 681 channel_stats.ssl_cipher_suite = TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA;
675 682
676 cricket::TransportStats transport_stats; 683 cricket::TransportStats transport_stats;
677 transport_stats.transport_name = "audio"; 684 transport_stats.transport_name = "audio";
678 transport_stats.channel_stats.push_back(channel_stats); 685 transport_stats.channel_stats.push_back(channel_stats);
679 686
680 SessionStats session_stats; 687 SessionStats session_stats;
681 session_stats.transport_stats[transport_stats.transport_name] = 688 session_stats.transport_stats[transport_stats.transport_name] =
682 transport_stats; 689 transport_stats;
683 690
684 // Fake certificate to report 691 // Fake certificate to report
685 rtc::scoped_refptr<rtc::RTCCertificate> local_certificate( 692 rtc::scoped_refptr<rtc::RTCCertificate> local_certificate(
686 rtc::RTCCertificate::Create(rtc::scoped_ptr<rtc::FakeSSLIdentity>( 693 rtc::RTCCertificate::Create(rtc::scoped_ptr<rtc::FakeSSLIdentity>(
687 new rtc::FakeSSLIdentity(local_cert)))); 694 new rtc::FakeSSLIdentity(local_cert))));
688 695
689 // Configure MockWebRtcSession 696 // Configure MockWebRtcSession
690 EXPECT_CALL(session_, 697 EXPECT_CALL(session_,
691 GetLocalCertificate(transport_stats.transport_name, _)) 698 GetLocalCertificate(transport_stats.transport_name, _))
692 .WillOnce(DoAll(SetArgPointee<1>(local_certificate), Return(true))); 699 .WillOnce(DoAll(SetArgPointee<1>(local_certificate), Return(true)));
693 EXPECT_CALL(session_, 700 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(
694 GetRemoteSSLCertificate(transport_stats.transport_name, _)) 701 transport_stats.transport_name))
695 .WillOnce( 702 .WillOnce(Return(remote_cert.release()));
696 DoAll(SetArgPointee<1>(remote_cert.GetReference()), Return(true)));
697 EXPECT_CALL(session_, GetTransportStats(_)) 703 EXPECT_CALL(session_, GetTransportStats(_))
698 .WillOnce(DoAll(SetArgPointee<0>(session_stats), 704 .WillOnce(DoAll(SetArgPointee<0>(session_stats),
699 Return(true))); 705 Return(true)));
700 706
701 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard); 707 stats.UpdateStats(PeerConnectionInterface::kStatsOutputLevelStandard);
702 708
703 stats.GetStats(NULL, &reports); 709 stats.GetStats(NULL, &reports);
704 710
705 const StatsReport* channel_report = FindNthReportByType( 711 const StatsReport* channel_report = FindNthReportByType(
706 reports, StatsReport::kStatsReportTypeComponent, 1); 712 reports, StatsReport::kStatsReportTypeComponent, 1);
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
796 reports, 802 reports,
797 StatsReport::kStatsValueNameProtocol)); 803 StatsReport::kStatsValueNameProtocol));
798 } 804 }
799 805
800 // This test verifies that 64-bit counters are passed successfully. 806 // This test verifies that 64-bit counters are passed successfully.
801 TEST_F(StatsCollectorTest, BytesCounterHandles64Bits) { 807 TEST_F(StatsCollectorTest, BytesCounterHandles64Bits) {
802 StatsCollectorForTest stats(&pc_); 808 StatsCollectorForTest stats(&pc_);
803 809
804 EXPECT_CALL(session_, GetLocalCertificate(_, _)) 810 EXPECT_CALL(session_, GetLocalCertificate(_, _))
805 .WillRepeatedly(Return(false)); 811 .WillRepeatedly(Return(false));
806 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) 812 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
807 .WillRepeatedly(Return(false)); 813 .WillRepeatedly(Return(nullptr));
808 814
809 const char kVideoChannelName[] = "video"; 815 const char kVideoChannelName[] = "video";
810 816
811 InitSessionStats(kVideoChannelName); 817 InitSessionStats(kVideoChannelName);
812 EXPECT_CALL(session_, GetTransportStats(_)) 818 EXPECT_CALL(session_, GetTransportStats(_))
813 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), 819 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_),
814 Return(true))); 820 Return(true)));
815 821
816 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); 822 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
817 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, 823 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel,
(...skipping 24 matching lines...) Expand all
842 StatsReport::kStatsValueNameBytesSent); 848 StatsReport::kStatsValueNameBytesSent);
843 EXPECT_EQ(kBytesSentString, result); 849 EXPECT_EQ(kBytesSentString, result);
844 } 850 }
845 851
846 // Test that BWE information is reported via stats. 852 // Test that BWE information is reported via stats.
847 TEST_F(StatsCollectorTest, BandwidthEstimationInfoIsReported) { 853 TEST_F(StatsCollectorTest, BandwidthEstimationInfoIsReported) {
848 StatsCollectorForTest stats(&pc_); 854 StatsCollectorForTest stats(&pc_);
849 855
850 EXPECT_CALL(session_, GetLocalCertificate(_, _)) 856 EXPECT_CALL(session_, GetLocalCertificate(_, _))
851 .WillRepeatedly(Return(false)); 857 .WillRepeatedly(Return(false));
852 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) 858 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
853 .WillRepeatedly(Return(false)); 859 .WillRepeatedly(Return(nullptr));
854 860
855 const char kVideoChannelName[] = "video"; 861 const char kVideoChannelName[] = "video";
856 862
857 InitSessionStats(kVideoChannelName); 863 InitSessionStats(kVideoChannelName);
858 EXPECT_CALL(session_, GetTransportStats(_)) 864 EXPECT_CALL(session_, GetTransportStats(_))
859 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), 865 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_),
860 Return(true))); 866 Return(true)));
861 867
862 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); 868 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
863 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, 869 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel,
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
954 EXPECT_EQ(kLocalTrackId, trackValue); 960 EXPECT_EQ(kLocalTrackId, trackValue);
955 } 961 }
956 962
957 // This test verifies that the empty track report exists in the returned stats 963 // This test verifies that the empty track report exists in the returned stats
958 // when StatsCollector::UpdateStats is called with ssrc stats. 964 // when StatsCollector::UpdateStats is called with ssrc stats.
959 TEST_F(StatsCollectorTest, TrackAndSsrcObjectExistAfterUpdateSsrcStats) { 965 TEST_F(StatsCollectorTest, TrackAndSsrcObjectExistAfterUpdateSsrcStats) {
960 StatsCollectorForTest stats(&pc_); 966 StatsCollectorForTest stats(&pc_);
961 967
962 EXPECT_CALL(session_, GetLocalCertificate(_, _)) 968 EXPECT_CALL(session_, GetLocalCertificate(_, _))
963 .WillRepeatedly(Return(false)); 969 .WillRepeatedly(Return(false));
964 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) 970 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
965 .WillRepeatedly(Return(false)); 971 .WillRepeatedly(Return(nullptr));
966 972
967 const char kVideoChannelName[] = "video"; 973 const char kVideoChannelName[] = "video";
968 InitSessionStats(kVideoChannelName); 974 InitSessionStats(kVideoChannelName);
969 EXPECT_CALL(session_, GetTransportStats(_)) 975 EXPECT_CALL(session_, GetTransportStats(_))
970 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), 976 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_),
971 Return(true))); 977 Return(true)));
972 978
973 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); 979 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
974 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, 980 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel,
975 nullptr, kVideoChannelName, false); 981 nullptr, kVideoChannelName, false);
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1026 EXPECT_EQ("video", media_type); 1032 EXPECT_EQ("video", media_type);
1027 } 1033 }
1028 1034
1029 // This test verifies that an SSRC object has the identifier of a Transport 1035 // This test verifies that an SSRC object has the identifier of a Transport
1030 // stats object, and that this transport stats object exists in stats. 1036 // stats object, and that this transport stats object exists in stats.
1031 TEST_F(StatsCollectorTest, TransportObjectLinkedFromSsrcObject) { 1037 TEST_F(StatsCollectorTest, TransportObjectLinkedFromSsrcObject) {
1032 StatsCollectorForTest stats(&pc_); 1038 StatsCollectorForTest stats(&pc_);
1033 1039
1034 EXPECT_CALL(session_, GetLocalCertificate(_, _)) 1040 EXPECT_CALL(session_, GetLocalCertificate(_, _))
1035 .WillRepeatedly(Return(false)); 1041 .WillRepeatedly(Return(false));
1036 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) 1042 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
1037 .WillRepeatedly(Return(false)); 1043 .WillRepeatedly(Return(nullptr));
1038 1044
1039 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); 1045 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
1040 // The transport_name known by the video channel. 1046 // The transport_name known by the video channel.
1041 const std::string kVcName("vcname"); 1047 const std::string kVcName("vcname");
1042 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, 1048 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel,
1043 nullptr, kVcName, false); 1049 nullptr, kVcName, false);
1044 AddOutgoingVideoTrackStats(); 1050 AddOutgoingVideoTrackStats();
1045 stats.AddStream(stream_); 1051 stats.AddStream(stream_);
1046 1052
1047 // Constructs an ssrc stats update. 1053 // Constructs an ssrc stats update.
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1110 EXPECT_TRUE(remote_report == NULL); 1116 EXPECT_TRUE(remote_report == NULL);
1111 } 1117 }
1112 1118
1113 // This test verifies that a remote stats object will be created for 1119 // This test verifies that a remote stats object will be created for
1114 // an outgoing SSRC where stats are returned. 1120 // an outgoing SSRC where stats are returned.
1115 TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) { 1121 TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) {
1116 StatsCollectorForTest stats(&pc_); 1122 StatsCollectorForTest stats(&pc_);
1117 1123
1118 EXPECT_CALL(session_, GetLocalCertificate(_, _)) 1124 EXPECT_CALL(session_, GetLocalCertificate(_, _))
1119 .WillRepeatedly(Return(false)); 1125 .WillRepeatedly(Return(false));
1120 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) 1126 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
1121 .WillRepeatedly(Return(false)); 1127 .WillRepeatedly(Return(nullptr));
1122 1128
1123 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); 1129 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
1124 // The transport_name known by the video channel. 1130 // The transport_name known by the video channel.
1125 const std::string kVcName("vcname"); 1131 const std::string kVcName("vcname");
1126 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, 1132 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel,
1127 nullptr, kVcName, false); 1133 nullptr, kVcName, false);
1128 AddOutgoingVideoTrackStats(); 1134 AddOutgoingVideoTrackStats();
1129 stats.AddStream(stream_); 1135 stats.AddStream(stream_);
1130 1136
1131 // Instruct the session to return stats containing the transport channel. 1137 // Instruct the session to return stats containing the transport channel.
(...skipping 29 matching lines...) Expand all
1161 EXPECT_EQ(12345.678, remote_report->timestamp()); 1167 EXPECT_EQ(12345.678, remote_report->timestamp());
1162 } 1168 }
1163 1169
1164 // This test verifies that the empty track report exists in the returned stats 1170 // This test verifies that the empty track report exists in the returned stats
1165 // when StatsCollector::UpdateStats is called with ssrc stats. 1171 // when StatsCollector::UpdateStats is called with ssrc stats.
1166 TEST_F(StatsCollectorTest, ReportsFromRemoteTrack) { 1172 TEST_F(StatsCollectorTest, ReportsFromRemoteTrack) {
1167 StatsCollectorForTest stats(&pc_); 1173 StatsCollectorForTest stats(&pc_);
1168 1174
1169 EXPECT_CALL(session_, GetLocalCertificate(_, _)) 1175 EXPECT_CALL(session_, GetLocalCertificate(_, _))
1170 .WillRepeatedly(Return(false)); 1176 .WillRepeatedly(Return(false));
1171 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) 1177 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
1172 .WillRepeatedly(Return(false)); 1178 .WillRepeatedly(Return(nullptr));
1173 1179
1174 const char kVideoChannelName[] = "video"; 1180 const char kVideoChannelName[] = "video";
1175 InitSessionStats(kVideoChannelName); 1181 InitSessionStats(kVideoChannelName);
1176 EXPECT_CALL(session_, GetTransportStats(_)) 1182 EXPECT_CALL(session_, GetTransportStats(_))
1177 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_), 1183 .WillRepeatedly(DoAll(SetArgPointee<0>(session_stats_),
1178 Return(true))); 1184 Return(true)));
1179 1185
1180 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); 1186 MockVideoMediaChannel* media_channel = new MockVideoMediaChannel();
1181 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel, 1187 cricket::VideoChannel video_channel(rtc::Thread::Current(), media_channel,
1182 nullptr, kVideoChannelName, false); 1188 nullptr, kVideoChannelName, false);
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
1322 local_ders[3] = "der"; 1328 local_ders[3] = "der";
1323 local_ders[4] = "values"; 1329 local_ders[4] = "values";
1324 rtc::FakeSSLCertificate local_cert(DersToPems(local_ders)); 1330 rtc::FakeSSLCertificate local_cert(DersToPems(local_ders));
1325 1331
1326 // Build remote certificate chain 1332 // Build remote certificate chain
1327 std::vector<std::string> remote_ders(4); 1333 std::vector<std::string> remote_ders(4);
1328 remote_ders[0] = "A"; 1334 remote_ders[0] = "A";
1329 remote_ders[1] = "non-"; 1335 remote_ders[1] = "non-";
1330 remote_ders[2] = "intersecting"; 1336 remote_ders[2] = "intersecting";
1331 remote_ders[3] = "set"; 1337 remote_ders[3] = "set";
1332 rtc::FakeSSLCertificate remote_cert(DersToPems(remote_ders)); 1338 auto remote_cert = rtc::scoped_ptr<rtc::FakeSSLCertificate>(
1339 new rtc::FakeSSLCertificate(DersToPems(remote_ders)));
1333 1340
1334 TestCertificateReports(local_cert, local_ders, remote_cert, remote_ders); 1341 TestCertificateReports(local_cert, local_ders, std::move(remote_cert),
1342 remote_ders);
1335 } 1343 }
1336 1344
1337 // This test verifies that all certificates without chains are correctly 1345 // This test verifies that all certificates without chains are correctly
1338 // reported. 1346 // reported.
1339 TEST_F(StatsCollectorTest, ChainlessCertificateReportsCreated) { 1347 TEST_F(StatsCollectorTest, ChainlessCertificateReportsCreated) {
1340 // Build local certificate. 1348 // Build local certificate.
1341 std::string local_der = "This is the local der."; 1349 std::string local_der = "This is the local der.";
1342 rtc::FakeSSLCertificate local_cert(DerToPem(local_der)); 1350 rtc::FakeSSLCertificate local_cert(DerToPem(local_der));
1343 1351
1344 // Build remote certificate. 1352 // Build remote certificate.
1345 std::string remote_der = "This is somebody else's der."; 1353 std::string remote_der = "This is somebody else's der.";
1346 rtc::FakeSSLCertificate remote_cert(DerToPem(remote_der)); 1354 auto remote_cert = rtc::scoped_ptr<rtc::FakeSSLCertificate>(
1355 new rtc::FakeSSLCertificate(DerToPem(remote_der)));
1347 1356
1348 TestCertificateReports(local_cert, std::vector<std::string>(1, local_der), 1357 TestCertificateReports(local_cert, std::vector<std::string>(1, local_der),
1349 remote_cert, std::vector<std::string>(1, remote_der)); 1358 std::move(remote_cert),
1359 std::vector<std::string>(1, remote_der));
1350 } 1360 }
1351 1361
1352 // This test verifies that the stats are generated correctly when no 1362 // This test verifies that the stats are generated correctly when no
1353 // transport is present. 1363 // transport is present.
1354 TEST_F(StatsCollectorTest, NoTransport) { 1364 TEST_F(StatsCollectorTest, NoTransport) {
1355 StatsCollectorForTest stats(&pc_); 1365 StatsCollectorForTest stats(&pc_);
1356 1366
1357 EXPECT_CALL(session_, GetLocalCertificate(_, _)) 1367 EXPECT_CALL(session_, GetLocalCertificate(_, _))
1358 .WillRepeatedly(Return(false)); 1368 .WillRepeatedly(Return(false));
1359 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) 1369 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
1360 .WillRepeatedly(Return(false)); 1370 .WillRepeatedly(Return(nullptr));
1361 1371
1362 StatsReports reports; // returned values. 1372 StatsReports reports; // returned values.
1363 1373
1364 // Fake stats to process. 1374 // Fake stats to process.
1365 cricket::TransportChannelStats channel_stats; 1375 cricket::TransportChannelStats channel_stats;
1366 channel_stats.component = 1; 1376 channel_stats.component = 1;
1367 1377
1368 cricket::TransportStats transport_stats; 1378 cricket::TransportStats transport_stats;
1369 transport_stats.transport_name = "audio"; 1379 transport_stats.transport_name = "audio";
1370 transport_stats.channel_stats.push_back(channel_stats); 1380 transport_stats.channel_stats.push_back(channel_stats);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1406 ASSERT_EQ(kNotFound, srtp_crypto_suite); 1416 ASSERT_EQ(kNotFound, srtp_crypto_suite);
1407 } 1417 }
1408 1418
1409 // This test verifies that the stats are generated correctly when the transport 1419 // This test verifies that the stats are generated correctly when the transport
1410 // does not have any certificates. 1420 // does not have any certificates.
1411 TEST_F(StatsCollectorTest, NoCertificates) { 1421 TEST_F(StatsCollectorTest, NoCertificates) {
1412 StatsCollectorForTest stats(&pc_); 1422 StatsCollectorForTest stats(&pc_);
1413 1423
1414 EXPECT_CALL(session_, GetLocalCertificate(_, _)) 1424 EXPECT_CALL(session_, GetLocalCertificate(_, _))
1415 .WillRepeatedly(Return(false)); 1425 .WillRepeatedly(Return(false));
1416 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) 1426 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
1417 .WillRepeatedly(Return(false)); 1427 .WillRepeatedly(Return(nullptr));
1418 1428
1419 StatsReports reports; // returned values. 1429 StatsReports reports; // returned values.
1420 1430
1421 // Fake stats to process. 1431 // Fake stats to process.
1422 cricket::TransportChannelStats channel_stats; 1432 cricket::TransportChannelStats channel_stats;
1423 channel_stats.component = 1; 1433 channel_stats.component = 1;
1424 1434
1425 cricket::TransportStats transport_stats; 1435 cricket::TransportStats transport_stats;
1426 transport_stats.transport_name = "audio"; 1436 transport_stats.transport_name = "audio";
1427 transport_stats.channel_stats.push_back(channel_stats); 1437 transport_stats.channel_stats.push_back(channel_stats);
(...skipping 30 matching lines...) Expand all
1458 1468
1459 // This test verifies that a remote certificate with an unsupported digest 1469 // This test verifies that a remote certificate with an unsupported digest
1460 // algorithm is correctly ignored. 1470 // algorithm is correctly ignored.
1461 TEST_F(StatsCollectorTest, UnsupportedDigestIgnored) { 1471 TEST_F(StatsCollectorTest, UnsupportedDigestIgnored) {
1462 // Build a local certificate. 1472 // Build a local certificate.
1463 std::string local_der = "This is the local der."; 1473 std::string local_der = "This is the local der.";
1464 rtc::FakeSSLCertificate local_cert(DerToPem(local_der)); 1474 rtc::FakeSSLCertificate local_cert(DerToPem(local_der));
1465 1475
1466 // Build a remote certificate with an unsupported digest algorithm. 1476 // Build a remote certificate with an unsupported digest algorithm.
1467 std::string remote_der = "This is somebody else's der."; 1477 std::string remote_der = "This is somebody else's der.";
1468 rtc::FakeSSLCertificate remote_cert(DerToPem(remote_der)); 1478 auto remote_cert = rtc::scoped_ptr<rtc::FakeSSLCertificate>(
1469 remote_cert.set_digest_algorithm("foobar"); 1479 new rtc::FakeSSLCertificate(DerToPem(remote_der)));
1480 remote_cert->set_digest_algorithm("foobar");
1470 1481
1471 TestCertificateReports(local_cert, std::vector<std::string>(1, local_der), 1482 TestCertificateReports(local_cert, std::vector<std::string>(1, local_der),
1472 remote_cert, std::vector<std::string>()); 1483 std::move(remote_cert), std::vector<std::string>());
1473 } 1484 }
1474 1485
1475 // This test verifies that a local stats object can get statistics via 1486 // This test verifies that a local stats object can get statistics via
1476 // AudioTrackInterface::GetStats() method. 1487 // AudioTrackInterface::GetStats() method.
1477 TEST_F(StatsCollectorTest, GetStatsFromLocalAudioTrack) { 1488 TEST_F(StatsCollectorTest, GetStatsFromLocalAudioTrack) {
1478 StatsCollectorForTest stats(&pc_); 1489 StatsCollectorForTest stats(&pc_);
1479 1490
1480 EXPECT_CALL(session_, GetLocalCertificate(_, _)) 1491 EXPECT_CALL(session_, GetLocalCertificate(_, _))
1481 .WillRepeatedly(Return(false)); 1492 .WillRepeatedly(Return(false));
1482 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) 1493 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
1483 .WillRepeatedly(Return(false)); 1494 .WillRepeatedly(Return(nullptr));
1484 1495
1485 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); 1496 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel();
1486 // The transport_name known by the voice channel. 1497 // The transport_name known by the voice channel.
1487 const std::string kVcName("vcname"); 1498 const std::string kVcName("vcname");
1488 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, 1499 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_,
1489 media_channel, nullptr, kVcName, false); 1500 media_channel, nullptr, kVcName, false);
1490 AddOutgoingAudioTrackStats(); 1501 AddOutgoingAudioTrackStats();
1491 stats.AddStream(stream_); 1502 stats.AddStream(stream_);
1492 stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack); 1503 stats.AddLocalAudioTrack(audio_track_, kSsrcOfTrack);
1493 1504
(...skipping 13 matching lines...) Expand all
1507 EXPECT_TRUE(remote_report == NULL); 1518 EXPECT_TRUE(remote_report == NULL);
1508 } 1519 }
1509 1520
1510 // This test verifies that audio receive streams populate stats reports 1521 // This test verifies that audio receive streams populate stats reports
1511 // correctly. 1522 // correctly.
1512 TEST_F(StatsCollectorTest, GetStatsFromRemoteStream) { 1523 TEST_F(StatsCollectorTest, GetStatsFromRemoteStream) {
1513 StatsCollectorForTest stats(&pc_); 1524 StatsCollectorForTest stats(&pc_);
1514 1525
1515 EXPECT_CALL(session_, GetLocalCertificate(_, _)) 1526 EXPECT_CALL(session_, GetLocalCertificate(_, _))
1516 .WillRepeatedly(Return(false)); 1527 .WillRepeatedly(Return(false));
1517 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) 1528 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
1518 .WillRepeatedly(Return(false)); 1529 .WillRepeatedly(Return(nullptr));
1519 1530
1520 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); 1531 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel();
1521 // The transport_name known by the voice channel. 1532 // The transport_name known by the voice channel.
1522 const std::string kVcName("vcname"); 1533 const std::string kVcName("vcname");
1523 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, 1534 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_,
1524 media_channel, nullptr, kVcName, false); 1535 media_channel, nullptr, kVcName, false);
1525 AddIncomingAudioTrackStats(); 1536 AddIncomingAudioTrackStats();
1526 stats.AddStream(stream_); 1537 stats.AddStream(stream_);
1527 1538
1528 cricket::VoiceReceiverInfo voice_receiver_info; 1539 cricket::VoiceReceiverInfo voice_receiver_info;
1529 InitVoiceReceiverInfo(&voice_receiver_info); 1540 InitVoiceReceiverInfo(&voice_receiver_info);
1530 voice_receiver_info.codec_name = "fake_codec"; 1541 voice_receiver_info.codec_name = "fake_codec";
1531 1542
1532 cricket::VoiceMediaInfo stats_read; 1543 cricket::VoiceMediaInfo stats_read;
1533 StatsReports reports; // returned values. 1544 StatsReports reports; // returned values.
1534 SetupAndVerifyAudioTrackStats( 1545 SetupAndVerifyAudioTrackStats(
1535 audio_track_.get(), stream_.get(), &stats, &voice_channel, kVcName, 1546 audio_track_.get(), stream_.get(), &stats, &voice_channel, kVcName,
1536 media_channel, NULL, &voice_receiver_info, &stats_read, &reports); 1547 media_channel, NULL, &voice_receiver_info, &stats_read, &reports);
1537 } 1548 }
1538 1549
1539 // This test verifies that a local stats object won't update its statistics 1550 // This test verifies that a local stats object won't update its statistics
1540 // after a RemoveLocalAudioTrack() call. 1551 // after a RemoveLocalAudioTrack() call.
1541 TEST_F(StatsCollectorTest, GetStatsAfterRemoveAudioStream) { 1552 TEST_F(StatsCollectorTest, GetStatsAfterRemoveAudioStream) {
1542 StatsCollectorForTest stats(&pc_); 1553 StatsCollectorForTest stats(&pc_);
1543 1554
1544 EXPECT_CALL(session_, GetLocalCertificate(_, _)) 1555 EXPECT_CALL(session_, GetLocalCertificate(_, _))
1545 .WillRepeatedly(Return(false)); 1556 .WillRepeatedly(Return(false));
1546 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) 1557 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
1547 .WillRepeatedly(Return(false)); 1558 .WillRepeatedly(Return(nullptr));
1548 1559
1549 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); 1560 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel();
1550 // The transport_name known by the voice channel. 1561 // The transport_name known by the voice channel.
1551 const std::string kVcName("vcname"); 1562 const std::string kVcName("vcname");
1552 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, 1563 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_,
1553 media_channel, nullptr, kVcName, false); 1564 media_channel, nullptr, kVcName, false);
1554 AddOutgoingAudioTrackStats(); 1565 AddOutgoingAudioTrackStats();
1555 stats.AddStream(stream_); 1566 stats.AddStream(stream_);
1556 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack); 1567 stats.AddLocalAudioTrack(audio_track_.get(), kSsrcOfTrack);
1557 1568
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1597 VerifyVoiceSenderInfoReport(report, voice_sender_info); 1608 VerifyVoiceSenderInfoReport(report, voice_sender_info);
1598 } 1609 }
1599 1610
1600 // This test verifies that when ongoing and incoming audio tracks are using 1611 // This test verifies that when ongoing and incoming audio tracks are using
1601 // the same ssrc, they populate stats reports correctly. 1612 // the same ssrc, they populate stats reports correctly.
1602 TEST_F(StatsCollectorTest, LocalAndRemoteTracksWithSameSsrc) { 1613 TEST_F(StatsCollectorTest, LocalAndRemoteTracksWithSameSsrc) {
1603 StatsCollectorForTest stats(&pc_); 1614 StatsCollectorForTest stats(&pc_);
1604 1615
1605 EXPECT_CALL(session_, GetLocalCertificate(_, _)) 1616 EXPECT_CALL(session_, GetLocalCertificate(_, _))
1606 .WillRepeatedly(Return(false)); 1617 .WillRepeatedly(Return(false));
1607 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) 1618 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
1608 .WillRepeatedly(Return(false)); 1619 .WillRepeatedly(Return(nullptr));
1609 1620
1610 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); 1621 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel();
1611 // The transport_name known by the voice channel. 1622 // The transport_name known by the voice channel.
1612 const std::string kVcName("vcname"); 1623 const std::string kVcName("vcname");
1613 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, 1624 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_,
1614 media_channel, nullptr, kVcName, false); 1625 media_channel, nullptr, kVcName, false);
1615 1626
1616 // Create a local stream with a local audio track and adds it to the stats. 1627 // Create a local stream with a local audio track and adds it to the stats.
1617 AddOutgoingAudioTrackStats(); 1628 AddOutgoingAudioTrackStats();
1618 stats.AddStream(stream_); 1629 stats.AddStream(stream_);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1684 1695
1685 // This test verifies that when two outgoing audio tracks are using the same 1696 // This test verifies that when two outgoing audio tracks are using the same
1686 // ssrc at different times, they populate stats reports correctly. 1697 // ssrc at different times, they populate stats reports correctly.
1687 // TODO(xians): Figure out if it is possible to encapsulate the setup and 1698 // TODO(xians): Figure out if it is possible to encapsulate the setup and
1688 // avoid duplication of code in test cases. 1699 // avoid duplication of code in test cases.
1689 TEST_F(StatsCollectorTest, TwoLocalTracksWithSameSsrc) { 1700 TEST_F(StatsCollectorTest, TwoLocalTracksWithSameSsrc) {
1690 StatsCollectorForTest stats(&pc_); 1701 StatsCollectorForTest stats(&pc_);
1691 1702
1692 EXPECT_CALL(session_, GetLocalCertificate(_, _)) 1703 EXPECT_CALL(session_, GetLocalCertificate(_, _))
1693 .WillRepeatedly(Return(false)); 1704 .WillRepeatedly(Return(false));
1694 EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) 1705 EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_))
1695 .WillRepeatedly(Return(false)); 1706 .WillRepeatedly(Return(nullptr));
1696 1707
1697 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); 1708 MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel();
1698 // The transport_name known by the voice channel. 1709 // The transport_name known by the voice channel.
1699 const std::string kVcName("vcname"); 1710 const std::string kVcName("vcname");
1700 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_, 1711 cricket::VoiceChannel voice_channel(rtc::Thread::Current(), media_engine_,
1701 media_channel, nullptr, kVcName, false); 1712 media_channel, nullptr, kVcName, false);
1702 1713
1703 // Create a local stream with a local audio track and adds it to the stats. 1714 // Create a local stream with a local audio track and adds it to the stats.
1704 AddOutgoingAudioTrackStats(); 1715 AddOutgoingAudioTrackStats();
1705 stats.AddStream(stream_); 1716 stats.AddStream(stream_);
(...skipping 25 matching lines...) Expand all
1731 cricket::VoiceSenderInfo new_voice_sender_info; 1742 cricket::VoiceSenderInfo new_voice_sender_info;
1732 InitVoiceSenderInfo(&new_voice_sender_info); 1743 InitVoiceSenderInfo(&new_voice_sender_info);
1733 cricket::VoiceMediaInfo new_stats_read; 1744 cricket::VoiceMediaInfo new_stats_read;
1734 reports.clear(); 1745 reports.clear();
1735 SetupAndVerifyAudioTrackStats( 1746 SetupAndVerifyAudioTrackStats(
1736 new_audio_track.get(), stream_.get(), &stats, &voice_channel, kVcName, 1747 new_audio_track.get(), stream_.get(), &stats, &voice_channel, kVcName,
1737 media_channel, &new_voice_sender_info, NULL, &new_stats_read, &reports); 1748 media_channel, &new_voice_sender_info, NULL, &new_stats_read, &reports);
1738 } 1749 }
1739 1750
1740 } // namespace webrtc 1751 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698