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

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

Issue 6264013: Clean up net unit testing code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Re-virtualize TestDelegate::OnResponseCompleted Created 9 years, 10 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
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/filter_unittest.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 };
11 11
12 TEST(FilterTest, ContentTypeId) { 12 TEST(FilterTest, ContentTypeId) {
13 // Check for basic translation of Content-Encoding, including case variations. 13 // Check for basic translation of Content-Encoding, including case variations.
14 EXPECT_EQ(Filter::FILTER_TYPE_DEFLATE, 14 EXPECT_EQ(Filter::FILTER_TYPE_DEFLATE,
15 Filter::ConvertEncodingToType("deflate")); 15 Filter::ConvertEncodingToType("deflate"));
16 EXPECT_EQ(Filter::FILTER_TYPE_DEFLATE, 16 EXPECT_EQ(Filter::FILTER_TYPE_DEFLATE,
(...skipping 12 matching lines...) Expand all
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 const int kInputBufferSize(100);
39 MockFilterContext filter_context(kInputBufferSize); 39 net::MockFilterContext filter_context(kInputBufferSize);
40 filter_context.SetSdchResponse(false); 40 filter_context.SetSdchResponse(false);
41 41
42 // Check that redundant gzip mime type removes only solo gzip encoding. 42 // Check that redundant gzip mime type removes only solo gzip encoding.
43 const std::string kGzipMime1("application/x-gzip"); 43 const std::string kGzipMime1("application/x-gzip");
44 const std::string kGzipMime2("application/gzip"); 44 const std::string kGzipMime2("application/gzip");
45 const std::string kGzipMime3("application/x-gunzip"); 45 const std::string kGzipMime3("application/x-gunzip");
46 std::vector<Filter::FilterType> encoding_types; 46 std::vector<Filter::FilterType> encoding_types;
47 47
48 // First show it removes the gzip, given any gzip style mime type. 48 // First show it removes the gzip, given any gzip style mime type.
49 encoding_types.clear(); 49 encoding_types.clear();
(...skipping 28 matching lines...) Expand all
78 filter_context.SetMimeType("other/mime"); 78 filter_context.SetMimeType("other/mime");
79 Filter::FixupEncodingTypes(filter_context, &encoding_types); 79 Filter::FixupEncodingTypes(filter_context, &encoding_types);
80 ASSERT_EQ(1U, encoding_types.size()); 80 ASSERT_EQ(1U, encoding_types.size());
81 EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front()); 81 EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
82 } 82 }
83 83
84 TEST(FilterTest, SdchEncoding) { 84 TEST(FilterTest, SdchEncoding) {
85 // Handle content encodings including SDCH. 85 // Handle content encodings including SDCH.
86 const std::string kTextHtmlMime("text/html"); 86 const std::string kTextHtmlMime("text/html");
87 const int kInputBufferSize(100); 87 const int kInputBufferSize(100);
88 MockFilterContext filter_context(kInputBufferSize); 88 net::MockFilterContext filter_context(kInputBufferSize);
89 filter_context.SetSdchResponse(true); 89 filter_context.SetSdchResponse(true);
90 90
91 std::vector<Filter::FilterType> encoding_types; 91 std::vector<Filter::FilterType> encoding_types;
92 92
93 // Check for most common encoding, and verify it survives unchanged. 93 // Check for most common encoding, and verify it survives unchanged.
94 encoding_types.clear(); 94 encoding_types.clear();
95 encoding_types.push_back(Filter::FILTER_TYPE_SDCH); 95 encoding_types.push_back(Filter::FILTER_TYPE_SDCH);
96 encoding_types.push_back(Filter::FILTER_TYPE_GZIP); 96 encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
97 filter_context.SetMimeType(kTextHtmlMime); 97 filter_context.SetMimeType(kTextHtmlMime);
98 Filter::FixupEncodingTypes(filter_context, &encoding_types); 98 Filter::FixupEncodingTypes(filter_context, &encoding_types);
(...skipping 17 matching lines...) Expand all
116 Filter::FixupEncodingTypes(filter_context, &encoding_types); 116 Filter::FixupEncodingTypes(filter_context, &encoding_types);
117 ASSERT_EQ(2U, encoding_types.size()); 117 ASSERT_EQ(2U, encoding_types.size());
118 EXPECT_EQ(Filter::FILTER_TYPE_SDCH, encoding_types[0]); 118 EXPECT_EQ(Filter::FILTER_TYPE_SDCH, encoding_types[0]);
119 EXPECT_EQ(Filter::FILTER_TYPE_GZIP_HELPING_SDCH, encoding_types[1]); 119 EXPECT_EQ(Filter::FILTER_TYPE_GZIP_HELPING_SDCH, encoding_types[1]);
120 } 120 }
121 121
122 TEST(FilterTest, MissingSdchEncoding) { 122 TEST(FilterTest, MissingSdchEncoding) {
123 // Handle interesting case where entire SDCH encoding assertion "got lost." 123 // Handle interesting case where entire SDCH encoding assertion "got lost."
124 const std::string kTextHtmlMime("text/html"); 124 const std::string kTextHtmlMime("text/html");
125 const int kInputBufferSize(100); 125 const int kInputBufferSize(100);
126 MockFilterContext filter_context(kInputBufferSize); 126 net::MockFilterContext filter_context(kInputBufferSize);
127 filter_context.SetSdchResponse(true); 127 filter_context.SetSdchResponse(true);
128 128
129 std::vector<Filter::FilterType> encoding_types; 129 std::vector<Filter::FilterType> encoding_types;
130 130
131 // Loss of encoding, but it was an SDCH response with html type. 131 // Loss of encoding, but it was an SDCH response with html type.
132 encoding_types.clear(); 132 encoding_types.clear();
133 filter_context.SetMimeType(kTextHtmlMime); 133 filter_context.SetMimeType(kTextHtmlMime);
134 Filter::FixupEncodingTypes(filter_context, &encoding_types); 134 Filter::FixupEncodingTypes(filter_context, &encoding_types);
135 ASSERT_EQ(2U, encoding_types.size()); 135 ASSERT_EQ(2U, encoding_types.size());
136 EXPECT_EQ(Filter::FILTER_TYPE_SDCH_POSSIBLE, encoding_types[0]); 136 EXPECT_EQ(Filter::FILTER_TYPE_SDCH_POSSIBLE, encoding_types[0]);
(...skipping 15 matching lines...) Expand all
152 encoding_types.clear(); 152 encoding_types.clear();
153 filter_context.SetMimeType("other/mime"); 153 filter_context.SetMimeType("other/mime");
154 Filter::FixupEncodingTypes(filter_context, &encoding_types); 154 Filter::FixupEncodingTypes(filter_context, &encoding_types);
155 ASSERT_EQ(2U, encoding_types.size()); 155 ASSERT_EQ(2U, encoding_types.size());
156 EXPECT_EQ(Filter::FILTER_TYPE_SDCH_POSSIBLE, encoding_types[0]); 156 EXPECT_EQ(Filter::FILTER_TYPE_SDCH_POSSIBLE, encoding_types[0]);
157 EXPECT_EQ(Filter::FILTER_TYPE_GZIP_HELPING_SDCH, encoding_types[1]); 157 EXPECT_EQ(Filter::FILTER_TYPE_GZIP_HELPING_SDCH, encoding_types[1]);
158 } 158 }
159 159
160 TEST(FilterTest, Svgz) { 160 TEST(FilterTest, Svgz) {
161 const int kInputBufferSize(100); 161 const int kInputBufferSize(100);
162 MockFilterContext filter_context(kInputBufferSize); 162 net::MockFilterContext filter_context(kInputBufferSize);
163 163
164 // Check that svgz files are only decompressed when not downloading. 164 // Check that svgz files are only decompressed when not downloading.
165 const std::string kSvgzMime("image/svg+xml"); 165 const std::string kSvgzMime("image/svg+xml");
166 const std::string kSvgzUrl("http://ignore.com/foo.svgz"); 166 const std::string kSvgzUrl("http://ignore.com/foo.svgz");
167 const std::string kSvgUrl("http://ignore.com/foo.svg"); 167 const std::string kSvgUrl("http://ignore.com/foo.svg");
168 std::vector<Filter::FilterType> encoding_types; 168 std::vector<Filter::FilterType> encoding_types;
169 169
170 // Test svgz extension 170 // Test svgz extension
171 encoding_types.clear(); 171 encoding_types.clear();
172 encoding_types.push_back(Filter::FILTER_TYPE_GZIP); 172 encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
(...skipping 28 matching lines...) Expand all
201 filter_context.SetMimeType(kSvgzMime); 201 filter_context.SetMimeType(kSvgzMime);
202 filter_context.SetURL(GURL(kSvgUrl)); 202 filter_context.SetURL(GURL(kSvgUrl));
203 Filter::FixupEncodingTypes(filter_context, &encoding_types); 203 Filter::FixupEncodingTypes(filter_context, &encoding_types);
204 ASSERT_EQ(1U, encoding_types.size()); 204 ASSERT_EQ(1U, encoding_types.size());
205 EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front()); 205 EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
206 } 206 }
207 207
208 TEST(FilterTest, UnsupportedMimeGzip) { 208 TEST(FilterTest, UnsupportedMimeGzip) {
209 // From issue 8170 - handling files with Content-Encoding: x-gzip 209 // From issue 8170 - handling files with Content-Encoding: x-gzip
210 const int kInputBufferSize(100); 210 const int kInputBufferSize(100);
211 MockFilterContext filter_context(kInputBufferSize); 211 net::MockFilterContext filter_context(kInputBufferSize);
212 std::vector<Filter::FilterType> encoding_types; 212 std::vector<Filter::FilterType> encoding_types;
213 const std::string kTarMime("application/x-tar"); 213 const std::string kTarMime("application/x-tar");
214 const std::string kCpioMime("application/x-cpio"); 214 const std::string kCpioMime("application/x-cpio");
215 const std::string kTarUrl("http://ignore.com/foo.tar"); 215 const std::string kTarUrl("http://ignore.com/foo.tar");
216 const std::string kTargzUrl("http://ignore.com/foo.tar.gz"); 216 const std::string kTargzUrl("http://ignore.com/foo.tar.gz");
217 const std::string kTgzUrl("http://ignore.com/foo.tgz"); 217 const std::string kTgzUrl("http://ignore.com/foo.tgz");
218 const std::string kBadTgzUrl("http://ignore.com/foo.targz"); 218 const std::string kBadTgzUrl("http://ignore.com/foo.targz");
219 const std::string kUrl("http://ignore.com/foo"); 219 const std::string kUrl("http://ignore.com/foo");
220 220
221 // Firefox 3 does not decompress when we have unsupported mime types for 221 // Firefox 3 does not decompress when we have unsupported mime types for
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 filter_context.SetURL(GURL(kBadTgzUrl)); 289 filter_context.SetURL(GURL(kBadTgzUrl));
290 Filter::FixupEncodingTypes(filter_context, &encoding_types); 290 Filter::FixupEncodingTypes(filter_context, &encoding_types);
291 ASSERT_EQ(1U, encoding_types.size()); 291 ASSERT_EQ(1U, encoding_types.size());
292 EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front()); 292 EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
293 } 293 }
294 294
295 TEST(FilterTest, SupportedMimeGzip) { 295 TEST(FilterTest, SupportedMimeGzip) {
296 // From issue 16430 - Files with supported mime types should be decompressed, 296 // From issue 16430 - Files with supported mime types should be decompressed,
297 // even though these files end in .gz/.tgz. 297 // even though these files end in .gz/.tgz.
298 const int kInputBufferSize(100); 298 const int kInputBufferSize(100);
299 MockFilterContext filter_context(kInputBufferSize); 299 net::MockFilterContext filter_context(kInputBufferSize);
300 std::vector<Filter::FilterType> encoding_types; 300 std::vector<Filter::FilterType> encoding_types;
301 const std::string kGzUrl("http://ignore.com/foo.gz"); 301 const std::string kGzUrl("http://ignore.com/foo.gz");
302 const std::string kUrl("http://ignore.com/foo"); 302 const std::string kUrl("http://ignore.com/foo");
303 const std::string kHtmlMime("text/html"); 303 const std::string kHtmlMime("text/html");
304 const std::string kJavascriptMime("text/javascript"); 304 const std::string kJavascriptMime("text/javascript");
305 305
306 // For files that does not end in .gz/.tgz, we always decompress. 306 // For files that does not end in .gz/.tgz, we always decompress.
307 encoding_types.clear(); 307 encoding_types.clear();
308 encoding_types.push_back(Filter::FILTER_TYPE_GZIP); 308 encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
309 filter_context.SetDownload(false); 309 filter_context.SetDownload(false);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 343
344 // Except on downloads, where they just get saved. 344 // Except on downloads, where they just get saved.
345 encoding_types.clear(); 345 encoding_types.clear();
346 encoding_types.push_back(Filter::FILTER_TYPE_GZIP); 346 encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
347 filter_context.SetDownload(true); 347 filter_context.SetDownload(true);
348 filter_context.SetMimeType(kHtmlMime); 348 filter_context.SetMimeType(kHtmlMime);
349 filter_context.SetURL(GURL(kGzUrl)); 349 filter_context.SetURL(GURL(kGzUrl));
350 Filter::FixupEncodingTypes(filter_context, &encoding_types); 350 Filter::FixupEncodingTypes(filter_context, &encoding_types);
351 EXPECT_TRUE(encoding_types.empty()); 351 EXPECT_TRUE(encoding_types.empty());
352 } 352 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698