Chromium Code Reviews| Index: net/spdy/spdy_read_queue_unittest.cc |
| diff --git a/net/spdy/spdy_read_queue_unittest.cc b/net/spdy/spdy_read_queue_unittest.cc |
| index 468764dabad39bb5c963dbe649d80b1113aae51c..a211af11a91d135099846a036229dc5e18bf9954 100644 |
| --- a/net/spdy/spdy_read_queue_unittest.cc |
| +++ b/net/spdy/spdy_read_queue_unittest.cc |
| @@ -9,12 +9,14 @@ |
| #include <memory> |
| #include <string> |
| +#include "base/bind.h" |
| +#include "base/memory/ptr_util.h" |
| #include "base/stl_util.h" |
| #include "net/spdy/spdy_buffer.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| namespace net { |
| - |
| +namespace test { |
|
davidben
2016/10/04 18:41:49
(Huh, is that the usual pattern? I've seen unnames
Bence
2016/10/04 18:49:53
Yes, I see this pattern quite often, see https://c
|
| namespace { |
| const char kData[] = "SPDY read queue test data.\0Some more data."; |
| @@ -84,6 +86,17 @@ void RunEnqueueDequeueTest(size_t enqueue_max_buffer_size, |
| EXPECT_EQ(data, drained_data); |
| } |
| +void OnBufferDiscarded(bool* discarded, |
| + size_t* discarded_bytes, |
| + size_t delta, |
| + SpdyBuffer::ConsumeSource consume_source) { |
| + EXPECT_EQ(SpdyBuffer::DISCARD, consume_source); |
| + *discarded = true; |
| + *discarded_bytes = delta; |
| +} |
| + |
| +} // namespace |
| + |
| class SpdyReadQueueTest : public ::testing::Test {}; |
| // Call RunEnqueueDequeueTest() with various buffer size combinatinos. |
| @@ -101,6 +114,26 @@ TEST_F(SpdyReadQueueTest, CoprimeBufferSizes) { |
| RunEnqueueDequeueTest(3, 2); |
| } |
| -} // namespace |
| +TEST_F(SpdyReadQueueTest, Clear) { |
| + auto buffer = base::MakeUnique<SpdyBuffer>(kData, kDataSize); |
| + bool discarded = false; |
| + size_t discarded_bytes = 0; |
| + buffer->AddConsumeCallback( |
| + base::Bind(&OnBufferDiscarded, &discarded, &discarded_bytes)); |
| + |
| + SpdyReadQueue read_queue; |
| + read_queue.Enqueue(std::move(buffer)); |
| + |
| + EXPECT_FALSE(discarded); |
| + EXPECT_EQ(0u, discarded_bytes); |
| + EXPECT_FALSE(read_queue.IsEmpty()); |
| + |
| + read_queue.Clear(); |
| + |
| + EXPECT_TRUE(discarded); |
| + EXPECT_EQ(kDataSize, discarded_bytes); |
| + EXPECT_TRUE(read_queue.IsEmpty()); |
| +} |
| +} // namespace test |
| } // namespace net |