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

Unified Diff: net/base/gzip_filter_unittest.cc

Issue 6516025: Remove GetInputStreamBufferSize() method from FilterContext. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add some sanity checks 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/base/gzip_filter.h ('k') | net/base/mock_filter_context.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/base/gzip_filter_unittest.cc
diff --git a/net/base/gzip_filter_unittest.cc b/net/base/gzip_filter_unittest.cc
index 247e7da4066386f28ee0b6a83862099f6b133e85..d07c24d3a2eab77966e151f972f691dc28805a8e 100644
--- a/net/base/gzip_filter_unittest.cc
+++ b/net/base/gzip_filter_unittest.cc
@@ -24,7 +24,6 @@ namespace {
const int kDefaultBufferSize = 4096;
const int kSmallBufferSize = 128;
-const int kMaxBufferSize = 1048576; // 1048576 == 2^20 == 1 MB
const char kApplicationOctetStream[] = "application/octet-stream";
const char kApplicationXGzip[] = "application/x-gzip";
@@ -52,6 +51,8 @@ enum EncodeMode {
ENCODE_DEFLATE // Raw deflate.
};
+} // namespace
+
// These tests use the path service, which uses autoreleased objects on the
// Mac, so this needs to be a PlatformTest.
class GZipUnitTest : public PlatformTest {
@@ -220,9 +221,27 @@ class GZipUnitTest : public PlatformTest {
return filter->ReadData(dest, dest_len);
}
+ void InitFilter(Filter::FilterType type) {
+ std::vector<Filter::FilterType> filter_types;
+ filter_types.push_back(type);
+ filter_.reset(Filter::Factory(filter_types, filter_context_));
+ ASSERT_TRUE(filter_.get());
+ ASSERT_GE(filter_->stream_buffer_size(), kDefaultBufferSize);
+ }
+
+ void InitFilterWithBufferSize(Filter::FilterType type, int buffer_size) {
+ std::vector<Filter::FilterType> filter_types;
+ filter_types.push_back(type);
+ filter_.reset(Filter::FactoryForTests(filter_types, filter_context_,
+ buffer_size));
+ ASSERT_TRUE(filter_.get());
+ }
+
const char* source_buffer() const { return source_buffer_.data(); }
int source_len() const { return static_cast<int>(source_buffer_.size()); }
+ scoped_ptr<Filter> filter_;
+
std::string source_buffer_;
char* deflate_encode_buffer_;
@@ -230,23 +249,22 @@ class GZipUnitTest : public PlatformTest {
char* gzip_encode_buffer_;
int gzip_encode_len_;
+
+ private:
+ net::MockFilterContext filter_context_;
};
// Basic scenario: decoding deflate data with big enough buffer.
TEST_F(GZipUnitTest, DecodeDeflate) {
// Decode the compressed data with filter
- std::vector<Filter::FilterType> filter_types;
- filter_types.push_back(Filter::FILTER_TYPE_DEFLATE);
- net::MockFilterContext filter_context(kDefaultBufferSize);
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
- ASSERT_TRUE(filter.get());
- memcpy(filter->stream_buffer()->data(), deflate_encode_buffer_,
+ InitFilter(Filter::FILTER_TYPE_DEFLATE);
+ memcpy(filter_->stream_buffer()->data(), deflate_encode_buffer_,
deflate_encode_len_);
- filter->FlushStreamBuffer(deflate_encode_len_);
+ filter_->FlushStreamBuffer(deflate_encode_len_);
char deflate_decode_buffer[kDefaultBufferSize];
int deflate_decode_size = kDefaultBufferSize;
- filter->ReadData(deflate_decode_buffer, &deflate_decode_size);
+ filter_->ReadData(deflate_decode_buffer, &deflate_decode_size);
// Compare the decoding result with source data
EXPECT_TRUE(deflate_decode_size == source_len());
@@ -256,18 +274,14 @@ TEST_F(GZipUnitTest, DecodeDeflate) {
// Basic scenario: decoding gzip data with big enough buffer.
TEST_F(GZipUnitTest, DecodeGZip) {
// Decode the compressed data with filter
- std::vector<Filter::FilterType> filter_types;
- filter_types.push_back(Filter::FILTER_TYPE_GZIP);
- net::MockFilterContext filter_context(kDefaultBufferSize);
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
- ASSERT_TRUE(filter.get());
- memcpy(filter->stream_buffer()->data(), gzip_encode_buffer_,
+ InitFilter(Filter::FILTER_TYPE_GZIP);
+ memcpy(filter_->stream_buffer()->data(), gzip_encode_buffer_,
gzip_encode_len_);
- filter->FlushStreamBuffer(gzip_encode_len_);
+ filter_->FlushStreamBuffer(gzip_encode_len_);
char gzip_decode_buffer[kDefaultBufferSize];
int gzip_decode_size = kDefaultBufferSize;
- filter->ReadData(gzip_decode_buffer, &gzip_decode_size);
+ filter_->ReadData(gzip_decode_buffer, &gzip_decode_size);
// Compare the decoding result with source data
EXPECT_TRUE(gzip_decode_size == source_len());
@@ -278,12 +292,9 @@ TEST_F(GZipUnitTest, DecodeGZip) {
// To do that, we create a filter with a small buffer that can not hold all
// the input data.
TEST_F(GZipUnitTest, DecodeWithSmallBuffer) {
- std::vector<Filter::FilterType> filter_types;
- filter_types.push_back(Filter::FILTER_TYPE_DEFLATE);
- net::MockFilterContext filter_context(kSmallBufferSize);
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
- ASSERT_TRUE(filter.get());
- DecodeAndCompareWithFilter(filter.get(), source_buffer(), source_len(),
+ InitFilterWithBufferSize(Filter::FILTER_TYPE_DEFLATE, kSmallBufferSize);
+ EXPECT_EQ(kSmallBufferSize, filter_->stream_buffer_size());
+ DecodeAndCompareWithFilter(filter_.get(), source_buffer(), source_len(),
deflate_encode_buffer_, deflate_encode_len_,
kDefaultBufferSize);
}
@@ -293,24 +304,17 @@ TEST_F(GZipUnitTest, DecodeWithSmallBuffer) {
// header correctly. (2) Sometimes the filter will consume input without
// generating output. Verify filter can handle it correctly.
TEST_F(GZipUnitTest, DecodeWithOneByteBuffer) {
- std::vector<Filter::FilterType> filter_types;
- filter_types.push_back(Filter::FILTER_TYPE_GZIP);
- net::MockFilterContext filter_context(1);
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
- ASSERT_TRUE(filter.get());
- DecodeAndCompareWithFilter(filter.get(), source_buffer(), source_len(),
+ InitFilterWithBufferSize(Filter::FILTER_TYPE_GZIP, 1);
+ EXPECT_EQ(1, filter_->stream_buffer_size());
+ DecodeAndCompareWithFilter(filter_.get(), source_buffer(), source_len(),
gzip_encode_buffer_, gzip_encode_len_,
kDefaultBufferSize);
}
// Tests we can decode when caller has small buffer to read out from filter.
TEST_F(GZipUnitTest, DecodeWithSmallOutputBuffer) {
- std::vector<Filter::FilterType> filter_types;
- filter_types.push_back(Filter::FILTER_TYPE_DEFLATE);
- net::MockFilterContext filter_context(kDefaultBufferSize);
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
- ASSERT_TRUE(filter.get());
- DecodeAndCompareWithFilter(filter.get(), source_buffer(), source_len(),
+ InitFilter(Filter::FILTER_TYPE_DEFLATE);
+ DecodeAndCompareWithFilter(filter_.get(), source_buffer(), source_len(),
deflate_encode_buffer_, deflate_encode_len_,
kSmallBufferSize);
}
@@ -318,12 +322,9 @@ TEST_F(GZipUnitTest, DecodeWithSmallOutputBuffer) {
// Tests we can still decode with just 1 byte buffer in the filter and just 1
// byte buffer in the caller.
TEST_F(GZipUnitTest, DecodeWithOneByteInputAndOutputBuffer) {
- std::vector<Filter::FilterType> filter_types;
- filter_types.push_back(Filter::FILTER_TYPE_GZIP);
- net::MockFilterContext filter_context(1);
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
- ASSERT_TRUE(filter.get());
- DecodeAndCompareWithFilter(filter.get(), source_buffer(), source_len(),
+ InitFilterWithBufferSize(Filter::FILTER_TYPE_GZIP, 1);
+ EXPECT_EQ(1, filter_->stream_buffer_size());
+ DecodeAndCompareWithFilter(filter_.get(), source_buffer(), source_len(),
gzip_encode_buffer_, gzip_encode_len_, 1);
}
@@ -337,15 +338,11 @@ TEST_F(GZipUnitTest, DecodeCorruptedData) {
corrupt_data[pos] = !corrupt_data[pos];
// Decode the corrupted data with filter
- std::vector<Filter::FilterType> filter_types;
- filter_types.push_back(Filter::FILTER_TYPE_DEFLATE);
- net::MockFilterContext filter_context(kDefaultBufferSize);
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
- ASSERT_TRUE(filter.get());
+ InitFilter(Filter::FILTER_TYPE_DEFLATE);
char corrupt_decode_buffer[kDefaultBufferSize];
int corrupt_decode_size = kDefaultBufferSize;
- int code = DecodeAllWithFilter(filter.get(), corrupt_data, corrupt_data_len,
+ int code = DecodeAllWithFilter(filter_.get(), corrupt_data, corrupt_data_len,
corrupt_decode_buffer, &corrupt_decode_size);
// Expect failures
@@ -364,15 +361,11 @@ TEST_F(GZipUnitTest, DecodeMissingData) {
--corrupt_data_len;
// Decode the corrupted data with filter
- std::vector<Filter::FilterType> filter_types;
- filter_types.push_back(Filter::FILTER_TYPE_DEFLATE);
- net::MockFilterContext filter_context(kDefaultBufferSize);
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
- ASSERT_TRUE(filter.get());
+ InitFilter(Filter::FILTER_TYPE_DEFLATE);
char corrupt_decode_buffer[kDefaultBufferSize];
int corrupt_decode_size = kDefaultBufferSize;
- int code = DecodeAllWithFilter(filter.get(), corrupt_data, corrupt_data_len,
+ int code = DecodeAllWithFilter(filter_.get(), corrupt_data, corrupt_data_len,
corrupt_decode_buffer, &corrupt_decode_size);
// Expect failures
@@ -388,19 +381,13 @@ TEST_F(GZipUnitTest, DecodeCorruptedHeader) {
corrupt_data[2] = !corrupt_data[2];
// Decode the corrupted data with filter
- std::vector<Filter::FilterType> filter_types;
- filter_types.push_back(Filter::FILTER_TYPE_GZIP);
- net::MockFilterContext filter_context(kDefaultBufferSize);
- scoped_ptr<Filter> filter(Filter::Factory(filter_types, filter_context));
- ASSERT_TRUE(filter.get());
+ InitFilter(Filter::FILTER_TYPE_GZIP);
char corrupt_decode_buffer[kDefaultBufferSize];
int corrupt_decode_size = kDefaultBufferSize;
- int code = DecodeAllWithFilter(filter.get(), corrupt_data, corrupt_data_len,
+ int code = DecodeAllWithFilter(filter_.get(), corrupt_data, corrupt_data_len,
corrupt_decode_buffer, &corrupt_decode_size);
// Expect failures
EXPECT_TRUE(code == Filter::FILTER_ERROR);
}
-
-} // namespace
« no previous file with comments | « net/base/gzip_filter.h ('k') | net/base/mock_filter_context.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698