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

Unified Diff: net/filter/filter_unittest.cc

Issue 1008873006: [net] Remove logic for fixing up Gzip encoding type for downloads. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 side-by-side diff with in-line comments
Download patch
Index: net/filter/filter_unittest.cc
diff --git a/net/filter/filter_unittest.cc b/net/filter/filter_unittest.cc
index fcedeaf3bc40de1d4c9233d7e44e2e84313d8c50..cec25d31bed51ff4dfbf95d58479af9c66016292 100644
--- a/net/filter/filter_unittest.cc
+++ b/net/filter/filter_unittest.cc
@@ -48,70 +48,6 @@ TEST(FilterTest, ContentTypeId) {
Filter::ConvertEncodingToType("strange"));
}
-// Check various fixups that modify content encoding lists.
-TEST(FilterTest, ApacheGzip) {
- MockFilterContext filter_context;
- filter_context.SetSdchResponse(NULL);
-
- // Check that redundant gzip mime type removes only solo gzip encoding.
- const std::string kGzipMime1("application/x-gzip");
- const std::string kGzipMime2("application/gzip");
- const std::string kGzipMime3("application/x-gunzip");
- std::vector<Filter::FilterType> encoding_types;
-
- // First show it removes the gzip, given any gzip style mime type.
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetMimeType(kGzipMime1);
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- EXPECT_TRUE(encoding_types.empty());
-
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetMimeType(kGzipMime2);
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- EXPECT_TRUE(encoding_types.empty());
-
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetMimeType(kGzipMime3);
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- EXPECT_TRUE(encoding_types.empty());
-
- // Check to be sure it doesn't remove everything when it has such a type.
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_SDCH);
- filter_context.SetMimeType(kGzipMime1);
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- ASSERT_EQ(1U, encoding_types.size());
- EXPECT_EQ(Filter::FILTER_TYPE_SDCH, encoding_types.front());
-
- // Check to be sure that gzip can survive with other mime types.
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetMimeType("other/mime");
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- ASSERT_EQ(1U, encoding_types.size());
- EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
-}
-
-TEST(FilterTest, GzipContentDispositionFilename) {
- MockFilterContext filter_context;
- filter_context.SetSdchResponse(NULL);
-
- const std::string kGzipMime("application/x-tar");
- const std::string kContentDisposition("attachment; filename=\"foo.tgz\"");
- const std::string kURL("http://foo.com/getfoo.php");
- std::vector<Filter::FilterType> encoding_types;
-
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetMimeType(kGzipMime);
- filter_context.SetURL(GURL(kURL));
- filter_context.SetContentDisposition(kContentDisposition);
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- ASSERT_EQ(0U, encoding_types.size());
-}
-
TEST(FilterTest, SdchEncoding) {
// Handle content encodings including SDCH.
const std::string kTextHtmlMime("text/html");
@@ -189,197 +125,6 @@ TEST(FilterTest, MissingSdchEncoding) {
EXPECT_EQ(Filter::FILTER_TYPE_GZIP_HELPING_SDCH, encoding_types[1]);
}
-TEST(FilterTest, Svgz) {
- MockFilterContext filter_context;
-
- // Check that svgz files are only decompressed when not downloading.
- const std::string kSvgzMime("image/svg+xml");
- const std::string kSvgzUrl("http://ignore.com/foo.svgz");
- const std::string kSvgUrl("http://ignore.com/foo.svg");
- std::vector<Filter::FilterType> encoding_types;
-
- // Test svgz extension
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetDownload(false);
- filter_context.SetMimeType(kSvgzMime);
- filter_context.SetURL(GURL(kSvgzUrl));
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- ASSERT_EQ(1U, encoding_types.size());
- EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
-
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetDownload(true);
- filter_context.SetMimeType(kSvgzMime);
- filter_context.SetURL(GURL(kSvgzUrl));
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- EXPECT_TRUE(encoding_types.empty());
-
- // Test svg extension
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetDownload(false);
- filter_context.SetMimeType(kSvgzMime);
- filter_context.SetURL(GURL(kSvgUrl));
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- ASSERT_EQ(1U, encoding_types.size());
- EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
-
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetDownload(true);
- filter_context.SetMimeType(kSvgzMime);
- filter_context.SetURL(GURL(kSvgUrl));
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- ASSERT_EQ(1U, encoding_types.size());
- EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
-}
-
-TEST(FilterTest, UnsupportedMimeGzip) {
- // From issue 8170 - handling files with Content-Encoding: x-gzip
- MockFilterContext filter_context;
- std::vector<Filter::FilterType> encoding_types;
- const std::string kTarMime("application/x-tar");
- const std::string kCpioMime("application/x-cpio");
- const std::string kTarUrl("http://ignore.com/foo.tar");
- const std::string kTargzUrl("http://ignore.com/foo.tar.gz");
- const std::string kTgzUrl("http://ignore.com/foo.tgz");
- const std::string kBadTgzUrl("http://ignore.com/foo.targz");
- const std::string kUrl("http://ignore.com/foo");
-
- // Firefox 3 does not decompress when we have unsupported mime types for
- // certain filenames.
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetDownload(false);
- filter_context.SetMimeType(kTarMime);
- filter_context.SetURL(GURL(kTargzUrl));
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- EXPECT_TRUE(encoding_types.empty());
-
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetDownload(false);
- filter_context.SetMimeType(kTarMime);
- filter_context.SetURL(GURL(kTgzUrl));
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- EXPECT_TRUE(encoding_types.empty());
-
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetDownload(false);
- filter_context.SetMimeType(kCpioMime);
- filter_context.SetURL(GURL(kTgzUrl));
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- EXPECT_TRUE(encoding_types.empty());
-
- // Same behavior for downloads.
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetDownload(true);
- filter_context.SetMimeType(kCpioMime);
- filter_context.SetURL(GURL(kTgzUrl));
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- EXPECT_TRUE(encoding_types.empty());
-
- // Unsupported mime type with wrong file name, decompressed.
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetDownload(false);
- filter_context.SetMimeType(kTarMime);
- filter_context.SetURL(GURL(kUrl));
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- ASSERT_EQ(1U, encoding_types.size());
- EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
-
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetDownload(false);
- filter_context.SetMimeType(kTarMime);
- filter_context.SetURL(GURL(kTarUrl));
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- ASSERT_EQ(1U, encoding_types.size());
- EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
-
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetDownload(false);
- filter_context.SetMimeType(kTarMime);
- filter_context.SetURL(GURL(kBadTgzUrl));
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- ASSERT_EQ(1U, encoding_types.size());
- EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
-
- // Same behavior for downloads.
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetDownload(true);
- filter_context.SetMimeType(kTarMime);
- filter_context.SetURL(GURL(kBadTgzUrl));
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- ASSERT_EQ(1U, encoding_types.size());
- EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
-}
-
-TEST(FilterTest, SupportedMimeGzip) {
- // From issue 16430 - Files with supported mime types should be decompressed,
- // even though these files end in .gz/.tgz.
- MockFilterContext filter_context;
- std::vector<Filter::FilterType> encoding_types;
- const std::string kGzUrl("http://ignore.com/foo.gz");
- const std::string kUrl("http://ignore.com/foo");
- const std::string kHtmlMime("text/html");
- const std::string kJavascriptMime("text/javascript");
-
- // For files that does not end in .gz/.tgz, we always decompress.
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetDownload(false);
- filter_context.SetMimeType(kHtmlMime);
- filter_context.SetURL(GURL(kUrl));
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- ASSERT_EQ(1U, encoding_types.size());
- EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
-
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetDownload(true);
- filter_context.SetMimeType(kHtmlMime);
- filter_context.SetURL(GURL(kUrl));
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- ASSERT_EQ(1U, encoding_types.size());
- EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
-
- // And also decompress files that end in .gz/.tgz.
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetDownload(false);
- filter_context.SetMimeType(kHtmlMime);
- filter_context.SetURL(GURL(kGzUrl));
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- ASSERT_EQ(1U, encoding_types.size());
- EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
-
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetDownload(false);
- filter_context.SetMimeType(kJavascriptMime);
- filter_context.SetURL(GURL(kGzUrl));
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- ASSERT_EQ(1U, encoding_types.size());
- EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
-
- // Except on downloads, where they just get saved.
- encoding_types.clear();
- encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- filter_context.SetDownload(true);
- filter_context.SetMimeType(kHtmlMime);
- filter_context.SetURL(GURL(kGzUrl));
- Filter::FixupEncodingTypes(filter_context, &encoding_types);
- EXPECT_TRUE(encoding_types.empty());
-}
-
// Make sure a series of three pass-through filters copies the data cleanly.
// Regression test for http://crbug.com/418975.
TEST(FilterTest, ThreeFilterChain) {

Powered by Google App Engine
This is Rietveld 408576698