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

Side by Side Diff: net/base/filter_unittest.cc

Issue 6516025: Remove GetInputStreamBufferSize() method from FilterContext. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add some sanity checks Created 9 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « net/base/filter.cc ('k') | net/base/gzip_filter.h » ('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-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 "net/base/filter.h" 5 #include "net/base/filter.h"
6 #include "net/base/mock_filter_context.h" 6 #include "net/base/mock_filter_context.h"
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 8
9 class FilterTest : public testing::Test { 9 class FilterTest : public testing::Test {
10 }; 10 };
(...skipping 17 matching lines...) Expand all
28 EXPECT_EQ(Filter::FILTER_TYPE_SDCH, 28 EXPECT_EQ(Filter::FILTER_TYPE_SDCH,
29 Filter::ConvertEncodingToType("sDcH")); 29 Filter::ConvertEncodingToType("sDcH"));
30 EXPECT_EQ(Filter::FILTER_TYPE_UNSUPPORTED, 30 EXPECT_EQ(Filter::FILTER_TYPE_UNSUPPORTED,
31 Filter::ConvertEncodingToType("weird")); 31 Filter::ConvertEncodingToType("weird"));
32 EXPECT_EQ(Filter::FILTER_TYPE_UNSUPPORTED, 32 EXPECT_EQ(Filter::FILTER_TYPE_UNSUPPORTED,
33 Filter::ConvertEncodingToType("strange")); 33 Filter::ConvertEncodingToType("strange"));
34 } 34 }
35 35
36 // Check various fixups that modify content encoding lists. 36 // Check various fixups that modify content encoding lists.
37 TEST(FilterTest, ApacheGzip) { 37 TEST(FilterTest, ApacheGzip) {
38 const int kInputBufferSize(100); 38 net::MockFilterContext filter_context;
39 net::MockFilterContext filter_context(kInputBufferSize);
40 filter_context.SetSdchResponse(false); 39 filter_context.SetSdchResponse(false);
41 40
42 // Check that redundant gzip mime type removes only solo gzip encoding. 41 // Check that redundant gzip mime type removes only solo gzip encoding.
43 const std::string kGzipMime1("application/x-gzip"); 42 const std::string kGzipMime1("application/x-gzip");
44 const std::string kGzipMime2("application/gzip"); 43 const std::string kGzipMime2("application/gzip");
45 const std::string kGzipMime3("application/x-gunzip"); 44 const std::string kGzipMime3("application/x-gunzip");
46 std::vector<Filter::FilterType> encoding_types; 45 std::vector<Filter::FilterType> encoding_types;
47 46
48 // First show it removes the gzip, given any gzip style mime type. 47 // First show it removes the gzip, given any gzip style mime type.
49 encoding_types.clear(); 48 encoding_types.clear();
(...skipping 27 matching lines...) Expand all
77 encoding_types.push_back(Filter::FILTER_TYPE_GZIP); 76 encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
78 filter_context.SetMimeType("other/mime"); 77 filter_context.SetMimeType("other/mime");
79 Filter::FixupEncodingTypes(filter_context, &encoding_types); 78 Filter::FixupEncodingTypes(filter_context, &encoding_types);
80 ASSERT_EQ(1U, encoding_types.size()); 79 ASSERT_EQ(1U, encoding_types.size());
81 EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front()); 80 EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
82 } 81 }
83 82
84 TEST(FilterTest, SdchEncoding) { 83 TEST(FilterTest, SdchEncoding) {
85 // Handle content encodings including SDCH. 84 // Handle content encodings including SDCH.
86 const std::string kTextHtmlMime("text/html"); 85 const std::string kTextHtmlMime("text/html");
87 const int kInputBufferSize(100); 86 net::MockFilterContext filter_context;
88 net::MockFilterContext filter_context(kInputBufferSize);
89 filter_context.SetSdchResponse(true); 87 filter_context.SetSdchResponse(true);
90 88
91 std::vector<Filter::FilterType> encoding_types; 89 std::vector<Filter::FilterType> encoding_types;
92 90
93 // Check for most common encoding, and verify it survives unchanged. 91 // Check for most common encoding, and verify it survives unchanged.
94 encoding_types.clear(); 92 encoding_types.clear();
95 encoding_types.push_back(Filter::FILTER_TYPE_SDCH); 93 encoding_types.push_back(Filter::FILTER_TYPE_SDCH);
96 encoding_types.push_back(Filter::FILTER_TYPE_GZIP); 94 encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
97 filter_context.SetMimeType(kTextHtmlMime); 95 filter_context.SetMimeType(kTextHtmlMime);
98 Filter::FixupEncodingTypes(filter_context, &encoding_types); 96 Filter::FixupEncodingTypes(filter_context, &encoding_types);
(...skipping 16 matching lines...) Expand all
115 encoding_types.push_back(Filter::FILTER_TYPE_SDCH); 113 encoding_types.push_back(Filter::FILTER_TYPE_SDCH);
116 Filter::FixupEncodingTypes(filter_context, &encoding_types); 114 Filter::FixupEncodingTypes(filter_context, &encoding_types);
117 ASSERT_EQ(2U, encoding_types.size()); 115 ASSERT_EQ(2U, encoding_types.size());
118 EXPECT_EQ(Filter::FILTER_TYPE_SDCH, encoding_types[0]); 116 EXPECT_EQ(Filter::FILTER_TYPE_SDCH, encoding_types[0]);
119 EXPECT_EQ(Filter::FILTER_TYPE_GZIP_HELPING_SDCH, encoding_types[1]); 117 EXPECT_EQ(Filter::FILTER_TYPE_GZIP_HELPING_SDCH, encoding_types[1]);
120 } 118 }
121 119
122 TEST(FilterTest, MissingSdchEncoding) { 120 TEST(FilterTest, MissingSdchEncoding) {
123 // Handle interesting case where entire SDCH encoding assertion "got lost." 121 // Handle interesting case where entire SDCH encoding assertion "got lost."
124 const std::string kTextHtmlMime("text/html"); 122 const std::string kTextHtmlMime("text/html");
125 const int kInputBufferSize(100); 123 net::MockFilterContext filter_context;
126 net::MockFilterContext filter_context(kInputBufferSize);
127 filter_context.SetSdchResponse(true); 124 filter_context.SetSdchResponse(true);
128 125
129 std::vector<Filter::FilterType> encoding_types; 126 std::vector<Filter::FilterType> encoding_types;
130 127
131 // Loss of encoding, but it was an SDCH response with html type. 128 // Loss of encoding, but it was an SDCH response with html type.
132 encoding_types.clear(); 129 encoding_types.clear();
133 filter_context.SetMimeType(kTextHtmlMime); 130 filter_context.SetMimeType(kTextHtmlMime);
134 Filter::FixupEncodingTypes(filter_context, &encoding_types); 131 Filter::FixupEncodingTypes(filter_context, &encoding_types);
135 ASSERT_EQ(2U, encoding_types.size()); 132 ASSERT_EQ(2U, encoding_types.size());
136 EXPECT_EQ(Filter::FILTER_TYPE_SDCH_POSSIBLE, encoding_types[0]); 133 EXPECT_EQ(Filter::FILTER_TYPE_SDCH_POSSIBLE, encoding_types[0]);
(...skipping 14 matching lines...) Expand all
151 // No encoding, but it was an SDCH response with non-html type. 148 // No encoding, but it was an SDCH response with non-html type.
152 encoding_types.clear(); 149 encoding_types.clear();
153 filter_context.SetMimeType("other/mime"); 150 filter_context.SetMimeType("other/mime");
154 Filter::FixupEncodingTypes(filter_context, &encoding_types); 151 Filter::FixupEncodingTypes(filter_context, &encoding_types);
155 ASSERT_EQ(2U, encoding_types.size()); 152 ASSERT_EQ(2U, encoding_types.size());
156 EXPECT_EQ(Filter::FILTER_TYPE_SDCH_POSSIBLE, encoding_types[0]); 153 EXPECT_EQ(Filter::FILTER_TYPE_SDCH_POSSIBLE, encoding_types[0]);
157 EXPECT_EQ(Filter::FILTER_TYPE_GZIP_HELPING_SDCH, encoding_types[1]); 154 EXPECT_EQ(Filter::FILTER_TYPE_GZIP_HELPING_SDCH, encoding_types[1]);
158 } 155 }
159 156
160 TEST(FilterTest, Svgz) { 157 TEST(FilterTest, Svgz) {
161 const int kInputBufferSize(100); 158 net::MockFilterContext filter_context;
162 net::MockFilterContext filter_context(kInputBufferSize);
163 159
164 // Check that svgz files are only decompressed when not downloading. 160 // Check that svgz files are only decompressed when not downloading.
165 const std::string kSvgzMime("image/svg+xml"); 161 const std::string kSvgzMime("image/svg+xml");
166 const std::string kSvgzUrl("http://ignore.com/foo.svgz"); 162 const std::string kSvgzUrl("http://ignore.com/foo.svgz");
167 const std::string kSvgUrl("http://ignore.com/foo.svg"); 163 const std::string kSvgUrl("http://ignore.com/foo.svg");
168 std::vector<Filter::FilterType> encoding_types; 164 std::vector<Filter::FilterType> encoding_types;
169 165
170 // Test svgz extension 166 // Test svgz extension
171 encoding_types.clear(); 167 encoding_types.clear();
172 encoding_types.push_back(Filter::FILTER_TYPE_GZIP); 168 encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
(...skipping 27 matching lines...) Expand all
200 filter_context.SetDownload(true); 196 filter_context.SetDownload(true);
201 filter_context.SetMimeType(kSvgzMime); 197 filter_context.SetMimeType(kSvgzMime);
202 filter_context.SetURL(GURL(kSvgUrl)); 198 filter_context.SetURL(GURL(kSvgUrl));
203 Filter::FixupEncodingTypes(filter_context, &encoding_types); 199 Filter::FixupEncodingTypes(filter_context, &encoding_types);
204 ASSERT_EQ(1U, encoding_types.size()); 200 ASSERT_EQ(1U, encoding_types.size());
205 EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front()); 201 EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
206 } 202 }
207 203
208 TEST(FilterTest, UnsupportedMimeGzip) { 204 TEST(FilterTest, UnsupportedMimeGzip) {
209 // From issue 8170 - handling files with Content-Encoding: x-gzip 205 // From issue 8170 - handling files with Content-Encoding: x-gzip
210 const int kInputBufferSize(100); 206 net::MockFilterContext filter_context;
211 net::MockFilterContext filter_context(kInputBufferSize);
212 std::vector<Filter::FilterType> encoding_types; 207 std::vector<Filter::FilterType> encoding_types;
213 const std::string kTarMime("application/x-tar"); 208 const std::string kTarMime("application/x-tar");
214 const std::string kCpioMime("application/x-cpio"); 209 const std::string kCpioMime("application/x-cpio");
215 const std::string kTarUrl("http://ignore.com/foo.tar"); 210 const std::string kTarUrl("http://ignore.com/foo.tar");
216 const std::string kTargzUrl("http://ignore.com/foo.tar.gz"); 211 const std::string kTargzUrl("http://ignore.com/foo.tar.gz");
217 const std::string kTgzUrl("http://ignore.com/foo.tgz"); 212 const std::string kTgzUrl("http://ignore.com/foo.tgz");
218 const std::string kBadTgzUrl("http://ignore.com/foo.targz"); 213 const std::string kBadTgzUrl("http://ignore.com/foo.targz");
219 const std::string kUrl("http://ignore.com/foo"); 214 const std::string kUrl("http://ignore.com/foo");
220 215
221 // Firefox 3 does not decompress when we have unsupported mime types for 216 // Firefox 3 does not decompress when we have unsupported mime types for
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 filter_context.SetMimeType(kTarMime); 283 filter_context.SetMimeType(kTarMime);
289 filter_context.SetURL(GURL(kBadTgzUrl)); 284 filter_context.SetURL(GURL(kBadTgzUrl));
290 Filter::FixupEncodingTypes(filter_context, &encoding_types); 285 Filter::FixupEncodingTypes(filter_context, &encoding_types);
291 ASSERT_EQ(1U, encoding_types.size()); 286 ASSERT_EQ(1U, encoding_types.size());
292 EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front()); 287 EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
293 } 288 }
294 289
295 TEST(FilterTest, SupportedMimeGzip) { 290 TEST(FilterTest, SupportedMimeGzip) {
296 // From issue 16430 - Files with supported mime types should be decompressed, 291 // From issue 16430 - Files with supported mime types should be decompressed,
297 // even though these files end in .gz/.tgz. 292 // even though these files end in .gz/.tgz.
298 const int kInputBufferSize(100); 293 net::MockFilterContext filter_context;
299 net::MockFilterContext filter_context(kInputBufferSize);
300 std::vector<Filter::FilterType> encoding_types; 294 std::vector<Filter::FilterType> encoding_types;
301 const std::string kGzUrl("http://ignore.com/foo.gz"); 295 const std::string kGzUrl("http://ignore.com/foo.gz");
302 const std::string kUrl("http://ignore.com/foo"); 296 const std::string kUrl("http://ignore.com/foo");
303 const std::string kHtmlMime("text/html"); 297 const std::string kHtmlMime("text/html");
304 const std::string kJavascriptMime("text/javascript"); 298 const std::string kJavascriptMime("text/javascript");
305 299
306 // For files that does not end in .gz/.tgz, we always decompress. 300 // For files that does not end in .gz/.tgz, we always decompress.
307 encoding_types.clear(); 301 encoding_types.clear();
308 encoding_types.push_back(Filter::FILTER_TYPE_GZIP); 302 encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
309 filter_context.SetDownload(false); 303 filter_context.SetDownload(false);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 337
344 // Except on downloads, where they just get saved. 338 // Except on downloads, where they just get saved.
345 encoding_types.clear(); 339 encoding_types.clear();
346 encoding_types.push_back(Filter::FILTER_TYPE_GZIP); 340 encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
347 filter_context.SetDownload(true); 341 filter_context.SetDownload(true);
348 filter_context.SetMimeType(kHtmlMime); 342 filter_context.SetMimeType(kHtmlMime);
349 filter_context.SetURL(GURL(kGzUrl)); 343 filter_context.SetURL(GURL(kGzUrl));
350 Filter::FixupEncodingTypes(filter_context, &encoding_types); 344 Filter::FixupEncodingTypes(filter_context, &encoding_types);
351 EXPECT_TRUE(encoding_types.empty()); 345 EXPECT_TRUE(encoding_types.empty());
352 } 346 }
OLDNEW
« no previous file with comments | « net/base/filter.cc ('k') | net/base/gzip_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698