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 |