Chromium Code Reviews| Index: net/base/ev_root_ca_metadata_unittest.cc |
| diff --git a/net/base/ev_root_ca_metadata_unittest.cc b/net/base/ev_root_ca_metadata_unittest.cc |
| index 1a1ef351dbe4beb69970be500dc18e05d9e050c6..37643c4f24cb57b311036e310356e0480c49122d 100644 |
| --- a/net/base/ev_root_ca_metadata_unittest.cc |
| +++ b/net/base/ev_root_ca_metadata_unittest.cc |
| @@ -8,8 +8,14 @@ |
| #include "net/base/x509_cert_types.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| +#if defined(USE_NSS) |
| +#include "crypto/scoped_nss_types.h" |
| +#endif |
| + |
| namespace net { |
| +namespace { |
| + |
| static const char kVerisignPolicy[] = "2.16.840.1.113733.1.7.23.6"; |
| static const char kThawtePolicy[] = "2.16.840.1.113733.1.7.48.1"; |
| static const char kFakePolicy[] = "2.16.840.1.42"; |
| @@ -20,75 +26,119 @@ static const SHA1Fingerprint kFakeFingerprint = |
| { { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, |
| 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99 } }; |
| +#if defined(USE_NSS) || defined(OS_WIN) |
| +class EVOidData { |
| + public: |
| + EVOidData(); |
| + bool Init(); |
| + |
| + EVRootCAMetadata::PolicyOID verisign_policy; |
| + EVRootCAMetadata::PolicyOID thawte_policy; |
| + EVRootCAMetadata::PolicyOID fake_policy; |
| +}; |
| + |
| +#endif // defined(USE_NSS) || defined(OS_WIN) |
| + |
| #if defined(USE_NSS) |
| -TEST(EVRootCAMetadataTest, Basic) { |
| - EVRootCAMetadata* ev_metadata(EVRootCAMetadata::GetInstance()); |
| - std::vector<EVRootCAMetadata::PolicyOID> oids; |
| +SECOidTag RegisterOID(PLArenaPool* arena, const char* const oid_string) { |
|
wtc
2012/08/16 23:17:39
If you declare 'oid_string' as
const char* con
Ryan Sleevi
2012/08/16 23:26:31
The "const char* const" was just to allow the comp
wtc
2012/08/16 23:40:45
'oid_string' is a function argument. Why does the
Ryan Sleevi
2012/08/16 23:55:30
Ah, right, I'm conditioned from thinking of it whe
|
| + SECOidData oid_data; |
| + memset(&oid_data, 0, sizeof(oid_data)); |
| + oid_data.offset = SEC_OID_UNKNOWN; |
| + oid_data.desc = oid_string; |
| + oid_data.mechanism = CKM_INVALID_MECHANISM; |
| + oid_data.supportedExtension = INVALID_CERT_EXTENSION; |
| - EXPECT_TRUE(ev_metadata->GetPolicyOIDsForCA(kVerisignFingerprint, &oids)); |
| - EXPECT_LT(0u, oids.size()); |
| - oids.clear(); |
| + SECStatus rv = SEC_StringToOID(arena, &oid_data.oid, oid_string, 0); |
| + if (rv != SECSuccess) |
| + return SEC_OID_UNKNOWN; |
| - EXPECT_FALSE(ev_metadata->GetPolicyOIDsForCA(kFakeFingerprint, &oids)); |
| - EXPECT_EQ(0u, oids.size()); |
| + return SECOID_AddEntry(&oid_data); |
| } |
| -TEST(EVRootCAMetadataTest, AddRemove) { |
| - EVRootCAMetadata* ev_metadata(EVRootCAMetadata::GetInstance()); |
| - std::vector<EVRootCAMetadata::PolicyOID> oids; |
| - |
| - EXPECT_FALSE(ev_metadata->GetPolicyOIDsForCA(kFakeFingerprint, &oids)); |
| +EVOidData::EVOidData() |
| + : verisign_policy(SEC_OID_UNKNOWN), |
| + thawte_policy(SEC_OID_UNKNOWN), |
| + fake_policy(SEC_OID_UNKNOWN) { |
| +} |
| - { |
| - ScopedTestEVPolicy test_ev_policy(ev_metadata, kFakeFingerprint, |
| - kFakePolicy); |
| +bool EVOidData::Init() { |
| + crypto::ScopedPLArenaPool pool(PORT_NewArena(DER_DEFAULT_CHUNKSIZE)); |
| + if (!pool.get()) |
| + return false; |
| - EXPECT_TRUE(ev_metadata->GetPolicyOIDsForCA(kFakeFingerprint, &oids)); |
| - EXPECT_EQ(1u, oids.size()); |
| - } |
| + verisign_policy = RegisterOID(pool.get(), kVerisignPolicy); |
| + thawte_policy = RegisterOID(pool.get(), kThawtePolicy); |
| + fake_policy = RegisterOID(pool.get(), kFakePolicy); |
| - EXPECT_FALSE(ev_metadata->GetPolicyOIDsForCA(kFakeFingerprint, &oids)); |
| + return verisign_policy != SEC_OID_UNKNOWN && |
| + thawte_policy != SEC_OID_UNKNOWN && |
| + fake_policy != SEC_OID_UNKNOWN; |
| } |
| #elif defined(OS_WIN) |
| -TEST(EVRootCAMetadataTest, Basic) { |
| +EVOidData::EVOidData() |
| + : verisign_policy(kVerisignPolicy), |
| + thawte_policy(kThawtePolicy), |
| + fake_policy(kFakePolicy) { |
| +} |
| + |
| +bool EVOidData::Init() { |
| + return true; |
| +} |
| + |
| +#endif |
| + |
| +#if defined(USE_NSS) || defined(OS_WIN) |
| + |
| +class EVRootCAMetadataTest : public testing::Test { |
| + protected: |
| + virtual void SetUp() OVERRIDE { |
| + ASSERT_TRUE(ev_oid_data.Init()); |
| + } |
| + |
| + EVOidData ev_oid_data; |
| +}; |
| + |
| +TEST_F(EVRootCAMetadataTest, Basic) { |
| EVRootCAMetadata* ev_metadata(EVRootCAMetadata::GetInstance()); |
| - EXPECT_TRUE(ev_metadata->IsEVPolicyOID(kVerisignPolicy)); |
| - EXPECT_FALSE(ev_metadata->IsEVPolicyOID(kFakePolicy)); |
| + EXPECT_TRUE(ev_metadata->IsEVPolicyOID(ev_oid_data.verisign_policy)); |
| + EXPECT_FALSE(ev_metadata->IsEVPolicyOID(ev_oid_data.fake_policy)); |
| EXPECT_TRUE(ev_metadata->HasEVPolicyOID(kVerisignFingerprint, |
| - kVerisignPolicy)); |
| + ev_oid_data.verisign_policy)); |
| EXPECT_FALSE(ev_metadata->HasEVPolicyOID(kFakeFingerprint, |
| - kVerisignPolicy)); |
| + ev_oid_data.verisign_policy)); |
| EXPECT_FALSE(ev_metadata->HasEVPolicyOID(kVerisignFingerprint, |
| - kFakePolicy)); |
| + ev_oid_data.fake_policy)); |
| EXPECT_FALSE(ev_metadata->HasEVPolicyOID(kVerisignFingerprint, |
| - kThawtePolicy)); |
| + ev_oid_data.thawte_policy)); |
| } |
| -TEST(EVRootCAMetadataTest, AddRemove) { |
| +TEST_F(EVRootCAMetadataTest, AddRemove) { |
| EVRootCAMetadata* ev_metadata(EVRootCAMetadata::GetInstance()); |
| - EXPECT_FALSE(ev_metadata->IsEVPolicyOID(kFakePolicy)); |
| + EXPECT_FALSE(ev_metadata->IsEVPolicyOID(ev_oid_data.fake_policy)); |
| EXPECT_FALSE(ev_metadata->HasEVPolicyOID(kFakeFingerprint, |
| - kFakePolicy)); |
| + ev_oid_data.fake_policy)); |
| { |
| ScopedTestEVPolicy test_ev_policy(ev_metadata, kFakeFingerprint, |
| kFakePolicy); |
| - EXPECT_TRUE(ev_metadata->IsEVPolicyOID(kFakePolicy)); |
| + EXPECT_TRUE(ev_metadata->IsEVPolicyOID(ev_oid_data.fake_policy)); |
| EXPECT_TRUE(ev_metadata->HasEVPolicyOID(kFakeFingerprint, |
| - kFakePolicy)); |
| + ev_oid_data.fake_policy)); |
| } |
| - EXPECT_FALSE(ev_metadata->IsEVPolicyOID(kFakePolicy)); |
| + EXPECT_FALSE(ev_metadata->IsEVPolicyOID(ev_oid_data.fake_policy)); |
| EXPECT_FALSE(ev_metadata->HasEVPolicyOID(kFakeFingerprint, |
| - kFakePolicy)); |
| + ev_oid_data.fake_policy)); |
| } |
| -#endif // defined(OS_WIN) |
| +#endif // defined(USE_NSS) || defined(OS_WIN) |
| + |
| +} // namespace |
| } // namespace net |