Chromium Code Reviews| Index: net/filter/mock_source_stream.cc |
| diff --git a/net/filter/mock_source_stream.cc b/net/filter/mock_source_stream.cc |
| index bdf56c6a4e1f18b9a0b48cb2ca913eb1b7ea7611..9714c34a80cc2e7fd3a695e0e95df85b058d94b9 100644 |
| --- a/net/filter/mock_source_stream.cc |
| +++ b/net/filter/mock_source_stream.cc |
| @@ -6,18 +6,21 @@ |
| #include "base/logging.h" |
| #include "net/base/io_buffer.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| namespace net { |
| MockSourceStream::MockSourceStream() |
| : SourceStream(SourceStream::TYPE_NONE), |
| + read_one_byte_at_a_time_(false), |
| awaiting_completion_(false), |
| dest_buffer_(nullptr), |
| dest_buffer_size_(0) {} |
| MockSourceStream::~MockSourceStream() { |
| DCHECK(!awaiting_completion_); |
| - DCHECK(results_.empty()); |
| + // All data should have been consumed. |
| + EXPECT_TRUE(results_.empty()); |
|
mmenke
2016/12/29 22:39:31
Generally, DCHECKs should check for test fixture b
xunjieli
2017/01/03 16:21:18
Acknowledged.
|
| } |
| int MockSourceStream::Read(IOBuffer* dest_buffer, |
| @@ -62,6 +65,18 @@ void MockSourceStream::AddReadResult(const char* data, |
| // buffer used in FilterSourceStream is 32k. |
| DCHECK_GE(32 * 1024, len); |
| DCHECK_LE(0, len); |
| + // Doesn't make any sense to have both an error and data. |
|
xunjieli
2017/01/03 16:21:17
It makes sense to check |len| when error != OK. Co
mmenke
2017/01/03 18:25:42
I think you mean add them to an else clause for th
|
| + if (error != OK) |
| + DCHECK_GE(len, 0); |
| + |
| + if (len > 0 && read_one_byte_at_a_time_) { |
| + for (int i = 0; i < len; ++i) { |
| + QueuedResult result(data + i, 1, OK, mode); |
| + results_.push(result); |
| + } |
| + return; |
| + } |
| + |
| QueuedResult result(data, len, error, mode); |
| results_.push(result); |
| } |