| Index: net/filter/sdch_filter_unittest.cc
|
| diff --git a/net/filter/sdch_filter_unittest.cc b/net/filter/sdch_filter_unittest.cc
|
| index 37f48866707bfece16ba4c183b33f7d3f603d43c..16012c3edcc13b71da2ebbc5b066159da95f9b5f 100644
|
| --- a/net/filter/sdch_filter_unittest.cc
|
| +++ b/net/filter/sdch_filter_unittest.cc
|
| @@ -13,6 +13,7 @@
|
| #include "net/base/io_buffer.h"
|
| #include "net/filter/mock_filter_context.h"
|
| #include "net/filter/sdch_filter.h"
|
| +#include "net/url_request/url_request_context.h"
|
| #include "net/url_request/url_request_http_job.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "third_party/zlib/zlib.h"
|
| @@ -54,16 +55,24 @@ class SdchFilterTest : public testing::Test {
|
| vcdiff_compressed_data_(kSdchCompressedTestData,
|
| sizeof(kSdchCompressedTestData) - 1),
|
| expanded_(kTestData, sizeof(kTestData) - 1),
|
| - sdch_manager_(new SdchManager) {
|
| + sdch_manager_(new SdchManager),
|
| + filter_context_(new MockFilterContext) {
|
| + URLRequestContext* url_request_context =
|
| + filter_context_->GetModifiableURLRequestContext();
|
| +
|
| + url_request_context->set_sdch_manager(sdch_manager_.get());
|
| }
|
|
|
| + MockFilterContext* filter_context() { return filter_context_.get(); }
|
| +
|
| std::string NewSdchCompressedData(const std::string dictionary);
|
|
|
| const std::string test_vcdiff_dictionary_;
|
| const std::string vcdiff_compressed_data_;
|
| const std::string expanded_; // Desired final, decompressed data.
|
|
|
| - scoped_ptr<SdchManager> sdch_manager_; // A singleton database.
|
| + scoped_ptr<SdchManager> sdch_manager_;
|
| + scoped_ptr<MockFilterContext> filter_context_;
|
| };
|
|
|
| std::string SdchFilterTest::NewSdchCompressedData(
|
| @@ -152,10 +161,9 @@ TEST_F(SdchFilterTest, EmptyInputOk) {
|
| std::vector<Filter::FilterType> filter_types;
|
| filter_types.push_back(Filter::FILTER_TYPE_SDCH);
|
| char output_buffer[20];
|
| - MockFilterContext filter_context;
|
| std::string url_string("http://ignore.com");
|
| - filter_context.SetURL(GURL(url_string));
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + filter_context()->SetURL(GURL(url_string));
|
| + scoped_ptr<Filter> filter(Filter::Factory(filter_types, *filter_context()));
|
|
|
|
|
| // With no input data, try to read output.
|
| @@ -172,12 +180,11 @@ TEST_F(SdchFilterTest, PassThroughWhenTentative) {
|
| // Selective a tentative filter (which can fall back to pass through).
|
| filter_types.push_back(Filter::FILTER_TYPE_GZIP_HELPING_SDCH);
|
| char output_buffer[20];
|
| - MockFilterContext filter_context;
|
| // Response code needs to be 200 to allow a pass through.
|
| - filter_context.SetResponseCode(200);
|
| + filter_context()->SetResponseCode(200);
|
| std::string url_string("http://ignore.com");
|
| - filter_context.SetURL(GURL(url_string));
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + filter_context()->SetURL(GURL(url_string));
|
| + scoped_ptr<Filter> filter(Filter::Factory(filter_types, *filter_context()));
|
|
|
| // Supply enough data to force a pass-through mode..
|
| std::string non_gzip_content("not GZIPed data");
|
| @@ -210,14 +217,13 @@ TEST_F(SdchFilterTest, RefreshBadReturnCode) {
|
| // Selective a tentative filter (which can fall back to pass through).
|
| filter_types.push_back(Filter::FILTER_TYPE_SDCH_POSSIBLE);
|
| char output_buffer[20];
|
| - MockFilterContext filter_context;
|
| // Response code needs to be 200 to allow a pass through.
|
| - filter_context.SetResponseCode(403);
|
| + filter_context()->SetResponseCode(403);
|
| // Meta refresh will only appear for html content
|
| - filter_context.SetMimeType("text/html");
|
| + filter_context()->SetMimeType("text/html");
|
| std::string url_string("http://ignore.com");
|
| - filter_context.SetURL(GURL(url_string));
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + filter_context()->SetURL(GURL(url_string));
|
| + scoped_ptr<Filter> filter(Filter::Factory(filter_types, *filter_context()));
|
|
|
| // Supply enough data to force a pass-through mode, which means we have
|
| // provided more than 9 characters that can't be a dictionary hash.
|
| @@ -251,15 +257,14 @@ TEST_F(SdchFilterTest, ErrorOnBadReturnCode) {
|
| // Selective a tentative filter (which can fall back to pass through).
|
| filter_types.push_back(Filter::FILTER_TYPE_SDCH_POSSIBLE);
|
| char output_buffer[20];
|
| - MockFilterContext filter_context;
|
| // Response code needs to be 200 to allow a pass through.
|
| - filter_context.SetResponseCode(403);
|
| + filter_context()->SetResponseCode(403);
|
| // Meta refresh will only appear for html content, so set to something else
|
| // to induce an error (we can't meta refresh).
|
| - filter_context.SetMimeType("anything");
|
| + filter_context()->SetMimeType("anything");
|
| std::string url_string("http://ignore.com");
|
| - filter_context.SetURL(GURL(url_string));
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + filter_context()->SetURL(GURL(url_string));
|
| + scoped_ptr<Filter> filter(Filter::Factory(filter_types, *filter_context()));
|
|
|
| // Supply enough data to force a pass-through mode, which means we have
|
| // provided more than 9 characters that can't be a dictionary hash.
|
| @@ -288,14 +293,13 @@ TEST_F(SdchFilterTest, ErrorOnBadReturnCodeWithHtml) {
|
| // Selective a tentative filter (which can fall back to pass through).
|
| filter_types.push_back(Filter::FILTER_TYPE_SDCH_POSSIBLE);
|
| char output_buffer[20];
|
| - MockFilterContext filter_context;
|
| // Response code needs to be 200 to allow a pass through.
|
| - filter_context.SetResponseCode(403);
|
| + filter_context()->SetResponseCode(403);
|
| // Meta refresh will only appear for html content
|
| - filter_context.SetMimeType("text/html");
|
| + filter_context()->SetMimeType("text/html");
|
| std::string url_string("http://ignore.com");
|
| - filter_context.SetURL(GURL(url_string));
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + filter_context()->SetURL(GURL(url_string));
|
| + scoped_ptr<Filter> filter(Filter::Factory(filter_types, *filter_context()));
|
|
|
| // Supply enough data to force a pass-through mode, which means we have
|
| // provided more than 9 characters that can't be a dictionary hash.
|
| @@ -329,10 +333,9 @@ TEST_F(SdchFilterTest, BasicBadDictionary) {
|
| std::vector<Filter::FilterType> filter_types;
|
| filter_types.push_back(Filter::FILTER_TYPE_SDCH);
|
| char output_buffer[20];
|
| - MockFilterContext filter_context;
|
| std::string url_string("http://ignore.com");
|
| - filter_context.SetURL(GURL(url_string));
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + filter_context()->SetURL(GURL(url_string));
|
| + scoped_ptr<Filter> filter(Filter::Factory(filter_types, *filter_context()));
|
|
|
| // Supply bogus data (which doesn't yet specify a full dictionary hash).
|
| // Dictionary hash is 8 characters followed by a null.
|
| @@ -372,9 +375,9 @@ TEST_F(SdchFilterTest, BasicBadDictionary) {
|
| EXPECT_EQ(0, output_bytes_or_buffer_size);
|
| EXPECT_EQ(Filter::FILTER_ERROR, status);
|
|
|
| - EXPECT_FALSE(SdchManager::Global()->IsInSupportedDomain(GURL(url_string)));
|
| - SdchManager::ClearBlacklistings();
|
| - EXPECT_TRUE(SdchManager::Global()->IsInSupportedDomain(GURL(url_string)));
|
| + EXPECT_FALSE(sdch_manager_->IsInSupportedDomain(GURL(url_string)));
|
| + sdch_manager_->ClearBlacklistings();
|
| + EXPECT_TRUE(sdch_manager_->IsInSupportedDomain(GURL(url_string)));
|
| }
|
|
|
| TEST_F(SdchFilterTest, DictionaryAddOnce) {
|
| @@ -414,10 +417,9 @@ TEST_F(SdchFilterTest, BasicDictionary) {
|
| std::vector<Filter::FilterType> filter_types;
|
| filter_types.push_back(Filter::FILTER_TYPE_SDCH);
|
|
|
| - MockFilterContext filter_context;
|
| - filter_context.SetURL(url);
|
| + filter_context()->SetURL(url);
|
|
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + scoped_ptr<Filter> filter(Filter::Factory(filter_types, *filter_context()));
|
|
|
| size_t feed_block_size = 100;
|
| size_t output_block_size = 100;
|
| @@ -427,7 +429,7 @@ TEST_F(SdchFilterTest, BasicDictionary) {
|
| EXPECT_EQ(output, expanded_);
|
|
|
| // Decode with really small buffers (size 1) to check for edge effects.
|
| - filter.reset(Filter::Factory(filter_types, filter_context));
|
| + filter.reset(Filter::Factory(filter_types, *filter_context()));
|
|
|
| feed_block_size = 1;
|
| output_block_size = 1;
|
| @@ -452,9 +454,8 @@ TEST_F(SdchFilterTest, NoDecodeHttps) {
|
| std::vector<Filter::FilterType> filter_types;
|
| filter_types.push_back(Filter::FILTER_TYPE_SDCH);
|
|
|
| - MockFilterContext filter_context;
|
| - filter_context.SetURL(GURL("https://" + kSampleDomain));
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + 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);
|
| @@ -483,9 +484,8 @@ TEST_F(SdchFilterTest, NoDecodeFtp) {
|
| std::vector<Filter::FilterType> filter_types;
|
| filter_types.push_back(Filter::FILTER_TYPE_SDCH);
|
|
|
| - MockFilterContext filter_context;
|
| - filter_context.SetURL(GURL("ftp://" + kSampleDomain));
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + 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);
|
| @@ -510,9 +510,8 @@ TEST_F(SdchFilterTest, NoDecodeFileColon) {
|
| std::vector<Filter::FilterType> filter_types;
|
| filter_types.push_back(Filter::FILTER_TYPE_SDCH);
|
|
|
| - MockFilterContext filter_context;
|
| - filter_context.SetURL(GURL("file://" + kSampleDomain));
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + 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);
|
| @@ -537,9 +536,8 @@ TEST_F(SdchFilterTest, NoDecodeAboutColon) {
|
| std::vector<Filter::FilterType> filter_types;
|
| filter_types.push_back(Filter::FILTER_TYPE_SDCH);
|
|
|
| - MockFilterContext filter_context;
|
| - filter_context.SetURL(GURL("about://" + kSampleDomain));
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + 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);
|
| @@ -564,9 +562,8 @@ TEST_F(SdchFilterTest, NoDecodeJavaScript) {
|
| std::vector<Filter::FilterType> filter_types;
|
| filter_types.push_back(Filter::FILTER_TYPE_SDCH);
|
|
|
| - MockFilterContext filter_context;
|
| - filter_context.SetURL(GURL("javascript://" + kSampleDomain));
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + 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);
|
| @@ -591,9 +588,8 @@ TEST_F(SdchFilterTest, CanStillDecodeHttp) {
|
| std::vector<Filter::FilterType> filter_types;
|
| filter_types.push_back(Filter::FILTER_TYPE_SDCH);
|
|
|
| - MockFilterContext filter_context;
|
| - filter_context.SetURL(GURL("http://" + kSampleDomain));
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + 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);
|
| @@ -620,10 +616,9 @@ TEST_F(SdchFilterTest, CrossDomainDictionaryUse) {
|
|
|
| // Decode with content arriving from the "wrong" domain.
|
| // This tests SdchManager::CanSet().
|
| - MockFilterContext filter_context;
|
| GURL wrong_domain_url("http://www.wrongdomain.com");
|
| - filter_context.SetURL(wrong_domain_url);
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + 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;
|
| @@ -632,10 +627,10 @@ TEST_F(SdchFilterTest, CrossDomainDictionaryUse) {
|
| filter.get(), &output));
|
| EXPECT_EQ(output.size(), 0u); // No output written.
|
|
|
| - EXPECT_TRUE(SdchManager::Global()->IsInSupportedDomain(GURL(url_string)));
|
| - EXPECT_FALSE(SdchManager::Global()->IsInSupportedDomain(wrong_domain_url));
|
| - SdchManager::ClearBlacklistings();
|
| - EXPECT_TRUE(SdchManager::Global()->IsInSupportedDomain(wrong_domain_url));
|
| + EXPECT_TRUE(sdch_manager_->IsInSupportedDomain(GURL(url_string)));
|
| + EXPECT_FALSE(sdch_manager_->IsInSupportedDomain(wrong_domain_url));
|
| + sdch_manager_->ClearBlacklistings();
|
| + EXPECT_TRUE(sdch_manager_->IsInSupportedDomain(wrong_domain_url));
|
| }
|
|
|
| TEST_F(SdchFilterTest, DictionaryPathValidation) {
|
| @@ -660,9 +655,8 @@ TEST_F(SdchFilterTest, DictionaryPathValidation) {
|
| filter_types.push_back(Filter::FILTER_TYPE_SDCH);
|
|
|
| // Test decode the path data, arriving from a valid path.
|
| - MockFilterContext filter_context;
|
| - filter_context.SetURL(GURL(url_string + path));
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + 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;
|
| @@ -673,8 +667,8 @@ TEST_F(SdchFilterTest, DictionaryPathValidation) {
|
| EXPECT_EQ(output, expanded_);
|
|
|
| // Test decode the path data, arriving from a invalid path.
|
| - filter_context.SetURL(GURL(url_string));
|
| - filter.reset(Filter::Factory(filter_types, filter_context));
|
| + filter_context()->SetURL(GURL(url_string));
|
| + filter.reset(Filter::Factory(filter_types, *filter_context()));
|
|
|
| feed_block_size = 100;
|
| output_block_size = 100;
|
| @@ -683,9 +677,9 @@ TEST_F(SdchFilterTest, DictionaryPathValidation) {
|
| output_block_size, filter.get(), &output));
|
| EXPECT_EQ(output.size(), 0u); // No output written.
|
|
|
| - EXPECT_FALSE(SdchManager::Global()->IsInSupportedDomain(GURL(url_string)));
|
| - SdchManager::ClearBlacklistings();
|
| - EXPECT_TRUE(SdchManager::Global()->IsInSupportedDomain(GURL(url_string)));
|
| + EXPECT_FALSE(sdch_manager_->IsInSupportedDomain(GURL(url_string)));
|
| + sdch_manager_->ClearBlacklistings();
|
| + EXPECT_TRUE(sdch_manager_->IsInSupportedDomain(GURL(url_string)));
|
| }
|
|
|
| TEST_F(SdchFilterTest, DictionaryPortValidation) {
|
| @@ -713,9 +707,8 @@ TEST_F(SdchFilterTest, DictionaryPortValidation) {
|
| filter_types.push_back(Filter::FILTER_TYPE_SDCH);
|
|
|
| // Test decode the port data, arriving from a valid port.
|
| - MockFilterContext filter_context;
|
| - filter_context.SetURL(GURL(url_string + ":" + port));
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + 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;
|
| @@ -725,8 +718,8 @@ TEST_F(SdchFilterTest, DictionaryPortValidation) {
|
| EXPECT_EQ(output, expanded_);
|
|
|
| // Test decode the port data, arriving from a valid (default) port.
|
| - filter_context.SetURL(GURL(url_string)); // Default port.
|
| - filter.reset(Filter::Factory(filter_types, filter_context));
|
| + filter_context()->SetURL(GURL(url_string)); // Default port.
|
| + filter.reset(Filter::Factory(filter_types, *filter_context()));
|
|
|
| feed_block_size = 100;
|
| output_block_size = 100;
|
| @@ -736,8 +729,8 @@ TEST_F(SdchFilterTest, DictionaryPortValidation) {
|
| EXPECT_EQ(output, expanded_);
|
|
|
| // Test decode the port data, arriving from a invalid port.
|
| - filter_context.SetURL(GURL(url_string + ":" + port + "1"));
|
| - filter.reset(Filter::Factory(filter_types, filter_context));
|
| + filter_context()->SetURL(GURL(url_string + ":" + port + "1"));
|
| + filter.reset(Filter::Factory(filter_types, *filter_context()));
|
|
|
| feed_block_size = 100;
|
| output_block_size = 100;
|
| @@ -746,9 +739,9 @@ TEST_F(SdchFilterTest, DictionaryPortValidation) {
|
| output_block_size, filter.get(), &output));
|
| EXPECT_EQ(output.size(), 0u); // No output written.
|
|
|
| - EXPECT_FALSE(SdchManager::Global()->IsInSupportedDomain(GURL(url_string)));
|
| - SdchManager::ClearBlacklistings();
|
| - EXPECT_TRUE(SdchManager::Global()->IsInSupportedDomain(GURL(url_string)));
|
| + EXPECT_FALSE(sdch_manager_->IsInSupportedDomain(GURL(url_string)));
|
| + sdch_manager_->ClearBlacklistings();
|
| + EXPECT_TRUE(sdch_manager_->IsInSupportedDomain(GURL(url_string)));
|
| }
|
|
|
| //------------------------------------------------------------------------------
|
| @@ -844,10 +837,9 @@ TEST_F(SdchFilterTest, FilterChaining) {
|
| CHECK_GT(kLargeInputBufferSize, gzip_compressed_sdch.size());
|
| CHECK_GT(kLargeInputBufferSize, sdch_compressed.size());
|
| CHECK_GT(kLargeInputBufferSize, expanded_.size());
|
| - MockFilterContext filter_context;
|
| - filter_context.SetURL(url);
|
| + filter_context()->SetURL(url);
|
| scoped_ptr<Filter> filter(
|
| - SdchFilterChainingTest::Factory(filter_types, filter_context,
|
| + SdchFilterChainingTest::Factory(filter_types, *filter_context(),
|
| kLargeInputBufferSize));
|
| EXPECT_EQ(static_cast<int>(kLargeInputBufferSize),
|
| filter->stream_buffer_size());
|
| @@ -874,9 +866,9 @@ TEST_F(SdchFilterTest, FilterChaining) {
|
| // 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_LT(kMidSizedInputBufferSize * 2, sdch_compressed.size());
|
| - filter_context.SetURL(url);
|
| + filter_context()->SetURL(url);
|
| filter.reset(
|
| - SdchFilterChainingTest::Factory(filter_types, filter_context,
|
| + SdchFilterChainingTest::Factory(filter_types, *filter_context(),
|
| kMidSizedInputBufferSize));
|
| EXPECT_EQ(static_cast<int>(kMidSizedInputBufferSize),
|
| filter->stream_buffer_size());
|
| @@ -889,7 +881,7 @@ TEST_F(SdchFilterTest, FilterChaining) {
|
| EXPECT_EQ(output, expanded_);
|
|
|
| // Next try with a tiny input and output buffer to cover edge effects.
|
| - filter.reset(SdchFilterChainingTest::Factory(filter_types, filter_context,
|
| + filter.reset(SdchFilterChainingTest::Factory(filter_types, *filter_context(),
|
| kLargeInputBufferSize));
|
| EXPECT_EQ(static_cast<int>(kLargeInputBufferSize),
|
| filter->stream_buffer_size());
|
| @@ -922,17 +914,16 @@ TEST_F(SdchFilterTest, DefaultGzipIfSdch) {
|
| std::vector<Filter::FilterType> filter_types;
|
| filter_types.push_back(Filter::FILTER_TYPE_SDCH);
|
|
|
| - MockFilterContext filter_context;
|
| - filter_context.SetMimeType("anything/mime");
|
| - filter_context.SetSdchResponse(true);
|
| - Filter::FixupEncodingTypes(filter_context, &filter_types);
|
| + filter_context()->SetMimeType("anything/mime");
|
| + filter_context()->SetSdchResponse(true);
|
| + Filter::FixupEncodingTypes(*filter_context(), &filter_types);
|
| ASSERT_EQ(filter_types.size(), 2u);
|
| EXPECT_EQ(filter_types[0], Filter::FILTER_TYPE_SDCH);
|
| EXPECT_EQ(filter_types[1], Filter::FILTER_TYPE_GZIP_HELPING_SDCH);
|
|
|
| // First try with a large buffer (larger than test input, or compressed data).
|
| - filter_context.SetURL(url);
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + filter_context()->SetURL(url);
|
| + scoped_ptr<Filter> filter(Filter::Factory(filter_types, *filter_context()));
|
|
|
|
|
| // Verify that chained filter is waiting for data.
|
| @@ -949,7 +940,7 @@ TEST_F(SdchFilterTest, DefaultGzipIfSdch) {
|
| EXPECT_EQ(output, expanded_);
|
|
|
| // Next try with a tiny buffer to cover edge effects.
|
| - filter.reset(Filter::Factory(filter_types, filter_context));
|
| + filter.reset(Filter::Factory(filter_types, *filter_context()));
|
|
|
| feed_block_size = 1;
|
| output_block_size = 1;
|
| @@ -981,18 +972,17 @@ TEST_F(SdchFilterTest, AcceptGzipSdchIfGzip) {
|
| std::vector<Filter::FilterType> filter_types;
|
| filter_types.push_back(Filter::FILTER_TYPE_GZIP);
|
|
|
| - MockFilterContext filter_context;
|
| - filter_context.SetMimeType("anything/mime");
|
| - filter_context.SetSdchResponse(true);
|
| - Filter::FixupEncodingTypes(filter_context, &filter_types);
|
| + filter_context()->SetMimeType("anything/mime");
|
| + filter_context()->SetSdchResponse(true);
|
| + Filter::FixupEncodingTypes(*filter_context(), &filter_types);
|
| ASSERT_EQ(filter_types.size(), 3u);
|
| EXPECT_EQ(filter_types[0], Filter::FILTER_TYPE_SDCH_POSSIBLE);
|
| EXPECT_EQ(filter_types[1], Filter::FILTER_TYPE_GZIP_HELPING_SDCH);
|
| EXPECT_EQ(filter_types[2], Filter::FILTER_TYPE_GZIP);
|
|
|
| // First try with a large buffer (larger than test input, or compressed data).
|
| - filter_context.SetURL(url);
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + filter_context()->SetURL(url);
|
| + scoped_ptr<Filter> filter(Filter::Factory(filter_types, *filter_context()));
|
|
|
|
|
| // Verify that chained filter is waiting for data.
|
| @@ -1009,7 +999,7 @@ TEST_F(SdchFilterTest, AcceptGzipSdchIfGzip) {
|
| EXPECT_EQ(output, expanded_);
|
|
|
| // Next try with a tiny buffer to cover edge effects.
|
| - filter.reset(Filter::Factory(filter_types, filter_context));
|
| + filter.reset(Filter::Factory(filter_types, *filter_context()));
|
|
|
| feed_block_size = 1;
|
| output_block_size = 1;
|
| @@ -1039,17 +1029,16 @@ TEST_F(SdchFilterTest, DefaultSdchGzipIfEmpty) {
|
| // System should automatically add the missing (optional) sdch,gzip.
|
| std::vector<Filter::FilterType> filter_types;
|
|
|
| - MockFilterContext filter_context;
|
| - filter_context.SetMimeType("anything/mime");
|
| - filter_context.SetSdchResponse(true);
|
| - Filter::FixupEncodingTypes(filter_context, &filter_types);
|
| + filter_context()->SetMimeType("anything/mime");
|
| + filter_context()->SetSdchResponse(true);
|
| + Filter::FixupEncodingTypes(*filter_context(), &filter_types);
|
| ASSERT_EQ(filter_types.size(), 2u);
|
| EXPECT_EQ(filter_types[0], Filter::FILTER_TYPE_SDCH_POSSIBLE);
|
| EXPECT_EQ(filter_types[1], Filter::FILTER_TYPE_GZIP_HELPING_SDCH);
|
|
|
| // First try with a large buffer (larger than test input, or compressed data).
|
| - filter_context.SetURL(url);
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + filter_context()->SetURL(url);
|
| + scoped_ptr<Filter> filter(Filter::Factory(filter_types, *filter_context()));
|
|
|
|
|
| // Verify that chained filter is waiting for data.
|
| @@ -1066,7 +1055,7 @@ TEST_F(SdchFilterTest, DefaultSdchGzipIfEmpty) {
|
| EXPECT_EQ(output, expanded_);
|
|
|
| // Next try with a tiny buffer to cover edge effects.
|
| - filter.reset(Filter::Factory(filter_types, filter_context));
|
| + filter.reset(Filter::Factory(filter_types, *filter_context()));
|
|
|
| feed_block_size = 1;
|
| output_block_size = 1;
|
| @@ -1101,18 +1090,17 @@ TEST_F(SdchFilterTest, AcceptGzipGzipSdchIfGzip) {
|
| std::vector<Filter::FilterType> filter_types;
|
| filter_types.push_back(Filter::FILTER_TYPE_GZIP);
|
|
|
| - MockFilterContext filter_context;
|
| - filter_context.SetMimeType("anything/mime");
|
| - filter_context.SetSdchResponse(true);
|
| - Filter::FixupEncodingTypes(filter_context, &filter_types);
|
| + filter_context()->SetMimeType("anything/mime");
|
| + filter_context()->SetSdchResponse(true);
|
| + Filter::FixupEncodingTypes(*filter_context(), &filter_types);
|
| ASSERT_EQ(filter_types.size(), 3u);
|
| EXPECT_EQ(filter_types[0], Filter::FILTER_TYPE_SDCH_POSSIBLE);
|
| EXPECT_EQ(filter_types[1], Filter::FILTER_TYPE_GZIP_HELPING_SDCH);
|
| EXPECT_EQ(filter_types[2], Filter::FILTER_TYPE_GZIP);
|
|
|
| // First try with a large buffer (larger than test input, or compressed data).
|
| - filter_context.SetURL(url);
|
| - scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
|
| + 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];
|
| @@ -1128,7 +1116,7 @@ TEST_F(SdchFilterTest, AcceptGzipGzipSdchIfGzip) {
|
| EXPECT_EQ(output, expanded_);
|
|
|
| // Next try with a tiny buffer to cover edge effects.
|
| - filter.reset(Filter::Factory(filter_types, filter_context));
|
| + filter.reset(Filter::Factory(filter_types, *filter_context()));
|
|
|
| feed_block_size = 1;
|
| output_block_size = 1;
|
|
|