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

Unified Diff: net/filter/gzip_source_stream_unittest.cc

Issue 2480203002: ui: Cleanup class/struct forward declarations (Closed)
Patch Set: Sync CL to position 430550 Created 4 years, 1 month 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/filter/gzip_source_stream.cc ('k') | net/http/http_server_properties_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/filter/gzip_source_stream_unittest.cc
diff --git a/net/filter/gzip_source_stream_unittest.cc b/net/filter/gzip_source_stream_unittest.cc
index f9416237744786e4259b796b62420d7bd0c3bd03..f0cb1802a47bed364d203112db579392871ac84d 100644
--- a/net/filter/gzip_source_stream_unittest.cc
+++ b/net/filter/gzip_source_stream_unittest.cc
@@ -2,12 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include <memory>
#include <string>
#include <utility>
#include "base/bind.h"
#include "base/bit_cast.h"
#include "base/callback.h"
+#include "base/memory/ptr_util.h"
#include "net/base/completion_callback.h"
#include "net/base/io_buffer.h"
#include "net/base/test_completion_callback.h"
@@ -21,7 +23,7 @@ namespace net {
namespace {
-const int kBufferSize = 4096;
+const int kBigBufferSize = 4096;
const int kSmallBufferSize = 1;
// How many bytes to leave unused at the end of |source_data_|. This margin is
@@ -29,42 +31,40 @@ const int kSmallBufferSize = 1;
// out of room in the output buffer.
const size_t kEOFMargin = 64;
+struct GzipTestParam {
+ GzipTestParam(int buf_size, MockSourceStream::Mode read_mode)
+ : buffer_size(buf_size), mode(read_mode) {}
+
+ const int buffer_size;
+ const MockSourceStream::Mode mode;
+};
+
} // namespace
-class GzipSourceStreamTest
- : public ::testing::TestWithParam<MockSourceStream::Mode> {
+class GzipSourceStreamTest : public ::testing::TestWithParam<GzipTestParam> {
protected:
- GzipSourceStreamTest() : output_buffer_size_(kBufferSize) {}
- // If |allow_gzip_fallback| is true, will use
- // GZIP_SOURCE_STREAM_GZIP_WITH_FALLBACK when constructing |gzip_stream_|.
- void Init(bool allow_gzip_fallback) {
- source_data_len_ = kBufferSize - kEOFMargin;
+ GzipSourceStreamTest() : output_buffer_size_(GetParam().buffer_size) {}
+
+ // Helpful function to initialize the test fixture.|type| specifies which type
+ // of GzipSourceStream to create. It must be one of TYPE_GZIP,
+ // TYPE_GZIP_FALLBACK and TYPE_DEFLATE.
+ void Init(SourceStream::SourceType type) {
+ EXPECT_TRUE(SourceStream::TYPE_GZIP == type ||
+ SourceStream::TYPE_GZIP_FALLBACK == type ||
+ SourceStream::TYPE_DEFLATE == type);
+ source_data_len_ = kBigBufferSize - kEOFMargin;
for (size_t i = 0; i < source_data_len_; i++)
source_data_[i] = i % 256;
- deflated_data_len_ = kBufferSize;
- CompressGzip(source_data_, source_data_len_, deflated_data_,
- &deflated_data_len_, false);
-
- gzipped_data_len_ = kBufferSize;
- CompressGzip(source_data_, source_data_len_, gzipped_data_,
- &gzipped_data_len_, true);
+ encoded_data_len_ = kBigBufferSize;
+ CompressGzip(source_data_, source_data_len_, encoded_data_,
+ &encoded_data_len_, type != SourceStream::TYPE_DEFLATE);
output_buffer_ = new IOBuffer(output_buffer_size_);
- std::unique_ptr<MockSourceStream> deflate_source(new MockSourceStream);
- deflate_source_ = deflate_source.get();
- deflate_stream_ = GzipSourceStream::Create(std::move(deflate_source),
- SourceStream::TYPE_DEFLATE);
- std::unique_ptr<MockSourceStream> gzip_source(new MockSourceStream);
- gzip_source_ = gzip_source.get();
- if (allow_gzip_fallback) {
- gzip_stream_ = GzipSourceStream::Create(std::move(gzip_source),
- SourceStream::TYPE_GZIP_FALLBACK);
- } else {
- gzip_stream_ = GzipSourceStream::Create(std::move(gzip_source),
- SourceStream::TYPE_GZIP);
- }
+ std::unique_ptr<MockSourceStream> source(new MockSourceStream());
+ source_ = source.get();
+ stream_ = GzipSourceStream::Create(std::move(source), type);
}
// If MockSourceStream::Mode is ASYNC, completes 1 read from |mock_stream| and
@@ -73,7 +73,7 @@ class GzipSourceStreamTest
int CompleteReadIfAsync(int previous_result,
TestCompletionCallback* callback,
MockSourceStream* mock_stream) {
- if (GetParam() == MockSourceStream::ASYNC) {
+ if (GetParam().mode == MockSourceStream::ASYNC) {
EXPECT_EQ(ERR_IO_PENDING, previous_result);
mock_stream->CompleteNextRead();
return callback->WaitForResult();
@@ -81,187 +81,175 @@ class GzipSourceStreamTest
return previous_result;
}
- void set_output_buffer_size(int output_buffer_size) {
- output_buffer_size_ = output_buffer_size;
- }
-
char* source_data() { return source_data_; }
size_t source_data_len() { return source_data_len_; }
- char* deflated_data() { return deflated_data_; }
- size_t deflated_data_len() { return deflated_data_len_; }
-
- char* gzipped_data() { return gzipped_data_; }
- size_t gzipped_data_len() { return gzipped_data_len_; }
+ char* encoded_data() { return encoded_data_; }
+ size_t encoded_data_len() { return encoded_data_len_; }
IOBuffer* output_buffer() { return output_buffer_.get(); }
char* output_data() { return output_buffer_->data(); }
size_t output_buffer_size() { return output_buffer_size_; }
- MockSourceStream* deflate_source() { return deflate_source_; }
- GzipSourceStream* deflate_stream() { return deflate_stream_.get(); }
- MockSourceStream* gzip_source() { return gzip_source_; }
- GzipSourceStream* gzip_stream() { return gzip_stream_.get(); }
-
- void AddTrailingDeflatedData(const char* data, size_t data_len) {
- DCHECK_LE(data_len, kBufferSize - deflated_data_len_);
- memcpy(deflated_data_ + deflated_data_len_, data, data_len);
- deflated_data_len_ += data_len;
- }
-
- int ReadStream(GzipSourceStream* stream, const CompletionCallback& callback) {
- return stream->Read(output_buffer(), output_buffer_size(), callback);
- }
-
- int ReadDeflateStream(const CompletionCallback& callback) {
- return ReadStream(deflate_stream_.get(), callback);
- }
-
- int ReadGzipStream(const CompletionCallback& callback) {
- return ReadStream(gzip_stream_.get(), callback);
+ MockSourceStream* source() { return source_; }
+ GzipSourceStream* stream() { return stream_.get(); }
+
+ // Reads from |stream_| until an error occurs or the EOF is reached.
+ // When an error occurs, returns the net error code. When an EOF is reached,
+ // returns the number of bytes read and appends data read to |output|.
+ int ReadStream(std::string* output) {
+ int bytes_read = 0;
+ while (true) {
+ TestCompletionCallback callback;
+ int rv = stream_->Read(output_buffer(), output_buffer_size(),
+ callback.callback());
+ if (rv == ERR_IO_PENDING)
+ rv = CompleteReadIfAsync(rv, &callback, source());
+ if (rv == OK)
+ break;
+ if (rv < OK)
+ return rv;
+ EXPECT_GT(rv, OK);
+ bytes_read += rv;
+ output->append(output_data(), rv);
+ }
+ return bytes_read;
}
private:
- char source_data_[kBufferSize];
+ char source_data_[kBigBufferSize];
size_t source_data_len_;
- char deflated_data_[kBufferSize];
- size_t deflated_data_len_;
-
- char gzipped_data_[kBufferSize];
- size_t gzipped_data_len_;
+ char encoded_data_[kBigBufferSize];
+ size_t encoded_data_len_;
scoped_refptr<IOBuffer> output_buffer_;
- int output_buffer_size_;
+ const int output_buffer_size_;
- MockSourceStream* deflate_source_;
- std::unique_ptr<GzipSourceStream> deflate_stream_;
- MockSourceStream* gzip_source_;
- std::unique_ptr<GzipSourceStream> gzip_stream_;
+ MockSourceStream* source_;
+ std::unique_ptr<GzipSourceStream> stream_;
};
-INSTANTIATE_TEST_CASE_P(GzipSourceStreamTests,
- GzipSourceStreamTest,
- ::testing::Values(MockSourceStream::SYNC,
- MockSourceStream::ASYNC));
+INSTANTIATE_TEST_CASE_P(
+ GzipSourceStreamTests,
+ GzipSourceStreamTest,
+ ::testing::Values(GzipTestParam(kBigBufferSize, MockSourceStream::SYNC),
+ GzipTestParam(kSmallBufferSize, MockSourceStream::SYNC),
+ GzipTestParam(kBigBufferSize, MockSourceStream::ASYNC),
+ GzipTestParam(kSmallBufferSize,
+ MockSourceStream::ASYNC)));
TEST_P(GzipSourceStreamTest, EmptyStream) {
- Init(/*allow_gzip_fallback=*/false);
- deflate_source()->AddReadResult("", 0, OK, GetParam());
+ Init(SourceStream::TYPE_DEFLATE);
+ source()->AddReadResult("", 0, OK, GetParam().mode);
TestCompletionCallback callback;
- int result = ReadDeflateStream(callback.callback());
- result = CompleteReadIfAsync(result, &callback, deflate_source());
+ std::string actual_output;
+ int result = ReadStream(&actual_output);
EXPECT_EQ(OK, result);
- EXPECT_EQ("DEFLATE", deflate_stream()->Description());
+ EXPECT_EQ("DEFLATE", stream()->Description());
}
TEST_P(GzipSourceStreamTest, DeflateOneBlock) {
- Init(/*allow_gzip_fallback=*/false);
- deflate_source()->AddReadResult(deflated_data(), deflated_data_len(), OK,
- GetParam());
- TestCompletionCallback callback;
- int rv = ReadDeflateStream(callback.callback());
- rv = CompleteReadIfAsync(rv, &callback, deflate_source());
+ Init(SourceStream::TYPE_DEFLATE);
+ source()->AddReadResult(encoded_data(), encoded_data_len(), OK,
+ GetParam().mode);
+ source()->AddReadResult(encoded_data(), 0, OK, GetParam().mode);
+ std::string actual_output;
+ int rv = ReadStream(&actual_output);
EXPECT_EQ(static_cast<int>(source_data_len()), rv);
- EXPECT_EQ(0, memcmp(output_data(), source_data(), source_data_len()));
- EXPECT_EQ("DEFLATE", deflate_stream()->Description());
+ EXPECT_EQ(std::string(source_data(), source_data_len()), actual_output);
+ EXPECT_EQ("DEFLATE", stream()->Description());
}
TEST_P(GzipSourceStreamTest, GzipOneBloc) {
- Init(/*allow_gzip_fallback=*/false);
- gzip_source()->AddReadResult(gzipped_data(), gzipped_data_len(), OK,
- GetParam());
- TestCompletionCallback callback;
- int rv = ReadGzipStream(callback.callback());
- rv = CompleteReadIfAsync(rv, &callback, gzip_source());
+ Init(SourceStream::TYPE_GZIP);
+ source()->AddReadResult(encoded_data(), encoded_data_len(), OK,
+ GetParam().mode);
+ source()->AddReadResult(encoded_data(), 0, OK, GetParam().mode);
+ std::string actual_output;
+ int rv = ReadStream(&actual_output);
EXPECT_EQ(static_cast<int>(source_data_len()), rv);
- EXPECT_EQ(0, memcmp(output_data(), source_data(), source_data_len()));
- EXPECT_EQ("GZIP", gzip_stream()->Description());
+ EXPECT_EQ(std::string(source_data(), source_data_len()), actual_output);
+ EXPECT_EQ("GZIP", stream()->Description());
}
-TEST_P(GzipSourceStreamTest, DeflateTwoBlocks) {
- Init(/*allow_gzip_fallback=*/false);
- deflate_source()->AddReadResult(deflated_data(), 10, OK, GetParam());
- deflate_source()->AddReadResult(deflated_data() + 10,
- deflated_data_len() - 10, OK, GetParam());
- deflate_source()->AddReadResult(deflated_data() + deflated_data_len(), 0, OK,
- GetParam());
+TEST_P(GzipSourceStreamTest, DeflateTwoReads) {
+ Init(SourceStream::TYPE_DEFLATE);
+ source()->AddReadResult(encoded_data(), 10, OK, GetParam().mode);
+ source()->AddReadResult(encoded_data() + 10, encoded_data_len() - 10, OK,
+ GetParam().mode);
+ source()->AddReadResult(encoded_data() + encoded_data_len(), 0, OK,
+ GetParam().mode);
std::string actual_output;
- while (true) {
- TestCompletionCallback callback;
- int rv = ReadDeflateStream(callback.callback());
- if (rv == ERR_IO_PENDING)
- rv = CompleteReadIfAsync(rv, &callback, deflate_source());
- if (rv == OK)
- break;
- ASSERT_GT(rv, OK);
- actual_output.append(output_data(), rv);
- }
- EXPECT_EQ(source_data_len(), actual_output.size());
+ int rv = ReadStream(&actual_output);
+ EXPECT_EQ(static_cast<int>(source_data_len()), rv);
EXPECT_EQ(std::string(source_data(), source_data_len()), actual_output);
- EXPECT_EQ("DEFLATE", deflate_stream()->Description());
+ EXPECT_EQ("DEFLATE", stream()->Description());
}
TEST_P(GzipSourceStreamTest, PassThroughAfterEOF) {
- Init(/*allow_gzip_fallback=*/false);
+ Init(SourceStream::TYPE_DEFLATE);
char test_data[] = "Hello, World!";
- AddTrailingDeflatedData(test_data, sizeof(test_data));
- deflate_source()->AddReadResult(deflated_data(), deflated_data_len(), OK,
- GetParam());
+ std::string encoded_data_with_trailing_data(encoded_data(),
+ encoded_data_len());
+ encoded_data_with_trailing_data.append(test_data, sizeof(test_data));
+ source()->AddReadResult(encoded_data_with_trailing_data.c_str(),
+ encoded_data_len() + sizeof(test_data), OK,
+ GetParam().mode);
+ source()->AddReadResult(encoded_data(), 0, OK, GetParam().mode);
// Compressed and uncompressed data get returned as separate Read() results,
// so this test has to call Read twice.
- TestCompletionCallback callback;
- int rv = ReadDeflateStream(callback.callback());
- rv = CompleteReadIfAsync(rv, &callback, deflate_source());
- EXPECT_EQ(static_cast<int>(source_data_len() + sizeof(test_data)), rv);
- EXPECT_EQ(0, memcmp(output_data(), source_data(), source_data_len()));
- EXPECT_EQ(0, memcmp(output_data() + source_data_len(), test_data,
- sizeof(test_data)));
- EXPECT_EQ("DEFLATE", deflate_stream()->Description());
+ std::string actual_output;
+ int rv = ReadStream(&actual_output);
+ std::string expected_output(source_data(), source_data_len());
+ expected_output.append(test_data, sizeof(test_data));
+ EXPECT_EQ(static_cast<int>(expected_output.size()), rv);
+ EXPECT_EQ(expected_output, actual_output);
+ EXPECT_EQ("DEFLATE", stream()->Description());
}
TEST_P(GzipSourceStreamTest, MissingZlibHeader) {
- Init(/*allow_gzip_fallback=*/false);
+ Init(SourceStream::TYPE_DEFLATE);
const size_t kZlibHeaderLen = 2;
- deflate_source()->AddReadResult(deflated_data() + kZlibHeaderLen,
- deflated_data_len() - kZlibHeaderLen, OK,
- GetParam());
- TestCompletionCallback callback;
- int rv = ReadDeflateStream(callback.callback());
- rv = CompleteReadIfAsync(rv, &callback, deflate_source());
+ source()->AddReadResult(encoded_data() + kZlibHeaderLen,
+ encoded_data_len() - kZlibHeaderLen, OK,
+ GetParam().mode);
+ source()->AddReadResult(encoded_data(), 0, OK, GetParam().mode);
+ std::string actual_output;
+ int rv = ReadStream(&actual_output);
EXPECT_EQ(static_cast<int>(source_data_len()), rv);
- EXPECT_EQ(0, memcmp(output_data(), source_data(), source_data_len()));
- EXPECT_EQ("DEFLATE", deflate_stream()->Description());
+ EXPECT_EQ(std::string(source_data(), source_data_len()), actual_output);
+ EXPECT_EQ("DEFLATE", stream()->Description());
}
TEST_P(GzipSourceStreamTest, CorruptGzipHeader) {
- Init(/*allow_gzip_fallback=*/false);
- gzipped_data()[0] = 0;
- gzip_source()->AddReadResult(gzipped_data(), gzipped_data_len(), OK,
- GetParam());
- TestCompletionCallback callback;
- int rv = ReadGzipStream(callback.callback());
- rv = CompleteReadIfAsync(rv, &callback, gzip_source());
+ Init(SourceStream::TYPE_GZIP);
+ encoded_data()[0] = 0;
+ source()->AddReadResult(encoded_data(), encoded_data_len(), OK,
+ GetParam().mode);
+ std::string actual_output;
+ int rv = ReadStream(&actual_output);
EXPECT_EQ(ERR_CONTENT_DECODING_FAILED, rv);
- EXPECT_EQ("GZIP", gzip_stream()->Description());
+ EXPECT_EQ("GZIP", stream()->Description());
}
TEST_P(GzipSourceStreamTest, GzipFallback) {
- Init(/*allow_gzip_fallback=*/true);
- gzip_source()->AddReadResult(source_data(), source_data_len(), OK,
- GetParam());
- TestCompletionCallback callback;
- int rv = ReadGzipStream(callback.callback());
- rv = CompleteReadIfAsync(rv, &callback, gzip_source());
+ Init(SourceStream::TYPE_GZIP_FALLBACK);
+ source()->AddReadResult(source_data(), source_data_len(), OK,
+ GetParam().mode);
+ source()->AddReadResult(source_data(), 0, OK, GetParam().mode);
+
+ std::string actual_output;
+ int rv = ReadStream(&actual_output);
EXPECT_EQ(static_cast<int>(source_data_len()), rv);
- EXPECT_EQ(0, memcmp(output_data(), source_data(), source_data_len()));
- EXPECT_EQ("GZIP_FALLBACK", gzip_stream()->Description());
+ EXPECT_EQ(std::string(source_data(), source_data_len()), actual_output);
+ EXPECT_EQ("GZIP_FALLBACK", stream()->Description());
}
// This test checks that the gzip stream source works correctly on 'golden' data
// as produced by gzip(1).
TEST_P(GzipSourceStreamTest, GzipCorrectness) {
- Init(/*allow_gzip_fallback=*/false);
+ Init(SourceStream::TYPE_GZIP);
char plain_data[] = "Hello, World!";
unsigned char gzip_data[] = {
// From:
@@ -270,51 +258,22 @@ TEST_P(GzipSourceStreamTest, GzipCorrectness) {
0x1f, 0x8b, 0x08, 0x00, 0x2b, 0x02, 0x84, 0x55, 0x00, 0x03, 0xf3,
0x48, 0xcd, 0xc9, 0xc9, 0xd7, 0x51, 0x08, 0xcf, 0x2f, 0xca, 0x49,
0x51, 0x04, 0x00, 0xd0, 0xc3, 0x4a, 0xec, 0x0d, 0x00, 0x00, 0x00};
- gzip_source()->AddReadResult(reinterpret_cast<char*>(gzip_data),
- sizeof(gzip_data), OK, GetParam());
- TestCompletionCallback callback;
- int rv = ReadGzipStream(callback.callback());
- rv = CompleteReadIfAsync(rv, &callback, gzip_source());
- EXPECT_EQ(static_cast<int>(strlen(plain_data)), rv);
- EXPECT_EQ(0, memcmp(output_data(), plain_data, strlen(plain_data)));
- EXPECT_EQ("GZIP", gzip_stream()->Description());
-}
-
-TEST_P(GzipSourceStreamTest, GzipCorrectnessWithSmallOutputBuffer) {
- set_output_buffer_size(kSmallBufferSize);
- Init(/*allow_gzip_fallback=*/false);
- char plain_data[] = "Hello, World!";
- unsigned char gzip_data[] = {
- // From:
- // echo -n 'Hello, World!' | gzip | xxd -i | sed -e 's/^/ /'
- // The footer is the last 8 bytes.
- 0x1f, 0x8b, 0x08, 0x00, 0x2b, 0x02, 0x84, 0x55, 0x00, 0x03, 0xf3,
- 0x48, 0xcd, 0xc9, 0xc9, 0xd7, 0x51, 0x08, 0xcf, 0x2f, 0xca, 0x49,
- 0x51, 0x04, 0x00, 0xd0, 0xc3, 0x4a, 0xec, 0x0d, 0x00, 0x00, 0x00};
- gzip_source()->AddReadResult(reinterpret_cast<char*>(gzip_data),
- sizeof(gzip_data), OK, GetParam());
- gzip_source()->AddReadResult(
+ source()->AddReadResult(reinterpret_cast<char*>(gzip_data), sizeof(gzip_data),
+ OK, GetParam().mode);
+ source()->AddReadResult(
reinterpret_cast<char*>(gzip_data) + sizeof(gzip_data), 0, OK,
- GetParam());
+ GetParam().mode);
std::string actual_output;
- while (true) {
- TestCompletionCallback callback;
- int rv = ReadGzipStream(callback.callback());
- if (rv == ERR_IO_PENDING)
- rv = CompleteReadIfAsync(rv, &callback, gzip_source());
- if (rv == OK)
- break;
- ASSERT_GT(rv, OK);
- actual_output.append(output_data(), rv);
- }
+ int rv = ReadStream(&actual_output);
+ EXPECT_EQ(static_cast<int>(strlen(plain_data)), rv);
EXPECT_EQ(plain_data, actual_output);
- EXPECT_EQ("GZIP", gzip_stream()->Description());
+ EXPECT_EQ("GZIP", stream()->Description());
}
// Only test synchronous read because it's not straightforward to know how many
// MockSourceStream reads to complete in order for GzipSourceStream to return.
TEST_P(GzipSourceStreamTest, GzipCorrectnessWithSmallInputBuffer) {
- Init(/*allow_gzip_fallback=*/false);
+ Init(SourceStream::TYPE_GZIP);
char plain_data[] = "Hello, World!";
unsigned char gzip_data[] = {
// From:
@@ -326,30 +285,22 @@ TEST_P(GzipSourceStreamTest, GzipCorrectnessWithSmallInputBuffer) {
size_t gzip_data_len = sizeof(gzip_data);
// Add a sequence of small reads.
for (size_t i = 0; i < gzip_data_len; i++) {
- gzip_source()->AddReadResult(reinterpret_cast<char*>(gzip_data) + i, 1, OK,
- MockSourceStream::SYNC);
+ source()->AddReadResult(reinterpret_cast<char*>(gzip_data) + i, 1, OK,
+ MockSourceStream::SYNC);
}
- gzip_source()->AddReadResult(
- reinterpret_cast<char*>(gzip_data) + gzip_data_len, 0, OK,
- MockSourceStream::SYNC);
- TestCompletionCallback callback;
+ source()->AddReadResult(reinterpret_cast<char*>(gzip_data) + gzip_data_len, 0,
+ OK, MockSourceStream::SYNC);
std::string actual_output;
- while (true) {
- int rv = ReadGzipStream(callback.callback());
- if (rv == OK)
- break;
- ASSERT_GT(rv, OK);
- actual_output.append(output_data(), rv);
- }
- EXPECT_EQ(strlen(plain_data), actual_output.size());
+ int rv = ReadStream(&actual_output);
+ EXPECT_EQ(static_cast<int>(strlen(plain_data)), rv);
EXPECT_EQ(plain_data, actual_output);
- EXPECT_EQ("GZIP", gzip_stream()->Description());
+ EXPECT_EQ("GZIP", stream()->Description());
}
// Same as GzipCorrectness except that last 8 bytes are removed to test that the
// implementation can handle missing footer.
TEST_P(GzipSourceStreamTest, GzipCorrectnessWithoutFooter) {
- Init(/*allow_gzip_fallback=*/false);
+ Init(SourceStream::TYPE_GZIP);
char plain_data[] = "Hello, World!";
unsigned char gzip_data[] = {
// From:
@@ -358,14 +309,15 @@ TEST_P(GzipSourceStreamTest, GzipCorrectnessWithoutFooter) {
0x1f, 0x8b, 0x08, 0x00, 0x2b, 0x02, 0x84, 0x55, 0x00,
0x03, 0xf3, 0x48, 0xcd, 0xc9, 0xc9, 0xd7, 0x51, 0x08,
0xcf, 0x2f, 0xca, 0x49, 0x51, 0x04, 0x00};
- gzip_source()->AddReadResult(reinterpret_cast<char*>(gzip_data),
- sizeof(gzip_data), OK, GetParam());
- TestCompletionCallback callback;
- int rv = ReadGzipStream(callback.callback());
- rv = CompleteReadIfAsync(rv, &callback, gzip_source());
+ source()->AddReadResult(reinterpret_cast<char*>(gzip_data), sizeof(gzip_data),
+ OK, GetParam().mode);
+ source()->AddReadResult(reinterpret_cast<char*>(gzip_data), 0, OK,
+ GetParam().mode);
+ std::string actual_output;
+ int rv = ReadStream(&actual_output);
EXPECT_EQ(static_cast<int>(strlen(plain_data)), rv);
- EXPECT_EQ(0, memcmp(output_data(), plain_data, strlen(plain_data)));
- EXPECT_EQ("GZIP", gzip_stream()->Description());
+ EXPECT_EQ(plain_data, actual_output);
+ EXPECT_EQ("GZIP", stream()->Description());
}
} // namespace net
« no previous file with comments | « net/filter/gzip_source_stream.cc ('k') | net/http/http_server_properties_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698