Chromium Code Reviews| Index: net/http/http_response_headers_unittest.cc |
| diff --git a/net/http/http_response_headers_unittest.cc b/net/http/http_response_headers_unittest.cc |
| index 041972b76df1edda20c64a541f6dbaa6a926c12b..0fabf1a7ad4cd34aa1ed44cb9222dd975ea1c7fa 100644 |
| --- a/net/http/http_response_headers_unittest.cc |
| +++ b/net/http/http_response_headers_unittest.cc |
| @@ -2219,6 +2219,64 @@ TEST_F(HttpResponseHeadersCacheControlTest, |
| EXPECT_EQ(TimeDelta::FromSeconds(1), GetStaleWhileRevalidateValue()); |
| } |
| +struct GetCurrentAgeTestData { |
| + const char* headers; |
| + const char* request_time; |
| + const char* response_time; |
| + const char* current_time; |
| + const int expected_age; |
| +}; |
| + |
| +class GetCurrentAgeTest |
| + : public HttpResponseHeadersTest, |
| + public ::testing::WithParamInterface<GetCurrentAgeTestData> { |
| +}; |
| + |
| +TEST_P(GetCurrentAgeTest, GetCurrentAge) { |
| + const GetCurrentAgeTestData test = GetParam(); |
| + |
| + base::Time request_time, response_time, current_time; |
| + base::Time::FromString(test.request_time, &request_time); |
|
jkarlin
2017/01/23 14:09:41
You'll need to check the return values of FromStri
billyjay
2017/01/24 06:38:31
Done.
|
| + base::Time::FromString(test.response_time, &response_time); |
| + base::Time::FromString(test.current_time, ¤t_time); |
| + |
| + std::string headers(test.headers); |
| + HeadersToRaw(&headers); |
| + scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); |
| + |
| + base::TimeDelta age = |
| + parsed->GetCurrentAge(request_time, response_time, current_time); |
| + EXPECT_EQ(test.expected_age, age.InSeconds()); |
| +} |
| + |
| +const struct GetCurrentAgeTestData get_current_age_tests[] = { |
| + // Without Date header. |
| + {"HTTP/1.1 200 OK\n" |
| + "Age: 2", |
| + "Fri, 20 Jan 2011 10:40:08 GMT", "Fri, 20 Jan 2011 10:40:12 GMT", |
| + "Fri, 20 Jan 2011 10:40:14 GMT", 8}, |
| + // Without Age header. |
| + {"HTTP/1.1 200 OK\n" |
| + "Date: Fri, 20 Jan 2011 10:40:10 GMT\n", |
| + "Fri, 20 Jan 2011 10:40:08 GMT", "Fri, 20 Jan 2011 10:40:12 GMT", |
| + "Fri, 20 Jan 2011 10:40:14 GMT", 6}, |
| + // date_value > response_time. |
|
jkarlin
2017/01/23 14:09:41
Please also add a case where date_value > response
billyjay
2017/01/24 06:38:31
Done.
|
| + {"HTTP/1.1 200 OK\n" |
| + "Date: Fri, 20 Jan 2011 10:40:14 GMT\n" |
| + "Age: 2\n", |
| + "Fri, 20 Jan 2011 10:40:08 GMT", "Fri, 20 Jan 2011 10:40:12 GMT", |
| + "Fri, 20 Jan 2011 10:40:14 GMT", 8}, |
| + // apparent_age > corrected_age_value |
| + {"HTTP/1.1 200 OK\n" |
| + "Date: Fri, 20 Jan 2011 10:40:07 GMT\n" |
| + "Age: 0\n", |
| + "Fri, 20 Jan 2011 10:40:08 GMT", "Fri, 20 Jan 2011 10:40:12 GMT", |
| + "Fri, 20 Jan 2011 10:40:14 GMT", 7}}; |
| + |
| +INSTANTIATE_TEST_CASE_P(HttpResponseHeaders, |
| + GetCurrentAgeTest, |
| + testing::ValuesIn(get_current_age_tests)); |
| + |
| } // namespace |
| } // namespace net |