| Index: net/url_request/url_request_unittest.cc
|
| diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc
|
| index 8ff168c1b0118a959b93ea9db1bff63d74f8d36d..de020b23ef630ef18c00192f5afabf726423e7e9 100644
|
| --- a/net/url_request/url_request_unittest.cc
|
| +++ b/net/url_request/url_request_unittest.cc
|
| @@ -1485,9 +1485,10 @@ class HTTPSOCSPTest : public HTTPSRequestTest {
|
| public:
|
| HTTPSOCSPTest()
|
| : context_(true),
|
| - ev_test_policy_(EVRootCAMetadata::GetInstance(),
|
| - kOCSPTestCertFingerprint,
|
| - kOCSPTestCertPolicy) {
|
| + ev_test_policy_(
|
| + new ScopedTestEVPolicy(EVRootCAMetadata::GetInstance(),
|
| + kOCSPTestCertFingerprint,
|
| + kOCSPTestCertPolicy)) {
|
| }
|
|
|
| virtual void SetUp() OVERRIDE {
|
| @@ -1540,7 +1541,7 @@ class HTTPSOCSPTest : public HTTPSRequestTest {
|
|
|
| scoped_ptr<ScopedTestRoot> test_root_;
|
| TestURLRequestContext context_;
|
| - ScopedTestEVPolicy ev_test_policy_;
|
| + scoped_ptr<ScopedTestEVPolicy> ev_test_policy_;
|
| };
|
|
|
| static CertStatus ExpectedCertStatusForFailedOnlineRevocationCheck() {
|
| @@ -1570,8 +1571,7 @@ static bool SystemUsesChromiumEVMetadata() {
|
| #endif
|
| }
|
|
|
| -static bool
|
| -SystemSupportsOCSP() {
|
| +static bool SystemSupportsOCSP() {
|
| #if defined(USE_OPENSSL)
|
| // http://crbug.com/117478 - OpenSSL does not support OCSP.
|
| return false;
|
| @@ -1674,7 +1674,8 @@ TEST_F(HTTPSEVCRLSetTest, MissingCRLSetAndInvalidOCSP) {
|
| cert_status & CERT_STATUS_ALL_ERRORS);
|
|
|
| EXPECT_FALSE(cert_status & CERT_STATUS_IS_EV);
|
| - EXPECT_TRUE(cert_status & CERT_STATUS_REV_CHECKING_ENABLED);
|
| + EXPECT_EQ(SystemUsesChromiumEVMetadata(),
|
| + static_cast<bool>(cert_status & CERT_STATUS_REV_CHECKING_ENABLED));
|
| }
|
|
|
| TEST_F(HTTPSEVCRLSetTest, MissingCRLSetAndGoodOCSP) {
|
| @@ -1695,8 +1696,8 @@ TEST_F(HTTPSEVCRLSetTest, MissingCRLSetAndGoodOCSP) {
|
|
|
| EXPECT_EQ(SystemUsesChromiumEVMetadata(),
|
| static_cast<bool>(cert_status & CERT_STATUS_IS_EV));
|
| -
|
| - EXPECT_TRUE(cert_status & CERT_STATUS_REV_CHECKING_ENABLED);
|
| + EXPECT_EQ(SystemUsesChromiumEVMetadata(),
|
| + static_cast<bool>(cert_status & CERT_STATUS_REV_CHECKING_ENABLED));
|
| }
|
|
|
| TEST_F(HTTPSEVCRLSetTest, ExpiredCRLSet) {
|
| @@ -1718,7 +1719,8 @@ TEST_F(HTTPSEVCRLSetTest, ExpiredCRLSet) {
|
| cert_status & CERT_STATUS_ALL_ERRORS);
|
|
|
| EXPECT_FALSE(cert_status & CERT_STATUS_IS_EV);
|
| - EXPECT_TRUE(cert_status & CERT_STATUS_REV_CHECKING_ENABLED);
|
| + EXPECT_EQ(SystemUsesChromiumEVMetadata(),
|
| + static_cast<bool>(cert_status & CERT_STATUS_REV_CHECKING_ENABLED));
|
| }
|
|
|
| TEST_F(HTTPSEVCRLSetTest, FreshCRLSet) {
|
| @@ -1741,6 +1743,34 @@ TEST_F(HTTPSEVCRLSetTest, FreshCRLSet) {
|
| EXPECT_FALSE(cert_status & CERT_STATUS_REV_CHECKING_ENABLED);
|
| }
|
|
|
| +TEST_F(HTTPSEVCRLSetTest, ExpiredCRLSetAndRevokedNonEVCert) {
|
| + // Test that when EV verification is requested, but online revocation
|
| + // checking is disabled, and the leaf certificate is not in fact EV, that
|
| + // no revocation checking actually happens.
|
| + if (!SystemSupportsOCSP()) {
|
| + LOG(WARNING) << "Skipping test because system doesn't support OCSP";
|
| + return;
|
| + }
|
| +
|
| + // Unmark the certificate's OID as EV, which should disable revocation
|
| + // checking (as per the user preference)
|
| + ev_test_policy_.reset();
|
| +
|
| + TestServer::HTTPSOptions https_options(
|
| + TestServer::HTTPSOptions::CERT_AUTO);
|
| + https_options.ocsp_status = TestServer::HTTPSOptions::OCSP_REVOKED;
|
| + SSLConfigService::SetCRLSet(
|
| + scoped_refptr<CRLSet>(CRLSet::ExpiredCRLSetForTesting()));
|
| +
|
| + CertStatus cert_status;
|
| + DoConnection(https_options, &cert_status);
|
| +
|
| + EXPECT_EQ(0u, cert_status & CERT_STATUS_ALL_ERRORS);
|
| +
|
| + EXPECT_FALSE(cert_status & CERT_STATUS_IS_EV);
|
| + EXPECT_FALSE(cert_status & CERT_STATUS_REV_CHECKING_ENABLED);
|
| +}
|
| +
|
| class HTTPSCRLSetTest : public HTTPSOCSPTest {
|
| protected:
|
| virtual void SetupContext(URLRequestContext* context) OVERRIDE {
|
|
|