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

Unified Diff: net/base/filter_unittest.cc

Issue 40319: Use filter context to track stats better in SDCH filtering (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 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
« no previous file with comments | « net/base/filter_unittest.h ('k') | net/base/sdch_filter.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/base/filter_unittest.cc
===================================================================
--- net/base/filter_unittest.cc (revision 11636)
+++ net/base/filter_unittest.cc (working copy)
@@ -3,6 +3,7 @@
// found in the LICENSE file.
#include "net/base/filter.h"
+#include "net/base/filter_unittest.h"
#include "testing/gtest/include/gtest/gtest.h"
class FilterTest : public testing::Test {
@@ -42,8 +43,11 @@
// Check various fixups that modify content encoding lists.
TEST(FilterTest, ApacheGzip) {
+ const int kInputBufferSize(100);
+ MockFilterContext filter_context(kInputBufferSize);
+ filter_context.SetSdchResponse(false);
+
// Check that redundant gzip mime type removes only solo gzip encoding.
- const bool is_sdch_response = false;
const std::string kGzipMime1("application/x-gzip");
const std::string kGzipMime2("application/gzip");
const std::string kGzipMime3("application/x-gunzip");
@@ -52,45 +56,54 @@
// First show it removes the gzip, given any gzip style mime type.
encoding_types.clear();
encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- Filter::FixupEncodingTypes(is_sdch_response, kGzipMime1, &encoding_types);
+ 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::FixupEncodingTypes(is_sdch_response, kGzipMime2, &encoding_types);
+ 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::FixupEncodingTypes(is_sdch_response, kGzipMime3, &encoding_types);
+ 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::FixupEncodingTypes(is_sdch_response, kGzipMime1, &encoding_types);
+ filter_context.SetMimeType(kGzipMime1);
+ Filter::FixupEncodingTypes(filter_context, &encoding_types);
EXPECT_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::FixupEncodingTypes(is_sdch_response, "other/mime", &encoding_types);
+ filter_context.SetMimeType("other/mime");
+ Filter::FixupEncodingTypes(filter_context, &encoding_types);
EXPECT_EQ(1U, encoding_types.size());
EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types.front());
}
TEST(FilterTest, SdchEncoding) {
// Handle content encodings including SDCH.
- const bool is_sdch_response = true;
const std::string kTextHtmlMime("text/html");
+ const int kInputBufferSize(100);
+ MockFilterContext filter_context(kInputBufferSize);
+ filter_context.SetSdchResponse(true);
+
std::vector<Filter::FilterType> encoding_types;
// Check for most common encoding, and verify it survives unchanged.
encoding_types.clear();
encoding_types.push_back(Filter::FILTER_TYPE_SDCH);
encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- Filter::FixupEncodingTypes(is_sdch_response, kTextHtmlMime, &encoding_types);
+ filter_context.SetMimeType(kTextHtmlMime);
+ Filter::FixupEncodingTypes(filter_context, &encoding_types);
EXPECT_EQ(2U, encoding_types.size());
EXPECT_EQ(Filter::FILTER_TYPE_SDCH, encoding_types[0]);
EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types[1]);
@@ -99,7 +112,8 @@
encoding_types.clear();
encoding_types.push_back(Filter::FILTER_TYPE_SDCH);
encoding_types.push_back(Filter::FILTER_TYPE_GZIP);
- Filter::FixupEncodingTypes(is_sdch_response, "other/type", &encoding_types);
+ filter_context.SetMimeType("other/type");
+ Filter::FixupEncodingTypes(filter_context, &encoding_types);
EXPECT_EQ(2U, encoding_types.size());
EXPECT_EQ(Filter::FILTER_TYPE_SDCH, encoding_types[0]);
EXPECT_EQ(Filter::FILTER_TYPE_GZIP, encoding_types[1]);
@@ -107,7 +121,7 @@
// Solo SDCH is extended to include optional gunzip.
encoding_types.clear();
encoding_types.push_back(Filter::FILTER_TYPE_SDCH);
- Filter::FixupEncodingTypes(is_sdch_response, "other/type", &encoding_types);
+ Filter::FixupEncodingTypes(filter_context, &encoding_types);
EXPECT_EQ(2U, encoding_types.size());
EXPECT_EQ(Filter::FILTER_TYPE_SDCH, encoding_types[0]);
EXPECT_EQ(Filter::FILTER_TYPE_GZIP_HELPING_SDCH, encoding_types[1]);
@@ -115,13 +129,17 @@
TEST(FilterTest, MissingSdchEncoding) {
// Handle interesting case where entire SDCH encoding assertion "got lost."
- const bool is_sdch_response = true;
const std::string kTextHtmlMime("text/html");
+ const int kInputBufferSize(100);
+ MockFilterContext filter_context(kInputBufferSize);
+ filter_context.SetSdchResponse(true);
+
std::vector<Filter::FilterType> encoding_types;
// Loss of encoding, but it was an SDCH response with html type.
encoding_types.clear();
- Filter::FixupEncodingTypes(is_sdch_response, kTextHtmlMime, &encoding_types);
+ filter_context.SetMimeType(kTextHtmlMime);
+ Filter::FixupEncodingTypes(filter_context, &encoding_types);
EXPECT_EQ(2U, encoding_types.size());
EXPECT_EQ(Filter::FILTER_TYPE_SDCH_POSSIBLE, encoding_types[0]);
EXPECT_EQ(Filter::FILTER_TYPE_GZIP_HELPING_SDCH, encoding_types[1]);
@@ -132,15 +150,16 @@
// coded the fixup defensively (scanning for a prefix of "text/html", so this
// is an example which could survive such confusion in the caller).
encoding_types.clear();
- Filter::FixupEncodingTypes(is_sdch_response, "text/html; charset=UTF-8",
- &encoding_types);
+ filter_context.SetMimeType("text/html; charset=UTF-8");
+ Filter::FixupEncodingTypes(filter_context, &encoding_types);
EXPECT_EQ(2U, encoding_types.size());
EXPECT_EQ(Filter::FILTER_TYPE_SDCH_POSSIBLE, encoding_types[0]);
EXPECT_EQ(Filter::FILTER_TYPE_GZIP_HELPING_SDCH, encoding_types[1]);
// No encoding, but it was an SDCH response with non-html type.
encoding_types.clear();
- Filter::FixupEncodingTypes(is_sdch_response, "other/mime", &encoding_types);
+ filter_context.SetMimeType("other/mime");
+ Filter::FixupEncodingTypes(filter_context, &encoding_types);
EXPECT_EQ(2U, encoding_types.size());
EXPECT_EQ(Filter::FILTER_TYPE_SDCH_POSSIBLE, encoding_types[0]);
EXPECT_EQ(Filter::FILTER_TYPE_GZIP_HELPING_SDCH, encoding_types[1]);
« no previous file with comments | « net/base/filter_unittest.h ('k') | net/base/sdch_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698