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

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

Issue 2608563002: Remove some dead code for operating on headers-as-a-string. (Closed)
Patch Set: Created 3 years, 11 months 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
« net/http/http_util.h ('K') | « net/http/http_util.cc ('k') | no next file » | 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include <limits> 6 #include <limits>
7 7
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "net/http/http_util.h" 9 #include "net/http/http_util.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 { "foo: 1\r\nbar: 2", "foo", true }, 113 { "foo: 1\r\nbar: 2", "foo", true },
114 { "fOO: 1\r\nbar: 2", "foo", true }, 114 { "fOO: 1\r\nbar: 2", "foo", true },
115 { "g: 0\r\nfoo: 1\r\nbar: 2", "foo", true }, 115 { "g: 0\r\nfoo: 1\r\nbar: 2", "foo", true },
116 }; 116 };
117 for (size_t i = 0; i < arraysize(tests); ++i) { 117 for (size_t i = 0; i < arraysize(tests); ++i) {
118 bool result = HttpUtil::HasHeader(tests[i].headers, tests[i].name); 118 bool result = HttpUtil::HasHeader(tests[i].headers, tests[i].name);
119 EXPECT_EQ(tests[i].expected_result, result); 119 EXPECT_EQ(tests[i].expected_result, result);
120 } 120 }
121 } 121 }
122 122
123 TEST(HttpUtilTest, StripHeaders) {
124 static const char* const headers =
125 "Origin: origin\r\n"
126 "Content-Type: text/plain\r\n"
127 "Cookies: foo1\r\n"
128 "Custom: baz\r\n"
129 "COOKIES: foo2\r\n"
130 "Server: Apache\r\n"
131 "OrIGin: origin2\r\n";
132
133 static const char* const header_names[] = {
134 "origin", "content-type", "cookies"
135 };
136
137 static const char* const expected_stripped_headers =
138 "Custom: baz\r\n"
139 "Server: Apache\r\n";
140
141 EXPECT_EQ(expected_stripped_headers,
142 HttpUtil::StripHeaders(headers, header_names,
143 arraysize(header_names)));
144 }
145
146 TEST(HttpUtilTest, HeadersIterator) { 123 TEST(HttpUtilTest, HeadersIterator) {
147 std::string headers = "foo: 1\t\r\nbar: hello world\r\nbaz: 3 \r\n"; 124 std::string headers = "foo: 1\t\r\nbar: hello world\r\nbaz: 3 \r\n";
148 125
149 HttpUtil::HeadersIterator it(headers.begin(), headers.end(), "\r\n"); 126 HttpUtil::HeadersIterator it(headers.begin(), headers.end(), "\r\n");
150 127
151 ASSERT_TRUE(it.GetNext()); 128 ASSERT_TRUE(it.GetNext());
152 EXPECT_EQ(std::string("foo"), it.name()); 129 EXPECT_EQ(std::string("foo"), it.name());
153 EXPECT_EQ(std::string("1"), it.values()); 130 EXPECT_EQ(std::string("1"), it.values());
154 131
155 ASSERT_TRUE(it.GetNext()); 132 ASSERT_TRUE(it.GetNext());
(...skipping 681 matching lines...) Expand 10 before | Expand all | Expand 10 after
837 std::string boundary; 814 std::string boundary;
838 HttpUtil::ParseContentType(tests[i].content_type, &mime_type, &charset, 815 HttpUtil::ParseContentType(tests[i].content_type, &mime_type, &charset,
839 &had_charset, &boundary); 816 &had_charset, &boundary);
840 EXPECT_EQ(tests[i].expected_mime_type, mime_type) << "i=" << i; 817 EXPECT_EQ(tests[i].expected_mime_type, mime_type) << "i=" << i;
841 EXPECT_EQ(tests[i].expected_charset, charset) << "i=" << i; 818 EXPECT_EQ(tests[i].expected_charset, charset) << "i=" << i;
842 EXPECT_EQ(tests[i].expected_had_charset, had_charset) << "i=" << i; 819 EXPECT_EQ(tests[i].expected_had_charset, had_charset) << "i=" << i;
843 EXPECT_EQ(tests[i].expected_boundary, boundary) << "i=" << i; 820 EXPECT_EQ(tests[i].expected_boundary, boundary) << "i=" << i;
844 } 821 }
845 } 822 }
846 823
847 TEST(HttpUtilTest, ParseRanges) {
848 const struct {
849 const char* const headers;
850 bool expected_return_value;
851 size_t expected_ranges_size;
852 const struct {
853 int64_t expected_first_byte_position;
854 int64_t expected_last_byte_position;
855 int64_t expected_suffix_length;
856 } expected_ranges[10];
857 } tests[] = {
858 { "Range: bytes=0-10",
859 true,
860 1,
861 { {0, 10, -1}, }
862 },
863 { "Range: bytes=10-0",
864 false,
865 0,
866 {}
867 },
868 { "Range: BytES=0-10",
869 true,
870 1,
871 { {0, 10, -1}, }
872 },
873 { "Range: megabytes=0-10",
874 false,
875 0,
876 {}
877 },
878 { "Range: bytes0-10",
879 false,
880 0,
881 {}
882 },
883 { "Range: bytes=0-0,0-10,10-20,100-200,100-,-200",
884 true,
885 6,
886 { {0, 0, -1},
887 {0, 10, -1},
888 {10, 20, -1},
889 {100, 200, -1},
890 {100, -1, -1},
891 {-1, -1, 200},
892 }
893 },
894 { "Range: bytes=0-10\r\n"
895 "Range: bytes=0-10,10-20,100-200,100-,-200",
896 true,
897 1,
898 { {0, 10, -1}
899 }
900 },
901 { "Range: bytes=",
902 false,
903 0,
904 {}
905 },
906 { "Range: bytes=-",
907 false,
908 0,
909 {}
910 },
911 { "Range: bytes=0-10-",
912 false,
913 0,
914 {}
915 },
916 { "Range: bytes=-0-10",
917 false,
918 0,
919 {}
920 },
921 { "Range: bytes =0-10\r\n",
922 true,
923 1,
924 { {0, 10, -1}
925 }
926 },
927 { "Range: bytes= 0-10 \r\n",
928 true,
929 1,
930 { {0, 10, -1}
931 }
932 },
933 { "Range: bytes = 0 - 10 \r\n",
934 true,
935 1,
936 { {0, 10, -1}
937 }
938 },
939 { "Range: bytes= 0-1 0\r\n",
940 false,
941 0,
942 {}
943 },
944 { "Range: bytes= 0- -10\r\n",
945 false,
946 0,
947 {}
948 },
949 { "Range: bytes= 0 - 1 , 10 -20, 100- 200 , 100-, -200 \r\n",
950 true,
951 5,
952 { {0, 1, -1},
953 {10, 20, -1},
954 {100, 200, -1},
955 {100, -1, -1},
956 {-1, -1, 200},
957 }
958 },
959 };
960
961 for (size_t i = 0; i < arraysize(tests); ++i) {
962 std::vector<HttpByteRange> ranges;
963 bool return_value = HttpUtil::ParseRanges(std::string(tests[i].headers),
964 &ranges);
965 EXPECT_EQ(tests[i].expected_return_value, return_value);
966 if (return_value) {
967 EXPECT_EQ(tests[i].expected_ranges_size, ranges.size());
968 for (size_t j = 0; j < ranges.size(); ++j) {
969 EXPECT_EQ(tests[i].expected_ranges[j].expected_first_byte_position,
970 ranges[j].first_byte_position());
971 EXPECT_EQ(tests[i].expected_ranges[j].expected_last_byte_position,
972 ranges[j].last_byte_position());
973 EXPECT_EQ(tests[i].expected_ranges[j].expected_suffix_length,
974 ranges[j].suffix_length());
975 }
976 }
977 }
978 }
979
980 TEST(HttpUtilTest, ParseContentRangeHeader) { 824 TEST(HttpUtilTest, ParseContentRangeHeader) {
981 const struct { 825 const struct {
982 const char* const content_range_header_spec; 826 const char* const content_range_header_spec;
983 bool expected_return_value; 827 bool expected_return_value;
984 int64_t expected_first_byte_position; 828 int64_t expected_first_byte_position;
985 int64_t expected_last_byte_position; 829 int64_t expected_last_byte_position;
986 int64_t expected_instance_length; 830 int64_t expected_instance_length;
987 } tests[] = { 831 } tests[] = {
988 {"", false, -1, -1, -1}, 832 {"", false, -1, -1, -1},
989 {"megabytes 0-10/50", false, -1, -1, -1}, 833 {"megabytes 0-10/50", false, -1, -1, -1},
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after
1493 EXPECT_FALSE(HttpUtil::IsLWS('a')); 1337 EXPECT_FALSE(HttpUtil::IsLWS('a'));
1494 EXPECT_FALSE(HttpUtil::IsLWS('.')); 1338 EXPECT_FALSE(HttpUtil::IsLWS('.'));
1495 EXPECT_FALSE(HttpUtil::IsLWS('\n')); 1339 EXPECT_FALSE(HttpUtil::IsLWS('\n'));
1496 EXPECT_FALSE(HttpUtil::IsLWS('\r')); 1340 EXPECT_FALSE(HttpUtil::IsLWS('\r'));
1497 1341
1498 EXPECT_TRUE(HttpUtil::IsLWS('\t')); 1342 EXPECT_TRUE(HttpUtil::IsLWS('\t'));
1499 EXPECT_TRUE(HttpUtil::IsLWS(' ')); 1343 EXPECT_TRUE(HttpUtil::IsLWS(' '));
1500 } 1344 }
1501 1345
1502 } // namespace net 1346 } // namespace net
OLDNEW
« net/http/http_util.h ('K') | « net/http/http_util.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698