Chromium Code Reviews| Index: net/cert/internal/parse_ocsp_unittest.cc |
| diff --git a/net/cert/internal/parse_ocsp_unittest.cc b/net/cert/internal/parse_ocsp_unittest.cc |
| index c0fc061b5e43243f39d156444df42a61f38915e5..d292924f93603db1eaf5fd66ea9a4e36a417dd18 100644 |
| --- a/net/cert/internal/parse_ocsp_unittest.cc |
| +++ b/net/cert/internal/parse_ocsp_unittest.cc |
| @@ -8,6 +8,7 @@ |
| #include "base/logging.h" |
| #include "net/cert/internal/test_helpers.h" |
| #include "net/cert/x509_certificate.h" |
| +#include "net/der/encode_values.h" |
| #include "net/test/test_data_directory.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -15,6 +16,8 @@ namespace net { |
| namespace { |
| +const base::TimeDelta kOCSPAgeOneWeek = base::TimeDelta::FromDays(7); |
| + |
| std::string GetFilePath(const std::string& file_name) { |
| return std::string("net/data/parse_ocsp_unittest/") + file_name; |
| } |
| @@ -182,4 +185,72 @@ TEST(ParseOCSPTest, OCSPMissingResponse) { |
| ASSERT_EQ(PARSE_OCSP_SINGLE_RESPONSE, ParseOCSP("missing_response.pem")); |
| } |
| +TEST(OCSPDateTest, Valid) { |
| + OCSPSingleResponse response; |
| + base::Time now = base::Time::Now(); |
| + base::Time this_update = now - base::TimeDelta::FromHours(1); |
| + base::Time next_update = this_update + base::TimeDelta::FromDays(7); |
| + response.this_update = der::EncodeTimeAsGeneralizedTime(this_update); |
| + response.has_next_update = false; |
| + EXPECT_TRUE(CheckOCSPDateValid(response, now, kOCSPAgeOneWeek)); |
| + response.has_next_update = true; |
| + response.next_update = der::EncodeTimeAsGeneralizedTime(next_update); |
| + EXPECT_TRUE(CheckOCSPDateValid(response, now, kOCSPAgeOneWeek)); |
|
Ryan Sleevi
2016/07/01 00:49:53
Reading each of these tests, I find it visually cl
|
| +} |
| + |
| +TEST(OCSPDateTest, ThisUpdateInTheFuture) { |
| + OCSPSingleResponse response; |
| + base::Time now = base::Time::Now(); |
| + base::Time this_update = now + base::TimeDelta::FromHours(1); |
| + base::Time next_update = this_update + base::TimeDelta::FromDays(7); |
| + response.this_update = der::EncodeTimeAsGeneralizedTime(this_update); |
| + response.has_next_update = false; |
| + EXPECT_FALSE(CheckOCSPDateValid(response, now, kOCSPAgeOneWeek)); |
| + response.has_next_update = true; |
| + response.next_update = der::EncodeTimeAsGeneralizedTime(next_update); |
| + EXPECT_FALSE(CheckOCSPDateValid(response, now, kOCSPAgeOneWeek)); |
| +} |
| + |
| +TEST(OCSPDateTest, NextUpdatePassed) { |
| + OCSPSingleResponse response; |
| + base::Time now = base::Time::Now(); |
| + base::Time this_update = now - base::TimeDelta::FromDays(6); |
| + base::Time next_update = now - base::TimeDelta::FromHours(1); |
| + response.this_update = der::EncodeTimeAsGeneralizedTime(this_update); |
| + response.has_next_update = false; |
| + EXPECT_TRUE(CheckOCSPDateValid(response, now, kOCSPAgeOneWeek)); |
| + response.has_next_update = true; |
| + response.next_update = der::EncodeTimeAsGeneralizedTime(next_update); |
| + EXPECT_FALSE(CheckOCSPDateValid(response, now, kOCSPAgeOneWeek)); |
| +} |
| + |
| +TEST(OCSPDateTest, NextUpdateBeforeThisUpdate) { |
| + OCSPSingleResponse response; |
| + base::Time now = base::Time::Now(); |
| + base::Time next_update = now - base::TimeDelta::FromHours(1); |
| + base::Time this_update = next_update + base::TimeDelta::FromDays(7); |
| + response.this_update = der::EncodeTimeAsGeneralizedTime(this_update); |
| + response.has_next_update = false; |
| + EXPECT_FALSE(CheckOCSPDateValid(response, now, kOCSPAgeOneWeek)); |
|
Ryan Sleevi
2016/07/01 00:49:52
When visually scanning, this tripped me up.
That'
Ryan Sleevi
2016/07/01 00:49:53
This seems like it's testing something other than
dadrian
2016/07/01 17:47:38
Done.
|
| + response.has_next_update = true; |
| + response.next_update = der::EncodeTimeAsGeneralizedTime(next_update); |
| + EXPECT_FALSE(CheckOCSPDateValid(response, now, kOCSPAgeOneWeek)); |
| +} |
| + |
| +TEST(OCSPDateTest, ThisUpdateOlderThanMaxAge) { |
| + OCSPSingleResponse response; |
| + base::Time now = base::Time::Now(); |
| + base::Time this_update = now - kOCSPAgeOneWeek; |
| + base::Time next_update = now + base::TimeDelta::FromHours(1); |
| + response.has_next_update = false; |
| + response.this_update = der::EncodeTimeAsGeneralizedTime(this_update); |
| + EXPECT_TRUE(CheckOCSPDateValid(response, now, kOCSPAgeOneWeek)); |
| + response.this_update = der::EncodeTimeAsGeneralizedTime( |
| + this_update - base::TimeDelta::FromSeconds(1)); |
| + EXPECT_FALSE(CheckOCSPDateValid(response, now, kOCSPAgeOneWeek)); |
| + response.has_next_update = true; |
| + response.next_update = der::EncodeTimeAsGeneralizedTime(next_update); |
| + EXPECT_FALSE(CheckOCSPDateValid(response, now, kOCSPAgeOneWeek)); |
| +} |
| + |
| } // namespace net |