| Index: net/cert/cert_verify_proc_unittest.cc | 
| diff --git a/net/cert/cert_verify_proc_unittest.cc b/net/cert/cert_verify_proc_unittest.cc | 
| index 07ef561581240a34723d1739447fa31716614e68..6d01ef65efb963e02cfa727f4de4255770364ff5 100644 | 
| --- a/net/cert/cert_verify_proc_unittest.cc | 
| +++ b/net/cert/cert_verify_proc_unittest.cc | 
| @@ -103,6 +103,9 @@ bool SupportsDetectingKnownRoots() { | 
| // the verified certificate chain and detect known roots. | 
| if (base::android::BuildInfo::GetInstance()->sdk_int() < 17) | 
| return false; | 
| +#elif defined(OS_IOS) && defined(USE_OPENSSL) | 
| +  // iOS does not expose the APIs necessary to get the known system roots. | 
| +  return false; | 
| #endif | 
| return true; | 
| } | 
| @@ -223,6 +226,10 @@ TEST_F(CertVerifyProcTest, PaypalNullCertParsing) { | 
| &verify_result); | 
| #if defined(USE_NSS_VERIFIER) || defined(OS_ANDROID) | 
| EXPECT_EQ(ERR_CERT_COMMON_NAME_INVALID, error); | 
| +#elif defined(OS_IOS) && TARGET_IPHONE_SIMULATOR | 
| +  // iOS returns a ERR_CERT_INVALID error on the simulator, while returning | 
| +  // ERR_CERT_AUTHORITY_INVALID on the real device. | 
| +  EXPECT_EQ(ERR_CERT_INVALID, error); | 
| #else | 
| // TOOD(bulach): investigate why macosx and win aren't returning | 
| // ERR_CERT_INVALID or ERR_CERT_COMMON_NAME_INVALID. | 
| @@ -277,6 +284,29 @@ TEST_F(CertVerifyProcTest, MAYBE_IntermediateCARequireExplicitPolicy) { | 
| EXPECT_EQ(0u, verify_result.cert_status); | 
| } | 
|  | 
| +TEST_F(CertVerifyProcTest, RejectExpiredCert) { | 
| +  base::FilePath certs_dir = GetTestCertsDirectory(); | 
| + | 
| +  // Load root_ca_cert.pem into the test root store. | 
| +  ScopedTestRoot test_root( | 
| +      ImportCertFromFile(certs_dir, "root_ca_cert.pem").get()); | 
| + | 
| +  CertificateList certs = CreateCertificateListFromFile( | 
| +      certs_dir, "expired_cert.pem", X509Certificate::FORMAT_AUTO); | 
| +  ASSERT_EQ(1U, certs.size()); | 
| + | 
| +  X509Certificate::OSCertHandles intermediates; | 
| +  scoped_refptr<X509Certificate> cert = X509Certificate::CreateFromHandle( | 
| +      certs[0]->os_cert_handle(), intermediates); | 
| + | 
| +  int flags = 0; | 
| +  CertVerifyResult verify_result; | 
| +  int error = Verify(cert.get(), "127.0.0.1", flags, NULL, empty_cert_list_, | 
| +                     &verify_result); | 
| +  EXPECT_EQ(ERR_CERT_DATE_INVALID, error); | 
| +  EXPECT_TRUE(verify_result.cert_status & CERT_STATUS_DATE_INVALID); | 
| +} | 
| + | 
| // Test that verifying an ECDSA certificate doesn't crash on XP. (See | 
| // crbug.com/144466). | 
| TEST_F(CertVerifyProcTest, ECDSA_RSA) { | 
| @@ -1103,8 +1133,8 @@ TEST_F(CertVerifyProcTest, IsIssuedByKnownRootIgnoresTestRoots) { | 
| EXPECT_FALSE(verify_result.is_issued_by_known_root); | 
| } | 
|  | 
| -#if defined(USE_NSS_CERTS) || defined(OS_IOS) || defined(OS_WIN) || \ | 
| -    defined(OS_MACOSX) | 
| +#if defined(USE_NSS_VERIFIER) || defined(OS_WIN) || \ | 
| +    (defined(OS_MACOSX) && !defined(OS_IOS)) | 
| // Test that CRLSets are effective in making a certificate appear to be | 
| // revoked. | 
| TEST_F(CertVerifyProcTest, CRLSet) { | 
|  |