Chromium Code Reviews| Index: webrtc/base/rtccertificate_unittest.cc |
| diff --git a/webrtc/base/rtccertificate_unittests.cc b/webrtc/base/rtccertificate_unittest.cc |
| similarity index 81% |
| rename from webrtc/base/rtccertificate_unittests.cc |
| rename to webrtc/base/rtccertificate_unittest.cc |
| index 84c854478b219773b44c9910cef3c400b4eca72d..3cca473368933c7536a4e818555e80565796f7fc 100644 |
| --- a/webrtc/base/rtccertificate_unittests.cc |
| +++ b/webrtc/base/rtccertificate_unittest.cc |
| @@ -35,6 +35,12 @@ class RTCCertificateTest : public testing::Test { |
| ~RTCCertificateTest() {} |
| protected: |
| + scoped_refptr<RTCCertificate> GenerateECDSA() { |
| + scoped_ptr<SSLIdentity> identity( |
|
nisse-webrtc
2016/04/22 11:38:25
Do you really need the local variable?
hbos
2016/04/22 13:19:29
I do now that I RTC_CHECK. (I think I did before o
nisse-webrtc
2016/04/22 13:44:06
Ok. Can Generate ever fail?
hbos
2016/04/25 14:23:23
While it shouldn't happen under normal circumstanc
|
| + SSLIdentity::Generate(kTestCertCommonName, KeyParams::ECDSA())); |
| + return RTCCertificate::Create(std::move(identity)); |
| + } |
| + |
| // Timestamp note: |
| // All timestamps in this unittest are expressed in number of seconds since |
| // epoch, 1970-01-01T00:00:00Z (UTC). The RTCCertificate interface uses ms, |
| @@ -85,10 +91,7 @@ class RTCCertificateTest : public testing::Test { |
| TEST_F(RTCCertificateTest, NewCertificateNotExpired) { |
| // Generate a real certificate without specifying the expiration time. |
| // Certificate type doesn't matter, using ECDSA because it's fast to generate. |
| - scoped_ptr<SSLIdentity> identity( |
| - SSLIdentity::Generate(kTestCertCommonName, KeyParams::ECDSA())); |
| - scoped_refptr<RTCCertificate> certificate = |
| - RTCCertificate::Create(std::move(identity)); |
| + scoped_refptr<RTCCertificate> certificate = GenerateECDSA(); |
| uint64_t now = NowSeconds(); |
| EXPECT_FALSE(HasExpiredSeconds(certificate, now)); |
| @@ -115,4 +118,20 @@ TEST_F(RTCCertificateTest, ExpiresInOneSecond) { |
| EXPECT_TRUE(HasExpiredSeconds(certificate, now + 2)); |
| } |
| +TEST_F(RTCCertificateTest, CloneWithPemSerialization) { |
| + scoped_refptr<RTCCertificate> orig = GenerateECDSA(); |
| + |
| + // To PEM. |
| + RTCCertificatePem orig_pem = orig->ToPem(); |
| + // Clone from PEM. |
| + scoped_refptr<RTCCertificate> clone = RTCCertificate::FromPem(orig_pem); |
| + EXPECT_TRUE(clone); |
| + // Make sure the clone's PEM is identical to the original. |
|
torbjorng (webrtc)
2016/04/21 15:16:00
I'm not sure this is a robust comparison, since pr
nisse-webrtc
2016/04/22 11:38:25
I have been trying to forget asn.1... So I take it
hbos
2016/04/22 13:19:29
X509_cmp only compares the certificate? Ah, there'
|
| + RTCCertificatePem clone_pem = clone->ToPem(); |
| + EXPECT_EQ(orig_pem.private_key(), clone_pem.private_key()); |
| + EXPECT_EQ(orig_pem.certificate(), clone_pem.certificate()); |
| + // Make sure the clone's expiration time is the same as the original. |
| + EXPECT_EQ(orig->Expires(), clone->Expires()); |
| +} |
| + |
| } // namespace rtc |