Index: net/base/sdch_filter_unittest.cc |
=================================================================== |
--- net/base/sdch_filter_unittest.cc (revision 11030) |
+++ net/base/sdch_filter_unittest.cc (working copy) |
@@ -11,6 +11,7 @@ |
#include "base/logging.h" |
#include "base/scoped_ptr.h" |
#include "net/base/filter.h" |
+#include "net/base/filter_unittest.h" |
#include "net/base/sdch_filter.h" |
#include "net/url_request/url_request_http_job.cc" |
#include "testing/gtest/include/gtest/gtest.h" |
@@ -151,9 +152,10 @@ |
filter_types.push_back(Filter::FILTER_TYPE_SDCH); |
const int kInputBufferSize(30); |
char output_buffer[20]; |
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, kInputBufferSize)); |
+ MockFilterContext filter_context(kInputBufferSize); |
std::string url_string("http://ignore.com"); |
- filter->SetURL(GURL(url_string)); |
+ filter_context.SetURL(GURL(url_string)); |
+ scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context)); |
// With no input data, try to read output. |
@@ -246,9 +248,11 @@ |
// Decode with a large buffer (larger than test input, or compressed data). |
const int kInputBufferSize(100); |
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, kInputBufferSize)); |
- filter->SetURL(url); |
+ MockFilterContext filter_context(kInputBufferSize); |
+ filter_context.SetURL(url); |
+ scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context)); |
+ |
size_t feed_block_size = 100; |
size_t output_block_size = 100; |
std::string output; |
@@ -257,8 +261,7 @@ |
EXPECT_EQ(output, expanded_); |
// Decode with really small buffers (size 1) to check for edge effects. |
- filter.reset((Filter::Factory(filter_types, kInputBufferSize))); |
- filter->SetURL(url); |
+ filter.reset((Filter::Factory(filter_types, filter_context))); |
feed_block_size = 1; |
output_block_size = 1; |
@@ -284,12 +287,14 @@ |
filter_types.push_back(Filter::FILTER_TYPE_SDCH); |
const int kInputBufferSize(100); |
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, kInputBufferSize)); |
+ MockFilterContext filter_context(kInputBufferSize); |
+ filter_context.SetURL(GURL("https://" + kSampleDomain)); |
+ scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context)); |
+ |
const size_t feed_block_size(100); |
const size_t output_block_size(100); |
std::string output; |
- filter->SetURL(GURL("https://" + kSampleDomain)); |
EXPECT_FALSE(FilterTestData(compressed, feed_block_size, output_block_size, |
filter.get(), &output)); |
} |
@@ -314,12 +319,14 @@ |
filter_types.push_back(Filter::FILTER_TYPE_SDCH); |
const int kInputBufferSize(100); |
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, kInputBufferSize)); |
+ MockFilterContext filter_context(kInputBufferSize); |
+ filter_context.SetURL(GURL("ftp://" + kSampleDomain)); |
+ scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context)); |
+ |
const size_t feed_block_size(100); |
const size_t output_block_size(100); |
std::string output; |
- filter->SetURL(GURL("ftp://" + kSampleDomain)); |
EXPECT_FALSE(FilterTestData(compressed, feed_block_size, output_block_size, |
filter.get(), &output)); |
} |
@@ -340,12 +347,14 @@ |
filter_types.push_back(Filter::FILTER_TYPE_SDCH); |
const int kInputBufferSize(100); |
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, kInputBufferSize)); |
+ MockFilterContext filter_context(kInputBufferSize); |
+ filter_context.SetURL(GURL("file://" + kSampleDomain)); |
+ scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context)); |
+ |
const size_t feed_block_size(100); |
const size_t output_block_size(100); |
std::string output; |
- filter->SetURL(GURL("file://" + kSampleDomain)); |
EXPECT_FALSE(FilterTestData(compressed, feed_block_size, output_block_size, |
filter.get(), &output)); |
} |
@@ -366,12 +375,14 @@ |
filter_types.push_back(Filter::FILTER_TYPE_SDCH); |
const int kInputBufferSize(100); |
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, kInputBufferSize)); |
+ MockFilterContext filter_context(kInputBufferSize); |
+ filter_context.SetURL(GURL("about://" + kSampleDomain)); |
+ scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context)); |
+ |
const size_t feed_block_size(100); |
const size_t output_block_size(100); |
std::string output; |
- filter->SetURL(GURL("about://" + kSampleDomain)); |
EXPECT_FALSE(FilterTestData(compressed, feed_block_size, output_block_size, |
filter.get(), &output)); |
} |
@@ -392,12 +403,14 @@ |
filter_types.push_back(Filter::FILTER_TYPE_SDCH); |
const int kInputBufferSize(100); |
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, kInputBufferSize)); |
+ MockFilterContext filter_context(kInputBufferSize); |
+ filter_context.SetURL(GURL("javascript://" + kSampleDomain)); |
+ scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context)); |
+ |
const size_t feed_block_size(100); |
const size_t output_block_size(100); |
std::string output; |
- filter->SetURL(GURL("javascript://" + kSampleDomain)); |
EXPECT_FALSE(FilterTestData(compressed, feed_block_size, output_block_size, |
filter.get(), &output)); |
} |
@@ -418,12 +431,14 @@ |
filter_types.push_back(Filter::FILTER_TYPE_SDCH); |
const int kInputBufferSize(100); |
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, kInputBufferSize)); |
+ MockFilterContext filter_context(kInputBufferSize); |
+ filter_context.SetURL(GURL("http://" + kSampleDomain)); |
+ scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context)); |
+ |
const size_t feed_block_size(100); |
const size_t output_block_size(100); |
std::string output; |
- filter->SetURL(GURL("http://" + kSampleDomain)); |
EXPECT_TRUE(FilterTestData(compressed, feed_block_size, output_block_size, |
filter.get(), &output)); |
} |
@@ -445,10 +460,11 @@ |
const int kInputBufferSize(100); |
// Decode with content arriving from the "wrong" domain. |
- // This tests CanSet() in the sdch_manager_-> |
- scoped_ptr<Filter> filter((Filter::Factory(filter_types, kInputBufferSize))); |
+ // This tests SdchManager::CanSet(). |
+ MockFilterContext filter_context(kInputBufferSize); |
GURL wrong_domain_url("http://www.wrongdomain.com"); |
- filter->SetURL(wrong_domain_url); |
+ filter_context.SetURL(wrong_domain_url); |
+ scoped_ptr<Filter> filter((Filter::Factory(filter_types, filter_context))); |
size_t feed_block_size = 100; |
size_t output_block_size = 100; |
@@ -486,8 +502,9 @@ |
const int kInputBufferSize(100); |
// Test decode the path data, arriving from a valid path. |
- scoped_ptr<Filter> filter((Filter::Factory(filter_types, kInputBufferSize))); |
- filter->SetURL(GURL(url_string + path)); |
+ MockFilterContext filter_context(kInputBufferSize); |
+ filter_context.SetURL(GURL(url_string + path)); |
+ scoped_ptr<Filter> filter((Filter::Factory(filter_types, filter_context))); |
size_t feed_block_size = 100; |
size_t output_block_size = 100; |
@@ -498,8 +515,8 @@ |
EXPECT_EQ(output, expanded_); |
// Test decode the path data, arriving from a invalid path. |
- filter.reset((Filter::Factory(filter_types, kInputBufferSize))); |
- filter->SetURL(GURL(url_string)); |
+ filter_context.SetURL(GURL(url_string)); |
+ filter.reset((Filter::Factory(filter_types, filter_context))); |
feed_block_size = 100; |
output_block_size = 100; |
@@ -539,8 +556,9 @@ |
const int kInputBufferSize(100); |
// Test decode the port data, arriving from a valid port. |
- scoped_ptr<Filter> filter((Filter::Factory(filter_types, kInputBufferSize))); |
- filter->SetURL(GURL(url_string + ":" + port)); |
+ MockFilterContext filter_context(kInputBufferSize); |
+ filter_context.SetURL(GURL(url_string + ":" + port)); |
+ scoped_ptr<Filter> filter((Filter::Factory(filter_types, filter_context))); |
size_t feed_block_size = 100; |
size_t output_block_size = 100; |
@@ -550,8 +568,8 @@ |
EXPECT_EQ(output, expanded_); |
// Test decode the port data, arriving from a valid (default) port. |
- filter.reset((Filter::Factory(filter_types, kInputBufferSize))); |
- filter->SetURL(GURL(url_string)); // Default port. |
+ filter_context.SetURL(GURL(url_string)); // Default port. |
+ filter.reset((Filter::Factory(filter_types, filter_context))); |
feed_block_size = 100; |
output_block_size = 100; |
@@ -561,8 +579,8 @@ |
EXPECT_EQ(output, expanded_); |
// Test decode the port data, arriving from a invalid port. |
- filter.reset((Filter::Factory(filter_types, kInputBufferSize))); |
- filter->SetURL(GURL(url_string + ":" + port + "1")); |
+ filter_context.SetURL(GURL(url_string + ":" + port + "1")); |
+ filter.reset((Filter::Factory(filter_types, filter_context))); |
feed_block_size = 100; |
output_block_size = 100; |
@@ -661,9 +679,9 @@ |
CHECK(kLargeInputBufferSize > gzip_compressed_sdch.size()); |
CHECK(kLargeInputBufferSize > sdch_compressed.size()); |
CHECK(kLargeInputBufferSize > expanded_.size()); |
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, |
- kLargeInputBufferSize)); |
- filter->SetURL(url); |
+ MockFilterContext filter_context(kLargeInputBufferSize); |
+ filter_context.SetURL(url); |
+ scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context)); |
// Verify that chained filter is waiting for data. |
char tiny_output_buffer[10]; |
@@ -687,8 +705,9 @@ |
// We'll go even further, and force the chain to flush the buffer between the |
// two filters more than once (that is why we multiply by 2). |
CHECK(kMidSizedInputBufferSize * 2 < sdch_compressed.size()); |
- filter.reset(Filter::Factory(filter_types, kMidSizedInputBufferSize)); |
- filter->SetURL(url); |
+ filter_context.SetBufferSize(kMidSizedInputBufferSize); |
+ filter_context.SetURL(url); |
+ filter.reset(Filter::Factory(filter_types, filter_context)); |
feed_block_size = kMidSizedInputBufferSize; |
output_block_size = kMidSizedInputBufferSize; |
@@ -698,8 +717,8 @@ |
EXPECT_EQ(output, expanded_); |
// Next try with a tiny input and output buffer to cover edge effects. |
- filter.reset(Filter::Factory(filter_types, kLargeInputBufferSize)); |
- filter->SetURL(url); |
+ filter_context.SetBufferSize(kLargeInputBufferSize); |
+ filter.reset(Filter::Factory(filter_types, filter_context)); |
feed_block_size = 1; |
output_block_size = 1; |
@@ -732,9 +751,11 @@ |
// First try with a large buffer (larger than test input, or compressed data). |
const int kInputBufferSize(100); |
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, kInputBufferSize)); |
- filter->SetURL(url); |
+ MockFilterContext filter_context(kInputBufferSize); |
+ filter_context.SetURL(url); |
+ scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context)); |
+ |
// Verify that chained filter is waiting for data. |
char tiny_output_buffer[10]; |
int tiny_output_size = sizeof(tiny_output_buffer); |
@@ -749,8 +770,7 @@ |
EXPECT_EQ(output, expanded_); |
// Next try with a tiny buffer to cover edge effects. |
- filter.reset(Filter::Factory(filter_types, kInputBufferSize)); |
- filter->SetURL(url); |
+ filter.reset(Filter::Factory(filter_types, filter_context)); |
feed_block_size = 1; |
output_block_size = 1; |