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 f37760ab3e35264b2a4556e87b95a7e821467f04..df1b76d4cdc60d329ec5f8ba64ede27cd77ff54f 100644 |
--- a/net/http/http_response_headers_unittest.cc |
+++ b/net/http/http_response_headers_unittest.cc |
@@ -2,11 +2,12 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
+#include <stdint.h> |
+ |
#include <algorithm> |
#include <iostream> |
#include <limits> |
-#include "base/basictypes.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/pickle.h" |
#include "base/time/time.h" |
@@ -1199,7 +1200,7 @@ INSTANTIATE_TEST_CASE_P(HttpResponseHeaders, |
struct ContentLengthTestData { |
const char* headers; |
- int64 expected_len; |
+ int64_t expected_len; |
}; |
class GetContentLengthTest |
@@ -1218,74 +1219,56 @@ TEST_P(GetContentLengthTest, GetContentLength) { |
} |
const ContentLengthTestData content_length_tests[] = { |
- { "HTTP/1.1 200 OK\n", |
- -1 |
- }, |
- { "HTTP/1.1 200 OK\n" |
- "Content-Length: 10\n", |
- 10 |
- }, |
- { "HTTP/1.1 200 OK\n" |
- "Content-Length: \n", |
- -1 |
- }, |
- { "HTTP/1.1 200 OK\n" |
- "Content-Length: abc\n", |
- -1 |
- }, |
- { "HTTP/1.1 200 OK\n" |
- "Content-Length: -10\n", |
- -1 |
- }, |
- { "HTTP/1.1 200 OK\n" |
- "Content-Length: +10\n", |
- -1 |
- }, |
- { "HTTP/1.1 200 OK\n" |
- "Content-Length: 23xb5\n", |
- -1 |
- }, |
- { "HTTP/1.1 200 OK\n" |
- "Content-Length: 0xA\n", |
- -1 |
- }, |
- { "HTTP/1.1 200 OK\n" |
- "Content-Length: 010\n", |
- 10 |
- }, |
- // Content-Length too big, will overflow an int64. |
- { "HTTP/1.1 200 OK\n" |
- "Content-Length: 40000000000000000000\n", |
- -1 |
- }, |
- { "HTTP/1.1 200 OK\n" |
- "Content-Length: 10\n", |
- 10 |
- }, |
- { "HTTP/1.1 200 OK\n" |
- "Content-Length: 10 \n", |
- 10 |
- }, |
- { "HTTP/1.1 200 OK\n" |
- "Content-Length: \t10\n", |
- 10 |
- }, |
- { "HTTP/1.1 200 OK\n" |
- "Content-Length: \v10\n", |
- -1 |
- }, |
- { "HTTP/1.1 200 OK\n" |
- "Content-Length: \f10\n", |
- -1 |
- }, |
- { "HTTP/1.1 200 OK\n" |
- "cOnTeNt-LENgth: 33\n", |
- 33 |
- }, |
- { "HTTP/1.1 200 OK\n" |
- "Content-Length: 34\r\n", |
- -1 |
- }, |
+ {"HTTP/1.1 200 OK\n", -1}, |
+ {"HTTP/1.1 200 OK\n" |
+ "Content-Length: 10\n", |
+ 10}, |
+ {"HTTP/1.1 200 OK\n" |
+ "Content-Length: \n", |
+ -1}, |
+ {"HTTP/1.1 200 OK\n" |
+ "Content-Length: abc\n", |
+ -1}, |
+ {"HTTP/1.1 200 OK\n" |
+ "Content-Length: -10\n", |
+ -1}, |
+ {"HTTP/1.1 200 OK\n" |
+ "Content-Length: +10\n", |
+ -1}, |
+ {"HTTP/1.1 200 OK\n" |
+ "Content-Length: 23xb5\n", |
+ -1}, |
+ {"HTTP/1.1 200 OK\n" |
+ "Content-Length: 0xA\n", |
+ -1}, |
+ {"HTTP/1.1 200 OK\n" |
+ "Content-Length: 010\n", |
+ 10}, |
+ // Content-Length too big, will overflow an int64_t. |
+ {"HTTP/1.1 200 OK\n" |
+ "Content-Length: 40000000000000000000\n", |
+ -1}, |
+ {"HTTP/1.1 200 OK\n" |
+ "Content-Length: 10\n", |
+ 10}, |
+ {"HTTP/1.1 200 OK\n" |
+ "Content-Length: 10 \n", |
+ 10}, |
+ {"HTTP/1.1 200 OK\n" |
+ "Content-Length: \t10\n", |
+ 10}, |
+ {"HTTP/1.1 200 OK\n" |
+ "Content-Length: \v10\n", |
+ -1}, |
+ {"HTTP/1.1 200 OK\n" |
+ "Content-Length: \f10\n", |
+ -1}, |
+ {"HTTP/1.1 200 OK\n" |
+ "cOnTeNt-LENgth: 33\n", |
+ 33}, |
+ {"HTTP/1.1 200 OK\n" |
+ "Content-Length: 34\r\n", |
+ -1}, |
}; |
INSTANTIATE_TEST_CASE_P(HttpResponseHeaders, |
@@ -1295,9 +1278,9 @@ INSTANTIATE_TEST_CASE_P(HttpResponseHeaders, |
struct ContentRangeTestData { |
const char* headers; |
bool expected_return_value; |
- int64 expected_first_byte_position; |
- int64 expected_last_byte_position; |
- int64 expected_instance_size; |
+ int64_t expected_first_byte_position; |
+ int64_t expected_last_byte_position; |
+ int64_t expected_instance_size; |
}; |
class ContentRangeTest |
@@ -1312,9 +1295,9 @@ TEST_P(ContentRangeTest, GetContentRange) { |
HeadersToRaw(&headers); |
scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers)); |
- int64 first_byte_position; |
- int64 last_byte_position; |
- int64 instance_size; |
+ int64_t first_byte_position; |
+ int64_t last_byte_position; |
+ int64_t instance_size; |
bool return_value = parsed->GetContentRange(&first_byte_position, |
&last_byte_position, |
&instance_size); |
@@ -1325,238 +1308,105 @@ TEST_P(ContentRangeTest, GetContentRange) { |
} |
const ContentRangeTestData content_range_tests[] = { |
- { "HTTP/1.1 206 Partial Content", |
- false, |
- -1, |
- -1, |
- -1 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range:", |
- false, |
- -1, |
- -1, |
- -1 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: megabytes 0-10/50", |
- false, |
- -1, |
- -1, |
- -1 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: 0-10/50", |
- false, |
- -1, |
- -1, |
- -1 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: Bytes 0-50/51", |
- true, |
- 0, |
- 50, |
- 51 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes 0-50/51", |
- true, |
- 0, |
- 50, |
- 51 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes\t0-50/51", |
- false, |
- -1, |
- -1, |
- -1 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes 0-50/51", |
- true, |
- 0, |
- 50, |
- 51 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes 0 - 50 \t / \t51", |
- true, |
- 0, |
- 50, |
- 51 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes 0\t-\t50\t/\t51\t", |
- true, |
- 0, |
- 50, |
- 51 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: \tbytes\t\t\t 0\t-\t50\t/\t51\t", |
- true, |
- 0, |
- 50, |
- 51 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: \t bytes \t 0 - 50 / 5 1", |
- false, |
- 0, |
- 50, |
- -1 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: \t bytes \t 0 - 5 0 / 51", |
- false, |
- -1, |
- -1, |
- -1 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes 50-0/51", |
- false, |
- 50, |
- 0, |
- -1 |
- }, |
- { "HTTP/1.1 416 Requested range not satisfiable\n" |
- "Content-Range: bytes * /*", |
- false, |
- -1, |
- -1, |
- -1 |
- }, |
- { "HTTP/1.1 416 Requested range not satisfiable\n" |
- "Content-Range: bytes * / * ", |
- false, |
- -1, |
- -1, |
- -1 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes 0-50/*", |
- false, |
- 0, |
- 50, |
- -1 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes 0-50 / * ", |
- false, |
- 0, |
- 50, |
- -1 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes 0-10000000000/10000000001", |
- true, |
- 0, |
- 10000000000ll, |
- 10000000001ll |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes 0-10000000000/10000000000", |
- false, |
- 0, |
- 10000000000ll, |
- 10000000000ll |
- }, |
- // 64 bit wraparound. |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes 0 - 9223372036854775807 / 100", |
- false, |
- 0, |
- kint64max, |
- 100 |
- }, |
- // 64 bit wraparound. |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes 0 - 100 / -9223372036854775808", |
- false, |
- 0, |
- 100, |
- kint64min |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes */50", |
- false, |
- -1, |
- -1, |
- 50 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes 0-50/10", |
- false, |
- 0, |
- 50, |
- 10 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes 40-50/45", |
- false, |
- 40, |
- 50, |
- 45 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes 0-50/-10", |
- false, |
- 0, |
- 50, |
- -10 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes 0-0/1", |
- true, |
- 0, |
- 0, |
- 1 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes 0-40000000000000000000/40000000000000000001", |
- false, |
- -1, |
- -1, |
- -1 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes 1-/100", |
- false, |
- -1, |
- -1, |
- -1 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes -/100", |
- false, |
- -1, |
- -1, |
- -1 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes -1/100", |
- false, |
- -1, |
- -1, |
- -1 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes 0-1233/*", |
- false, |
- 0, |
- 1233, |
- -1 |
- }, |
- { "HTTP/1.1 206 Partial Content\n" |
- "Content-Range: bytes -123 - -1/100", |
- false, |
- -1, |
- -1, |
- -1 |
- }, |
+ {"HTTP/1.1 206 Partial Content", false, -1, -1, -1}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range:", |
+ false, -1, -1, -1}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: megabytes 0-10/50", |
+ false, -1, -1, -1}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: 0-10/50", |
+ false, -1, -1, -1}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: Bytes 0-50/51", |
+ true, 0, 50, 51}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes 0-50/51", |
+ true, 0, 50, 51}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes\t0-50/51", |
+ false, -1, -1, -1}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes 0-50/51", |
+ true, 0, 50, 51}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes 0 - 50 \t / \t51", |
+ true, 0, 50, 51}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes 0\t-\t50\t/\t51\t", |
+ true, 0, 50, 51}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: \tbytes\t\t\t 0\t-\t50\t/\t51\t", |
+ true, 0, 50, 51}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: \t bytes \t 0 - 50 / 5 1", |
+ false, 0, 50, -1}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: \t bytes \t 0 - 5 0 / 51", |
+ false, -1, -1, -1}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes 50-0/51", |
+ false, 50, 0, -1}, |
+ {"HTTP/1.1 416 Requested range not satisfiable\n" |
+ "Content-Range: bytes * /*", |
+ false, -1, -1, -1}, |
+ {"HTTP/1.1 416 Requested range not satisfiable\n" |
+ "Content-Range: bytes * / * ", |
+ false, -1, -1, -1}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes 0-50/*", |
+ false, 0, 50, -1}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes 0-50 / * ", |
+ false, 0, 50, -1}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes 0-10000000000/10000000001", |
+ true, 0, 10000000000ll, 10000000001ll}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes 0-10000000000/10000000000", |
+ false, 0, 10000000000ll, 10000000000ll}, |
+ // 64 bit wraparound. |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes 0 - 9223372036854775807 / 100", |
+ false, 0, std::numeric_limits<int64_t>::max(), 100}, |
+ // 64 bit wraparound. |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes 0 - 100 / -9223372036854775808", |
+ false, 0, 100, std::numeric_limits<int64_t>::min()}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes */50", |
+ false, -1, -1, 50}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes 0-50/10", |
+ false, 0, 50, 10}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes 40-50/45", |
+ false, 40, 50, 45}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes 0-50/-10", |
+ false, 0, 50, -10}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes 0-0/1", |
+ true, 0, 0, 1}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes 0-40000000000000000000/40000000000000000001", |
+ false, -1, -1, -1}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes 1-/100", |
+ false, -1, -1, -1}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes -/100", |
+ false, -1, -1, -1}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes -1/100", |
+ false, -1, -1, -1}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes 0-1233/*", |
+ false, 0, 1233, -1}, |
+ {"HTTP/1.1 206 Partial Content\n" |
+ "Content-Range: bytes -123 - -1/100", |
+ false, -1, -1, -1}, |
}; |
INSTANTIATE_TEST_CASE_P(HttpResponseHeaders, |
@@ -2135,7 +1985,7 @@ TEST_P(UpdateWithNewRangeTest, UpdateWithNewRange) { |
std::replace(orig_headers.begin(), orig_headers.end(), '\n', '\0'); |
scoped_refptr<HttpResponseHeaders> parsed( |
new HttpResponseHeaders(orig_headers + '\0')); |
- int64 content_size = parsed->GetContentLength(); |
+ int64_t content_size = parsed->GetContentLength(); |
std::string resulting_headers; |
// Update headers without replacing status line. |
@@ -2245,7 +2095,7 @@ TEST_F(HttpResponseHeadersCacheControlTest, MaxAgeCaseInsensitive) { |
struct MaxAgeTestData { |
const char* max_age_string; |
- const int64 expected_seconds; |
+ const int64_t expected_seconds; |
}; |
class MaxAgeEdgeCasesTest |
@@ -2264,22 +2114,22 @@ TEST_P(MaxAgeEdgeCasesTest, MaxAgeEdgeCases) { |
} |
const MaxAgeTestData max_age_tests[] = { |
- {" 1 ", 1}, // Spaces are ignored. |
- {"-1", -1}, // Negative numbers are passed through. |
- {"--1", 0}, // Leading junk gives 0. |
- {"2s", 2}, // Trailing junk is ignored. |
- {"3 days", 3}, |
- {"'4'", 0}, // Single quotes don't work. |
- {"\"5\"", 0}, // Double quotes don't work. |
- {"0x6", 0}, // Hex not parsed as hex. |
- {"7F", 7}, // Hex without 0x still not parsed as hex. |
- {"010", 10}, // Octal not parsed as octal. |
- {"9223372036854", 9223372036854}, |
- // {"9223372036855", -9223372036854}, // Undefined behaviour. |
- // {"9223372036854775806", -2}, // Undefined behaviour. |
- {"9223372036854775807", 9223372036854775807}, |
- {"20000000000000000000", |
- std::numeric_limits<int64>::max()}, // Overflow int64. |
+ {" 1 ", 1}, // Spaces are ignored. |
+ {"-1", -1}, // Negative numbers are passed through. |
+ {"--1", 0}, // Leading junk gives 0. |
+ {"2s", 2}, // Trailing junk is ignored. |
+ {"3 days", 3}, |
+ {"'4'", 0}, // Single quotes don't work. |
+ {"\"5\"", 0}, // Double quotes don't work. |
+ {"0x6", 0}, // Hex not parsed as hex. |
+ {"7F", 7}, // Hex without 0x still not parsed as hex. |
+ {"010", 10}, // Octal not parsed as octal. |
+ {"9223372036854", 9223372036854}, |
+ // {"9223372036855", -9223372036854}, // Undefined behaviour. |
+ // {"9223372036854775806", -2}, // Undefined behaviour. |
+ {"9223372036854775807", 9223372036854775807}, |
+ {"20000000000000000000", |
+ std::numeric_limits<int64_t>::max()}, // Overflow int64_t. |
}; |
INSTANTIATE_TEST_CASE_P(HttpResponseHeadersCacheControl, |