Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(594)

Side by Side Diff: net/http/http_response_headers_unittest.cc

Issue 4192012: Convert implicit scoped_refptr constructor calls to explicit ones, part 1 (Closed) Base URL: http://git.chromium.org/git/chromium.git
Patch Set: fix presubmit Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/http/http_network_transaction_unittest.cc ('k') | net/http/http_stream_parser.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <algorithm> 5 #include <algorithm>
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/pickle.h" 8 #include "base/pickle.h"
9 #include "base/time.h" 9 #include "base/time.h"
10 #include "net/http/http_response_headers.h" 10 #include "net/http/http_response_headers.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 if (!headers->empty()) 44 if (!headers->empty())
45 *headers += '\0'; 45 *headers += '\0';
46 } 46 }
47 47
48 void TestCommon(const TestData& test) { 48 void TestCommon(const TestData& test) {
49 string raw_headers(test.raw_headers); 49 string raw_headers(test.raw_headers);
50 HeadersToRaw(&raw_headers); 50 HeadersToRaw(&raw_headers);
51 string expected_headers(test.expected_headers); 51 string expected_headers(test.expected_headers);
52 52
53 string headers; 53 string headers;
54 scoped_refptr<HttpResponseHeaders> parsed = 54 scoped_refptr<HttpResponseHeaders> parsed(
55 new HttpResponseHeaders(raw_headers); 55 new HttpResponseHeaders(raw_headers));
56 parsed->GetNormalizedHeaders(&headers); 56 parsed->GetNormalizedHeaders(&headers);
57 57
58 // Transform to readable output format (so it's easier to see diffs). 58 // Transform to readable output format (so it's easier to see diffs).
59 replace(headers.begin(), headers.end(), ' ', '_'); 59 replace(headers.begin(), headers.end(), ' ', '_');
60 replace(headers.begin(), headers.end(), '\n', '\\'); 60 replace(headers.begin(), headers.end(), '\n', '\\');
61 replace(expected_headers.begin(), expected_headers.end(), ' ', '_'); 61 replace(expected_headers.begin(), expected_headers.end(), ' ', '_');
62 replace(expected_headers.begin(), expected_headers.end(), '\n', '\\'); 62 replace(expected_headers.begin(), expected_headers.end(), '\n', '\\');
63 63
64 EXPECT_EQ(expected_headers, headers); 64 EXPECT_EQ(expected_headers, headers);
65 65
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 }; 274 };
275 TestCommon(test); 275 TestCommon(test);
276 } 276 }
277 277
278 TEST(HttpResponseHeadersTest, GetNormalizedHeader) { 278 TEST(HttpResponseHeadersTest, GetNormalizedHeader) {
279 std::string headers = 279 std::string headers =
280 "HTTP/1.1 200 OK\n" 280 "HTTP/1.1 200 OK\n"
281 "Cache-control: private\n" 281 "Cache-control: private\n"
282 "cache-Control: no-store\n"; 282 "cache-Control: no-store\n";
283 HeadersToRaw(&headers); 283 HeadersToRaw(&headers);
284 scoped_refptr<HttpResponseHeaders> parsed = new HttpResponseHeaders(headers); 284 scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers));
285 285
286 std::string value; 286 std::string value;
287 EXPECT_TRUE(parsed->GetNormalizedHeader("cache-control", &value)); 287 EXPECT_TRUE(parsed->GetNormalizedHeader("cache-control", &value));
288 EXPECT_EQ("private, no-store", value); 288 EXPECT_EQ("private, no-store", value);
289 } 289 }
290 290
291 TEST(HttpResponseHeadersTest, Persist) { 291 TEST(HttpResponseHeadersTest, Persist) {
292 const struct { 292 const struct {
293 net::HttpResponseHeaders::PersistOptions options; 293 net::HttpResponseHeaders::PersistOptions options;
294 const char* raw_headers; 294 const char* raw_headers;
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 441
442 "HTTP/1.1 200 OK\n" 442 "HTTP/1.1 200 OK\n"
443 "Content-Length: 450\n" 443 "Content-Length: 450\n"
444 "Content-Encoding: gzip\n" 444 "Content-Encoding: gzip\n"
445 }, 445 },
446 }; 446 };
447 447
448 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 448 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
449 std::string headers = tests[i].raw_headers; 449 std::string headers = tests[i].raw_headers;
450 HeadersToRaw(&headers); 450 HeadersToRaw(&headers);
451 scoped_refptr<HttpResponseHeaders> parsed1 = 451 scoped_refptr<HttpResponseHeaders> parsed1(
452 new HttpResponseHeaders(headers); 452 new HttpResponseHeaders(headers));
453 453
454 Pickle pickle; 454 Pickle pickle;
455 parsed1->Persist(&pickle, tests[i].options); 455 parsed1->Persist(&pickle, tests[i].options);
456 456
457 void* iter = NULL; 457 void* iter = NULL;
458 scoped_refptr<HttpResponseHeaders> parsed2 = 458 scoped_refptr<HttpResponseHeaders> parsed2(
459 new HttpResponseHeaders(pickle, &iter); 459 new HttpResponseHeaders(pickle, &iter));
460 460
461 std::string h2; 461 std::string h2;
462 parsed2->GetNormalizedHeaders(&h2); 462 parsed2->GetNormalizedHeaders(&h2);
463 EXPECT_EQ(string(tests[i].expected_headers), h2); 463 EXPECT_EQ(string(tests[i].expected_headers), h2);
464 } 464 }
465 } 465 }
466 466
467 TEST(HttpResponseHeadersTest, EnumerateHeader_Coalesced) { 467 TEST(HttpResponseHeadersTest, EnumerateHeader_Coalesced) {
468 // Ensure that commas in quoted strings are not regarded as value separators. 468 // Ensure that commas in quoted strings are not regarded as value separators.
469 // Ensure that whitespace following a value is trimmed properly 469 // Ensure that whitespace following a value is trimmed properly
470 std::string headers = 470 std::string headers =
471 "HTTP/1.1 200 OK\n" 471 "HTTP/1.1 200 OK\n"
472 "Cache-control:private , no-cache=\"set-cookie,server\" \n" 472 "Cache-control:private , no-cache=\"set-cookie,server\" \n"
473 "cache-Control: no-store\n"; 473 "cache-Control: no-store\n";
474 HeadersToRaw(&headers); 474 HeadersToRaw(&headers);
475 scoped_refptr<HttpResponseHeaders> parsed = new HttpResponseHeaders(headers); 475 scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers));
476 476
477 void* iter = NULL; 477 void* iter = NULL;
478 std::string value; 478 std::string value;
479 EXPECT_TRUE(parsed->EnumerateHeader(&iter, "cache-control", &value)); 479 EXPECT_TRUE(parsed->EnumerateHeader(&iter, "cache-control", &value));
480 EXPECT_EQ("private", value); 480 EXPECT_EQ("private", value);
481 EXPECT_TRUE(parsed->EnumerateHeader(&iter, "cache-control", &value)); 481 EXPECT_TRUE(parsed->EnumerateHeader(&iter, "cache-control", &value));
482 EXPECT_EQ("no-cache=\"set-cookie,server\"", value); 482 EXPECT_EQ("no-cache=\"set-cookie,server\"", value);
483 EXPECT_TRUE(parsed->EnumerateHeader(&iter, "cache-control", &value)); 483 EXPECT_TRUE(parsed->EnumerateHeader(&iter, "cache-control", &value));
484 EXPECT_EQ("no-store", value); 484 EXPECT_EQ("no-store", value);
485 EXPECT_FALSE(parsed->EnumerateHeader(&iter, "cache-control", &value)); 485 EXPECT_FALSE(parsed->EnumerateHeader(&iter, "cache-control", &value));
486 } 486 }
487 487
488 TEST(HttpResponseHeadersTest, EnumerateHeader_Challenge) { 488 TEST(HttpResponseHeadersTest, EnumerateHeader_Challenge) {
489 // Even though WWW-Authenticate has commas, it should not be treated as 489 // Even though WWW-Authenticate has commas, it should not be treated as
490 // coalesced values. 490 // coalesced values.
491 std::string headers = 491 std::string headers =
492 "HTTP/1.1 401 OK\n" 492 "HTTP/1.1 401 OK\n"
493 "WWW-Authenticate:Digest realm=foobar, nonce=x, domain=y\n" 493 "WWW-Authenticate:Digest realm=foobar, nonce=x, domain=y\n"
494 "WWW-Authenticate:Basic realm=quatar\n"; 494 "WWW-Authenticate:Basic realm=quatar\n";
495 HeadersToRaw(&headers); 495 HeadersToRaw(&headers);
496 scoped_refptr<HttpResponseHeaders> parsed = new HttpResponseHeaders(headers); 496 scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers));
497 497
498 void* iter = NULL; 498 void* iter = NULL;
499 std::string value; 499 std::string value;
500 EXPECT_TRUE(parsed->EnumerateHeader(&iter, "WWW-Authenticate", &value)); 500 EXPECT_TRUE(parsed->EnumerateHeader(&iter, "WWW-Authenticate", &value));
501 EXPECT_EQ("Digest realm=foobar, nonce=x, domain=y", value); 501 EXPECT_EQ("Digest realm=foobar, nonce=x, domain=y", value);
502 EXPECT_TRUE(parsed->EnumerateHeader(&iter, "WWW-Authenticate", &value)); 502 EXPECT_TRUE(parsed->EnumerateHeader(&iter, "WWW-Authenticate", &value));
503 EXPECT_EQ("Basic realm=quatar", value); 503 EXPECT_EQ("Basic realm=quatar", value);
504 EXPECT_FALSE(parsed->EnumerateHeader(&iter, "WWW-Authenticate", &value)); 504 EXPECT_FALSE(parsed->EnumerateHeader(&iter, "WWW-Authenticate", &value));
505 } 505 }
506 506
507 TEST(HttpResponseHeadersTest, EnumerateHeader_DateValued) { 507 TEST(HttpResponseHeadersTest, EnumerateHeader_DateValued) {
508 // The comma in a date valued header should not be treated as a 508 // The comma in a date valued header should not be treated as a
509 // field-value separator 509 // field-value separator
510 std::string headers = 510 std::string headers =
511 "HTTP/1.1 200 OK\n" 511 "HTTP/1.1 200 OK\n"
512 "Date: Tue, 07 Aug 2007 23:10:55 GMT\n" 512 "Date: Tue, 07 Aug 2007 23:10:55 GMT\n"
513 "Last-Modified: Wed, 01 Aug 2007 23:23:45 GMT\n"; 513 "Last-Modified: Wed, 01 Aug 2007 23:23:45 GMT\n";
514 HeadersToRaw(&headers); 514 HeadersToRaw(&headers);
515 scoped_refptr<HttpResponseHeaders> parsed = new HttpResponseHeaders(headers); 515 scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers));
516 516
517 std::string value; 517 std::string value;
518 EXPECT_TRUE(parsed->EnumerateHeader(NULL, "date", &value)); 518 EXPECT_TRUE(parsed->EnumerateHeader(NULL, "date", &value));
519 EXPECT_EQ("Tue, 07 Aug 2007 23:10:55 GMT", value); 519 EXPECT_EQ("Tue, 07 Aug 2007 23:10:55 GMT", value);
520 EXPECT_TRUE(parsed->EnumerateHeader(NULL, "last-modified", &value)); 520 EXPECT_TRUE(parsed->EnumerateHeader(NULL, "last-modified", &value));
521 EXPECT_EQ("Wed, 01 Aug 2007 23:23:45 GMT", value); 521 EXPECT_EQ("Wed, 01 Aug 2007 23:23:45 GMT", value);
522 } 522 }
523 523
524 TEST(HttpResponseHeadersTest, GetMimeType) { 524 TEST(HttpResponseHeadersTest, GetMimeType) {
525 const ContentTypeTestData tests[] = { 525 const ContentTypeTestData tests[] = {
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 { "HTTP/1.1 200 OK\n" 649 { "HTTP/1.1 200 OK\n"
650 "Content-type: */*\n", 650 "Content-type: */*\n",
651 "", false, 651 "", false,
652 "", false, 652 "", false,
653 "*/*" }, 653 "*/*" },
654 }; 654 };
655 655
656 for (size_t i = 0; i < arraysize(tests); ++i) { 656 for (size_t i = 0; i < arraysize(tests); ++i) {
657 string headers(tests[i].raw_headers); 657 string headers(tests[i].raw_headers);
658 HeadersToRaw(&headers); 658 HeadersToRaw(&headers);
659 scoped_refptr<HttpResponseHeaders> parsed = 659 scoped_refptr<HttpResponseHeaders> parsed(
660 new HttpResponseHeaders(headers); 660 new HttpResponseHeaders(headers));
661 661
662 std::string value; 662 std::string value;
663 EXPECT_EQ(tests[i].has_mimetype, parsed->GetMimeType(&value)); 663 EXPECT_EQ(tests[i].has_mimetype, parsed->GetMimeType(&value));
664 EXPECT_EQ(tests[i].mime_type, value); 664 EXPECT_EQ(tests[i].mime_type, value);
665 value.clear(); 665 value.clear();
666 EXPECT_EQ(tests[i].has_charset, parsed->GetCharset(&value)); 666 EXPECT_EQ(tests[i].has_charset, parsed->GetCharset(&value));
667 EXPECT_EQ(tests[i].charset, value); 667 EXPECT_EQ(tests[i].charset, value);
668 EXPECT_TRUE(parsed->GetNormalizedHeader("content-type", &value)); 668 EXPECT_TRUE(parsed->GetNormalizedHeader("content-type", &value));
669 EXPECT_EQ(tests[i].all_content_type, value); 669 EXPECT_EQ(tests[i].all_content_type, value);
670 } 670 }
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
800 // TODO(darin): add many many more tests here 800 // TODO(darin): add many many more tests here
801 }; 801 };
802 Time request_time, response_time, current_time; 802 Time request_time, response_time, current_time;
803 Time::FromString(L"Wed, 28 Nov 2007 00:40:09 GMT", &request_time); 803 Time::FromString(L"Wed, 28 Nov 2007 00:40:09 GMT", &request_time);
804 Time::FromString(L"Wed, 28 Nov 2007 00:40:12 GMT", &response_time); 804 Time::FromString(L"Wed, 28 Nov 2007 00:40:12 GMT", &response_time);
805 Time::FromString(L"Wed, 28 Nov 2007 00:45:20 GMT", &current_time); 805 Time::FromString(L"Wed, 28 Nov 2007 00:45:20 GMT", &current_time);
806 806
807 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 807 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
808 string headers(tests[i].headers); 808 string headers(tests[i].headers);
809 HeadersToRaw(&headers); 809 HeadersToRaw(&headers);
810 scoped_refptr<HttpResponseHeaders> parsed = 810 scoped_refptr<HttpResponseHeaders> parsed(
811 new HttpResponseHeaders(headers); 811 new HttpResponseHeaders(headers));
812 812
813 bool requires_validation = 813 bool requires_validation =
814 parsed->RequiresValidation(request_time, response_time, current_time); 814 parsed->RequiresValidation(request_time, response_time, current_time);
815 EXPECT_EQ(tests[i].requires_validation, requires_validation); 815 EXPECT_EQ(tests[i].requires_validation, requires_validation);
816 } 816 }
817 } 817 }
818 818
819 TEST(HttpResponseHeadersTest, Update) { 819 TEST(HttpResponseHeadersTest, Update) {
820 const struct { 820 const struct {
821 const char* orig_headers; 821 const char* orig_headers;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
864 864
865 "HTTP/1.1 200 OK\n" 865 "HTTP/1.1 200 OK\n"
866 "Cache-control: max-age=10001\n" 866 "Cache-control: max-age=10001\n"
867 "Content-Length: 450\n" 867 "Content-Length: 450\n"
868 }, 868 },
869 }; 869 };
870 870
871 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 871 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
872 string orig_headers(tests[i].orig_headers); 872 string orig_headers(tests[i].orig_headers);
873 HeadersToRaw(&orig_headers); 873 HeadersToRaw(&orig_headers);
874 scoped_refptr<HttpResponseHeaders> parsed = 874 scoped_refptr<HttpResponseHeaders> parsed(
875 new HttpResponseHeaders(orig_headers); 875 new HttpResponseHeaders(orig_headers));
876 876
877 string new_headers(tests[i].new_headers); 877 string new_headers(tests[i].new_headers);
878 HeadersToRaw(&new_headers); 878 HeadersToRaw(&new_headers);
879 scoped_refptr<HttpResponseHeaders> new_parsed = 879 scoped_refptr<HttpResponseHeaders> new_parsed(
880 new HttpResponseHeaders(new_headers); 880 new HttpResponseHeaders(new_headers));
881 881
882 parsed->Update(*new_parsed); 882 parsed->Update(*new_parsed);
883 883
884 string resulting_headers; 884 string resulting_headers;
885 parsed->GetNormalizedHeaders(&resulting_headers); 885 parsed->GetNormalizedHeaders(&resulting_headers);
886 EXPECT_EQ(string(tests[i].expected_headers), resulting_headers); 886 EXPECT_EQ(string(tests[i].expected_headers), resulting_headers);
887 } 887 }
888 } 888 }
889 889
890 TEST(HttpResponseHeadersTest, EnumerateHeaderLines) { 890 TEST(HttpResponseHeadersTest, EnumerateHeaderLines) {
(...skipping 19 matching lines...) Expand all
910 }, 910 },
911 { "HTTP/1.1 200 OK\n" 911 { "HTTP/1.1 200 OK\n"
912 "Foo: 1, 2, 3\n", 912 "Foo: 1, 2, 3\n",
913 913
914 "Foo: 1, 2, 3\n" 914 "Foo: 1, 2, 3\n"
915 }, 915 },
916 }; 916 };
917 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 917 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
918 string headers(tests[i].headers); 918 string headers(tests[i].headers);
919 HeadersToRaw(&headers); 919 HeadersToRaw(&headers);
920 scoped_refptr<HttpResponseHeaders> parsed = 920 scoped_refptr<HttpResponseHeaders> parsed(
921 new HttpResponseHeaders(headers); 921 new HttpResponseHeaders(headers));
922 922
923 string name, value, lines; 923 string name, value, lines;
924 924
925 void* iter = NULL; 925 void* iter = NULL;
926 while (parsed->EnumerateHeaderLines(&iter, &name, &value)) { 926 while (parsed->EnumerateHeaderLines(&iter, &name, &value)) {
927 lines.append(name); 927 lines.append(name);
928 lines.append(": "); 928 lines.append(": ");
929 lines.append(value); 929 lines.append(value);
930 lines.append("\n"); 930 lines.append("\n");
931 } 931 }
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
994 }, 994 },
995 { "HTTP/1.1 301 Moved\n" 995 { "HTTP/1.1 301 Moved\n"
996 "Location: http://foo/bar?key=\x83\x5C\x82\x5D\xCB\xD7\n", 996 "Location: http://foo/bar?key=\x83\x5C\x82\x5D\xCB\xD7\n",
997 "http://foo/bar?key=%83\\%82]%CB%D7", 997 "http://foo/bar?key=%83\\%82]%CB%D7",
998 true 998 true
999 }, 999 },
1000 }; 1000 };
1001 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 1001 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
1002 string headers(tests[i].headers); 1002 string headers(tests[i].headers);
1003 HeadersToRaw(&headers); 1003 HeadersToRaw(&headers);
1004 scoped_refptr<HttpResponseHeaders> parsed = 1004 scoped_refptr<HttpResponseHeaders> parsed(
1005 new HttpResponseHeaders(headers); 1005 new HttpResponseHeaders(headers));
1006 1006
1007 std::string location; 1007 std::string location;
1008 EXPECT_EQ(parsed->IsRedirect(&location), tests[i].is_redirect); 1008 EXPECT_EQ(parsed->IsRedirect(&location), tests[i].is_redirect);
1009 EXPECT_EQ(location, tests[i].location); 1009 EXPECT_EQ(location, tests[i].location);
1010 } 1010 }
1011 } 1011 }
1012 1012
1013 TEST(HttpResponseHeadersTest, GetContentLength) { 1013 TEST(HttpResponseHeadersTest, GetContentLength) {
1014 const struct { 1014 const struct {
1015 const char* headers; 1015 const char* headers;
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
1080 33 1080 33
1081 }, 1081 },
1082 { "HTTP/1.1 200 OK\n" 1082 { "HTTP/1.1 200 OK\n"
1083 "Content-Length: 34\r\n", 1083 "Content-Length: 34\r\n",
1084 -1 1084 -1
1085 }, 1085 },
1086 }; 1086 };
1087 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 1087 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
1088 string headers(tests[i].headers); 1088 string headers(tests[i].headers);
1089 HeadersToRaw(&headers); 1089 HeadersToRaw(&headers);
1090 scoped_refptr<HttpResponseHeaders> parsed = 1090 scoped_refptr<HttpResponseHeaders> parsed(
1091 new HttpResponseHeaders(headers); 1091 new HttpResponseHeaders(headers));
1092 1092
1093 EXPECT_EQ(tests[i].expected_len, parsed->GetContentLength()); 1093 EXPECT_EQ(tests[i].expected_len, parsed->GetContentLength());
1094 } 1094 }
1095 } 1095 }
1096 1096
1097 TEST(HttpResponseHeaders, GetContentRange) { 1097 TEST(HttpResponseHeaders, GetContentRange) {
1098 const struct { 1098 const struct {
1099 const char* headers; 1099 const char* headers;
1100 bool expected_return_value; 1100 bool expected_return_value;
1101 int64 expected_first_byte_position; 1101 int64 expected_first_byte_position;
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
1331 "Content-Range: bytes -123 - -1/100", 1331 "Content-Range: bytes -123 - -1/100",
1332 false, 1332 false,
1333 -1, 1333 -1,
1334 -1, 1334 -1,
1335 -1 1335 -1
1336 }, 1336 },
1337 }; 1337 };
1338 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 1338 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
1339 string headers(tests[i].headers); 1339 string headers(tests[i].headers);
1340 HeadersToRaw(&headers); 1340 HeadersToRaw(&headers);
1341 scoped_refptr<HttpResponseHeaders> parsed = 1341 scoped_refptr<HttpResponseHeaders> parsed(
1342 new HttpResponseHeaders(headers); 1342 new HttpResponseHeaders(headers));
1343 1343
1344 int64 first_byte_position; 1344 int64 first_byte_position;
1345 int64 last_byte_position; 1345 int64 last_byte_position;
1346 int64 instance_size; 1346 int64 instance_size;
1347 bool return_value = parsed->GetContentRange(&first_byte_position, 1347 bool return_value = parsed->GetContentRange(&first_byte_position,
1348 &last_byte_position, 1348 &last_byte_position,
1349 &instance_size); 1349 &instance_size);
1350 EXPECT_EQ(tests[i].expected_return_value, return_value); 1350 EXPECT_EQ(tests[i].expected_return_value, return_value);
1351 EXPECT_EQ(tests[i].expected_first_byte_position, first_byte_position); 1351 EXPECT_EQ(tests[i].expected_first_byte_position, first_byte_position);
1352 EXPECT_EQ(tests[i].expected_last_byte_position, last_byte_position); 1352 EXPECT_EQ(tests[i].expected_last_byte_position, last_byte_position);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1413 false 1413 false
1414 }, 1414 },
1415 { "HTTP/1.1 200 OK\n" 1415 { "HTTP/1.1 200 OK\n"
1416 "proxy-connection: keep-alive\n", 1416 "proxy-connection: keep-alive\n",
1417 true 1417 true
1418 }, 1418 },
1419 }; 1419 };
1420 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 1420 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
1421 string headers(tests[i].headers); 1421 string headers(tests[i].headers);
1422 HeadersToRaw(&headers); 1422 HeadersToRaw(&headers);
1423 scoped_refptr<HttpResponseHeaders> parsed = 1423 scoped_refptr<HttpResponseHeaders> parsed(
1424 new HttpResponseHeaders(headers); 1424 new HttpResponseHeaders(headers));
1425 1425
1426 EXPECT_EQ(tests[i].expected_keep_alive, parsed->IsKeepAlive()); 1426 EXPECT_EQ(tests[i].expected_keep_alive, parsed->IsKeepAlive());
1427 } 1427 }
1428 } 1428 }
1429 1429
1430 TEST(HttpResponseHeadersTest, HasStrongValidators) { 1430 TEST(HttpResponseHeadersTest, HasStrongValidators) {
1431 const struct { 1431 const struct {
1432 const char* headers; 1432 const char* headers;
1433 bool expected_result; 1433 bool expected_result;
1434 } tests[] = { 1434 } tests[] = {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
1466 false 1466 false
1467 }, 1467 },
1468 { "HTTP/1.1 200 OK\n" 1468 { "HTTP/1.1 200 OK\n"
1469 "etag: W / \"foo\"\n", 1469 "etag: W / \"foo\"\n",
1470 false 1470 false
1471 } 1471 }
1472 }; 1472 };
1473 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 1473 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
1474 string headers(tests[i].headers); 1474 string headers(tests[i].headers);
1475 HeadersToRaw(&headers); 1475 HeadersToRaw(&headers);
1476 scoped_refptr<HttpResponseHeaders> parsed = 1476 scoped_refptr<HttpResponseHeaders> parsed(
1477 new HttpResponseHeaders(headers); 1477 new HttpResponseHeaders(headers));
1478 1478
1479 EXPECT_EQ(tests[i].expected_result, parsed->HasStrongValidators()) << 1479 EXPECT_EQ(tests[i].expected_result, parsed->HasStrongValidators()) <<
1480 "Failed test case " << i; 1480 "Failed test case " << i;
1481 } 1481 }
1482 } 1482 }
1483 1483
1484 TEST(HttpResponseHeadersTest, GetStatusText) { 1484 TEST(HttpResponseHeadersTest, GetStatusText) {
1485 std::string headers("HTTP/1.1 404 Not Found"); 1485 std::string headers("HTTP/1.1 404 Not Found");
1486 HeadersToRaw(&headers); 1486 HeadersToRaw(&headers);
1487 scoped_refptr<HttpResponseHeaders> parsed = new HttpResponseHeaders(headers); 1487 scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers));
1488 EXPECT_EQ(std::string("Not Found"), parsed->GetStatusText()); 1488 EXPECT_EQ(std::string("Not Found"), parsed->GetStatusText());
1489 } 1489 }
1490 1490
1491 TEST(HttpResponseHeadersTest, GetStatusTextMissing) { 1491 TEST(HttpResponseHeadersTest, GetStatusTextMissing) {
1492 std::string headers("HTTP/1.1 404"); 1492 std::string headers("HTTP/1.1 404");
1493 HeadersToRaw(&headers); 1493 HeadersToRaw(&headers);
1494 scoped_refptr<HttpResponseHeaders> parsed = new HttpResponseHeaders(headers); 1494 scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers));
1495 // Since the status line gets normalized, we have OK 1495 // Since the status line gets normalized, we have OK
1496 EXPECT_EQ(std::string("OK"), parsed->GetStatusText()); 1496 EXPECT_EQ(std::string("OK"), parsed->GetStatusText());
1497 } 1497 }
1498 1498
1499 TEST(HttpResponseHeadersTest, GetStatusTextMultiSpace) { 1499 TEST(HttpResponseHeadersTest, GetStatusTextMultiSpace) {
1500 std::string headers("HTTP/1.0 404 Not Found"); 1500 std::string headers("HTTP/1.0 404 Not Found");
1501 HeadersToRaw(&headers); 1501 HeadersToRaw(&headers);
1502 scoped_refptr<HttpResponseHeaders> parsed = new HttpResponseHeaders(headers); 1502 scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers));
1503 EXPECT_EQ(std::string("Not Found"), parsed->GetStatusText()); 1503 EXPECT_EQ(std::string("Not Found"), parsed->GetStatusText());
1504 } 1504 }
1505 1505
1506 TEST(HttpResponseHeadersTest, GetStatusBadStatusLine) { 1506 TEST(HttpResponseHeadersTest, GetStatusBadStatusLine) {
1507 std::string headers("Foo bar."); 1507 std::string headers("Foo bar.");
1508 HeadersToRaw(&headers); 1508 HeadersToRaw(&headers);
1509 scoped_refptr<HttpResponseHeaders> parsed = new HttpResponseHeaders(headers); 1509 scoped_refptr<HttpResponseHeaders> parsed(new HttpResponseHeaders(headers));
1510 // The bad status line would have gotten rewritten as 1510 // The bad status line would have gotten rewritten as
1511 // HTTP/1.0 200 OK. 1511 // HTTP/1.0 200 OK.
1512 EXPECT_EQ(std::string("OK"), parsed->GetStatusText()); 1512 EXPECT_EQ(std::string("OK"), parsed->GetStatusText());
1513 } 1513 }
1514 1514
1515 TEST(HttpResponseHeadersTest, AddHeader) { 1515 TEST(HttpResponseHeadersTest, AddHeader) {
1516 const struct { 1516 const struct {
1517 const char* orig_headers; 1517 const char* orig_headers;
1518 const char* new_header; 1518 const char* new_header;
1519 const char* expected_headers; 1519 const char* expected_headers;
(...skipping 18 matching lines...) Expand all
1538 "HTTP/1.1 200 OK\n" 1538 "HTTP/1.1 200 OK\n"
1539 "connection: keep-alive\n" 1539 "connection: keep-alive\n"
1540 "Cache-control: max-age=10000\n" 1540 "Cache-control: max-age=10000\n"
1541 "Content-Length: 450\n" 1541 "Content-Length: 450\n"
1542 }, 1542 },
1543 }; 1543 };
1544 1544
1545 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 1545 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
1546 string orig_headers(tests[i].orig_headers); 1546 string orig_headers(tests[i].orig_headers);
1547 HeadersToRaw(&orig_headers); 1547 HeadersToRaw(&orig_headers);
1548 scoped_refptr<HttpResponseHeaders> parsed = 1548 scoped_refptr<HttpResponseHeaders> parsed(
1549 new HttpResponseHeaders(orig_headers); 1549 new HttpResponseHeaders(orig_headers));
1550 1550
1551 string new_header(tests[i].new_header); 1551 string new_header(tests[i].new_header);
1552 parsed->AddHeader(new_header); 1552 parsed->AddHeader(new_header);
1553 1553
1554 string resulting_headers; 1554 string resulting_headers;
1555 parsed->GetNormalizedHeaders(&resulting_headers); 1555 parsed->GetNormalizedHeaders(&resulting_headers);
1556 EXPECT_EQ(string(tests[i].expected_headers), resulting_headers); 1556 EXPECT_EQ(string(tests[i].expected_headers), resulting_headers);
1557 } 1557 }
1558 } 1558 }
1559 1559
(...skipping 23 matching lines...) Expand all
1583 1583
1584 "HTTP/1.1 200 OK\n" 1584 "HTTP/1.1 200 OK\n"
1585 "connection: keep-alive\n" 1585 "connection: keep-alive\n"
1586 "Cache-control: max-age=10000\n" 1586 "Cache-control: max-age=10000\n"
1587 }, 1587 },
1588 }; 1588 };
1589 1589
1590 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 1590 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
1591 string orig_headers(tests[i].orig_headers); 1591 string orig_headers(tests[i].orig_headers);
1592 HeadersToRaw(&orig_headers); 1592 HeadersToRaw(&orig_headers);
1593 scoped_refptr<HttpResponseHeaders> parsed = 1593 scoped_refptr<HttpResponseHeaders> parsed(
1594 new HttpResponseHeaders(orig_headers); 1594 new HttpResponseHeaders(orig_headers));
1595 1595
1596 string name(tests[i].to_remove); 1596 string name(tests[i].to_remove);
1597 parsed->RemoveHeader(name); 1597 parsed->RemoveHeader(name);
1598 1598
1599 string resulting_headers; 1599 string resulting_headers;
1600 parsed->GetNormalizedHeaders(&resulting_headers); 1600 parsed->GetNormalizedHeaders(&resulting_headers);
1601 EXPECT_EQ(string(tests[i].expected_headers), resulting_headers); 1601 EXPECT_EQ(string(tests[i].expected_headers), resulting_headers);
1602 } 1602 }
1603 } 1603 }
1604 1604
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1638 "HTTP/1.0 304 Not Modified\n" 1638 "HTTP/1.0 304 Not Modified\n"
1639 "connection: keep-alive\n" 1639 "connection: keep-alive\n"
1640 "Content-Length: 450\n" 1640 "Content-Length: 450\n"
1641 "Cache-control: max-age=10000\n" 1641 "Cache-control: max-age=10000\n"
1642 }, 1642 },
1643 }; 1643 };
1644 1644
1645 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 1645 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
1646 string orig_headers(tests[i].orig_headers); 1646 string orig_headers(tests[i].orig_headers);
1647 HeadersToRaw(&orig_headers); 1647 HeadersToRaw(&orig_headers);
1648 scoped_refptr<HttpResponseHeaders> parsed = 1648 scoped_refptr<HttpResponseHeaders> parsed(
1649 new HttpResponseHeaders(orig_headers); 1649 new HttpResponseHeaders(orig_headers));
1650 1650
1651 string name(tests[i].new_status); 1651 string name(tests[i].new_status);
1652 parsed->ReplaceStatusLine(name); 1652 parsed->ReplaceStatusLine(name);
1653 1653
1654 string resulting_headers; 1654 string resulting_headers;
1655 parsed->GetNormalizedHeaders(&resulting_headers); 1655 parsed->GetNormalizedHeaders(&resulting_headers);
1656 EXPECT_EQ(string(tests[i].expected_headers), resulting_headers); 1656 EXPECT_EQ(string(tests[i].expected_headers), resulting_headers);
1657 } 1657 }
1658 } 1658 }
OLDNEW
« no previous file with comments | « net/http/http_network_transaction_unittest.cc ('k') | net/http/http_stream_parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698