Index: webrtc/api/statscollector_unittest.cc |
diff --git a/webrtc/api/statscollector_unittest.cc b/webrtc/api/statscollector_unittest.cc |
index a1cd1e820fe7f02c911bcafc917a33612cf57630..b8cdafc86ad12e734a564d9e03bbc9c949ccb821 100644 |
--- a/webrtc/api/statscollector_unittest.cc |
+++ b/webrtc/api/statscollector_unittest.cc |
@@ -82,9 +82,15 @@ class MockWebRtcSession : public webrtc::WebRtcSession { |
MOCK_METHOD2(GetLocalCertificate, |
bool(const std::string& transport_name, |
rtc::scoped_refptr<rtc::RTCCertificate>* certificate)); |
- MOCK_METHOD2(GetRemoteSSLCertificate, |
- bool(const std::string& transport_name, |
- rtc::SSLCertificate** cert)); |
+ |
+ // Workaround for gmock's inability to cope with move-only return values. |
+ rtc::scoped_ptr<rtc::SSLCertificate> GetRemoteSSLCertificate( |
+ const std::string& transport_name) override { |
+ return rtc::scoped_ptr<rtc::SSLCertificate>( |
+ GetRemoteSSLCertificate_ReturnsRawPointer(transport_name)); |
+ } |
+ MOCK_METHOD1(GetRemoteSSLCertificate_ReturnsRawPointer, |
+ rtc::SSLCertificate*(const std::string& transport_name)); |
}; |
// The factory isn't really used; it just satisfies the base PeerConnection. |
@@ -662,10 +668,11 @@ class StatsCollectorTest : public testing::Test { |
VerifyVoiceReceiverInfoReport(track_report, *voice_receiver_info); |
} |
- void TestCertificateReports(const rtc::FakeSSLCertificate& local_cert, |
- const std::vector<std::string>& local_ders, |
- const rtc::FakeSSLCertificate& remote_cert, |
- const std::vector<std::string>& remote_ders) { |
+ void TestCertificateReports( |
+ const rtc::FakeSSLCertificate& local_cert, |
+ const std::vector<std::string>& local_ders, |
+ rtc::scoped_ptr<rtc::FakeSSLCertificate> remote_cert, |
+ const std::vector<std::string>& remote_ders) { |
StatsCollectorForTest stats(&pc_); |
StatsReports reports; // returned values. |
@@ -693,10 +700,9 @@ class StatsCollectorTest : public testing::Test { |
EXPECT_CALL(session_, |
GetLocalCertificate(transport_stats.transport_name, _)) |
.WillOnce(DoAll(SetArgPointee<1>(local_certificate), Return(true))); |
- EXPECT_CALL(session_, |
- GetRemoteSSLCertificate(transport_stats.transport_name, _)) |
- .WillOnce( |
- DoAll(SetArgPointee<1>(remote_cert.GetReference()), Return(true))); |
+ EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer( |
+ transport_stats.transport_name)) |
+ .WillOnce(Return(remote_cert.release())); |
EXPECT_CALL(session_, GetTransportStats(_)) |
.WillOnce(DoAll(SetArgPointee<0>(session_stats), |
Return(true))); |
@@ -806,8 +812,8 @@ TEST_F(StatsCollectorTest, BytesCounterHandles64Bits) { |
EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
.WillRepeatedly(Return(false)); |
- EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
- .WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
+ .WillRepeatedly(Return(nullptr)); |
const char kVideoChannelName[] = "video"; |
@@ -852,8 +858,8 @@ TEST_F(StatsCollectorTest, BandwidthEstimationInfoIsReported) { |
EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
.WillRepeatedly(Return(false)); |
- EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
- .WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
+ .WillRepeatedly(Return(nullptr)); |
const char kVideoChannelName[] = "video"; |
@@ -964,8 +970,8 @@ TEST_F(StatsCollectorTest, TrackAndSsrcObjectExistAfterUpdateSsrcStats) { |
EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
.WillRepeatedly(Return(false)); |
- EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
- .WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
+ .WillRepeatedly(Return(nullptr)); |
const char kVideoChannelName[] = "video"; |
InitSessionStats(kVideoChannelName); |
@@ -1036,8 +1042,8 @@ TEST_F(StatsCollectorTest, TransportObjectLinkedFromSsrcObject) { |
EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
.WillRepeatedly(Return(false)); |
- EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
- .WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
+ .WillRepeatedly(Return(nullptr)); |
MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
// The transport_name known by the video channel. |
@@ -1120,8 +1126,8 @@ TEST_F(StatsCollectorTest, RemoteSsrcInfoIsPresent) { |
EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
.WillRepeatedly(Return(false)); |
- EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
- .WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
+ .WillRepeatedly(Return(nullptr)); |
MockVideoMediaChannel* media_channel = new MockVideoMediaChannel(); |
// The transport_name known by the video channel. |
@@ -1171,8 +1177,8 @@ TEST_F(StatsCollectorTest, ReportsFromRemoteTrack) { |
EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
.WillRepeatedly(Return(false)); |
- EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
- .WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
+ .WillRepeatedly(Return(nullptr)); |
const char kVideoChannelName[] = "video"; |
InitSessionStats(kVideoChannelName); |
@@ -1332,9 +1338,11 @@ TEST_F(StatsCollectorTest, ChainedCertificateReportsCreated) { |
remote_ders[1] = "non-"; |
remote_ders[2] = "intersecting"; |
remote_ders[3] = "set"; |
- rtc::FakeSSLCertificate remote_cert(DersToPems(remote_ders)); |
+ rtc::scoped_ptr<rtc::FakeSSLCertificate> remote_cert( |
+ new rtc::FakeSSLCertificate(DersToPems(remote_ders))); |
- TestCertificateReports(local_cert, local_ders, remote_cert, remote_ders); |
+ TestCertificateReports(local_cert, local_ders, std::move(remote_cert), |
+ remote_ders); |
} |
// This test verifies that all certificates without chains are correctly |
@@ -1346,10 +1354,12 @@ TEST_F(StatsCollectorTest, ChainlessCertificateReportsCreated) { |
// Build remote certificate. |
std::string remote_der = "This is somebody else's der."; |
- rtc::FakeSSLCertificate remote_cert(DerToPem(remote_der)); |
+ rtc::scoped_ptr<rtc::FakeSSLCertificate> remote_cert( |
+ new rtc::FakeSSLCertificate(DerToPem(remote_der))); |
TestCertificateReports(local_cert, std::vector<std::string>(1, local_der), |
- remote_cert, std::vector<std::string>(1, remote_der)); |
+ std::move(remote_cert), |
+ std::vector<std::string>(1, remote_der)); |
} |
// This test verifies that the stats are generated correctly when no |
@@ -1359,8 +1369,8 @@ TEST_F(StatsCollectorTest, NoTransport) { |
EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
.WillRepeatedly(Return(false)); |
- EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
- .WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
+ .WillRepeatedly(Return(nullptr)); |
StatsReports reports; // returned values. |
@@ -1416,8 +1426,8 @@ TEST_F(StatsCollectorTest, NoCertificates) { |
EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
.WillRepeatedly(Return(false)); |
- EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
- .WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
+ .WillRepeatedly(Return(nullptr)); |
StatsReports reports; // returned values. |
@@ -1468,11 +1478,12 @@ TEST_F(StatsCollectorTest, UnsupportedDigestIgnored) { |
// Build a remote certificate with an unsupported digest algorithm. |
std::string remote_der = "This is somebody else's der."; |
- rtc::FakeSSLCertificate remote_cert(DerToPem(remote_der)); |
- remote_cert.set_digest_algorithm("foobar"); |
+ rtc::scoped_ptr<rtc::FakeSSLCertificate> remote_cert( |
+ new rtc::FakeSSLCertificate(DerToPem(remote_der))); |
+ remote_cert->set_digest_algorithm("foobar"); |
TestCertificateReports(local_cert, std::vector<std::string>(1, local_der), |
- remote_cert, std::vector<std::string>()); |
+ std::move(remote_cert), std::vector<std::string>()); |
} |
// This test verifies that a local stats object can get statistics via |
@@ -1482,8 +1493,8 @@ TEST_F(StatsCollectorTest, GetStatsFromLocalAudioTrack) { |
EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
.WillRepeatedly(Return(false)); |
- EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
- .WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
+ .WillRepeatedly(Return(nullptr)); |
MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
// The transport_name known by the voice channel. |
@@ -1517,8 +1528,8 @@ TEST_F(StatsCollectorTest, GetStatsFromRemoteStream) { |
EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
.WillRepeatedly(Return(false)); |
- EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
- .WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
+ .WillRepeatedly(Return(nullptr)); |
MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
// The transport_name known by the voice channel. |
@@ -1546,8 +1557,8 @@ TEST_F(StatsCollectorTest, GetStatsAfterRemoveAudioStream) { |
EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
.WillRepeatedly(Return(false)); |
- EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
- .WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
+ .WillRepeatedly(Return(nullptr)); |
MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
// The transport_name known by the voice channel. |
@@ -1607,8 +1618,8 @@ TEST_F(StatsCollectorTest, LocalAndRemoteTracksWithSameSsrc) { |
EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
.WillRepeatedly(Return(false)); |
- EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
- .WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
+ .WillRepeatedly(Return(nullptr)); |
MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
// The transport_name known by the voice channel. |
@@ -1694,8 +1705,8 @@ TEST_F(StatsCollectorTest, TwoLocalTracksWithSameSsrc) { |
EXPECT_CALL(session_, GetLocalCertificate(_, _)) |
.WillRepeatedly(Return(false)); |
- EXPECT_CALL(session_, GetRemoteSSLCertificate(_, _)) |
- .WillRepeatedly(Return(false)); |
+ EXPECT_CALL(session_, GetRemoteSSLCertificate_ReturnsRawPointer(_)) |
+ .WillRepeatedly(Return(nullptr)); |
MockVoiceMediaChannel* media_channel = new MockVoiceMediaChannel(); |
// The transport_name known by the voice channel. |