| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "ios/web/net/cert_host_pair.h" |
| |
| #include "net/base/test_data_directory.h" |
| #include "net/test/cert_test_util.h" |
| #include "testing/platform_test.h" |
| |
| namespace web { |
| |
| namespace { |
| |
| // Test cert filenames. |
| const char kCertFileName1[] = "ok_cert.pem"; |
| const char kCertFileName2[] = "expired_cert.pem"; |
| |
| // Test hostnames. |
| const char kHostName1[] = "www.example.com"; |
| const char kHostName2[] = "www.chromium.test"; |
| |
| // Loads cert with the given |file_name|. |
| scoped_refptr<net::X509Certificate> GetCert(const std::string& file_name) { |
| return net::ImportCertFromFile(net::GetTestCertsDirectory(), file_name); |
| } |
| |
| } // namespace |
| |
| // Test fixture to test CertHostPair struct. |
| typedef PlatformTest CertHostPairTest; |
| |
| // Tests constructions. |
| TEST_F(CertHostPairTest, Construction) { |
| scoped_refptr<net::X509Certificate> cert = GetCert(kCertFileName1); |
| ASSERT_TRUE(cert); |
| CertHostPair pair(cert, kHostName1); |
| EXPECT_EQ(cert, pair.cert); |
| EXPECT_EQ(std::string(kHostName1), pair.host); |
| } |
| |
| // Tests comparision with different certs and hosts. |
| TEST_F(CertHostPairTest, ComparisonWithDifferentCertsAndHosts) { |
| scoped_refptr<net::X509Certificate> cert1 = GetCert(kCertFileName1); |
| ASSERT_TRUE(cert1); |
| scoped_refptr<net::X509Certificate> cert2 = GetCert(kCertFileName2); |
| ASSERT_TRUE(cert2); |
| CertHostPair pair1(cert1, kHostName1); |
| CertHostPair pair2(cert2, kHostName2); |
| |
| EXPECT_TRUE(pair2 < pair1); |
| EXPECT_FALSE(pair1 < pair2); |
| } |
| |
| // Tests comparision with same cert. |
| TEST_F(CertHostPairTest, ComparisonWithSameCert) { |
| scoped_refptr<net::X509Certificate> cert1 = GetCert(kCertFileName1); |
| ASSERT_TRUE(cert1); |
| scoped_refptr<net::X509Certificate> cert2 = GetCert(kCertFileName1); |
| ASSERT_TRUE(cert2); |
| CertHostPair pair1(cert1, kHostName1); |
| CertHostPair pair2(cert2, kHostName2); |
| |
| EXPECT_TRUE(pair2 < pair1); |
| EXPECT_FALSE(pair1 < pair2); |
| } |
| |
| // Tests comparision with same host. |
| TEST_F(CertHostPairTest, ComparisonWithSameHost) { |
| scoped_refptr<net::X509Certificate> cert1 = GetCert(kCertFileName1); |
| ASSERT_TRUE(cert1); |
| scoped_refptr<net::X509Certificate> cert2 = GetCert(kCertFileName2); |
| ASSERT_TRUE(cert2); |
| CertHostPair pair1(cert1, kHostName1); |
| CertHostPair pair2(cert2, kHostName1); |
| |
| EXPECT_TRUE(pair1 < pair2); |
| EXPECT_FALSE(pair2 < pair1); |
| } |
| |
| // Tests comparision with same cert and host. |
| TEST_F(CertHostPairTest, ComparisonWithSameCertAndHost) { |
| scoped_refptr<net::X509Certificate> cert1 = GetCert(kCertFileName1); |
| ASSERT_TRUE(cert1); |
| scoped_refptr<net::X509Certificate> cert2 = GetCert(kCertFileName1); |
| ASSERT_TRUE(cert2); |
| CertHostPair pair1(cert1, kHostName1); |
| CertHostPair pair2(cert2, kHostName1); |
| |
| EXPECT_FALSE(pair1 < pair2); |
| EXPECT_FALSE(pair2 < pair1); |
| } |
| |
| } // namespace web |