| Index: net/tools/quic/quic_dispatcher_test.cc
|
| diff --git a/net/tools/quic/quic_dispatcher_test.cc b/net/tools/quic/quic_dispatcher_test.cc
|
| index 8e1a08a917eaa53d185af0ecb99f110d4bc29b36..63400c1ba792628227809b747b4938cabab76fa8 100644
|
| --- a/net/tools/quic/quic_dispatcher_test.cc
|
| +++ b/net/tools/quic/quic_dispatcher_test.cc
|
| @@ -12,6 +12,7 @@
|
| #include "net/quic/crypto/quic_random.h"
|
| #include "net/quic/quic_crypto_stream.h"
|
| #include "net/quic/test_tools/quic_test_utils.h"
|
| +#include "net/quic/test_tools/quic_test_writer.h"
|
| #include "net/tools/epoll_server/epoll_server.h"
|
| #include "net/tools/quic/quic_time_wait_list_manager.h"
|
| #include "net/tools/quic/test_tools/quic_dispatcher_peer.h"
|
| @@ -22,6 +23,7 @@
|
| using base::StringPiece;
|
| using net::EpollServer;
|
| using net::test::MockSession;
|
| +using net::test::QuicTestWriter;
|
| using net::tools::test::MockConnection;
|
| using std::make_pair;
|
| using testing::_;
|
| @@ -270,9 +272,35 @@ TEST_F(QuicDispatcherTest, StrayPacketToTimeWaitListManager) {
|
| ProcessPacket(addr, guid, false, "foo");
|
| }
|
|
|
| +class BlockingWriter : public QuicTestWriter {
|
| + public:
|
| + BlockingWriter() : write_blocked_(false) {}
|
| +
|
| + virtual bool IsWriteBlocked() const OVERRIDE { return write_blocked_; }
|
| + virtual void SetWritable() OVERRIDE { write_blocked_ = false; }
|
| + virtual bool IsWriteBlockedDataBuffered() const OVERRIDE { return false; }
|
| +
|
| + virtual WriteResult WritePacket(
|
| + const char* buffer, size_t buf_len, const IPAddressNumber& self_address,
|
| + const IPEndPoint& peer_address,
|
| + QuicBlockedWriterInterface* blocked_writer) OVERRIDE {
|
| + if (write_blocked_) {
|
| + return WriteResult(WRITE_STATUS_BLOCKED, EAGAIN);
|
| + } else {
|
| + return writer()->WritePacket(buffer, buf_len, self_address, peer_address,
|
| + blocked_writer);
|
| + }
|
| + }
|
| +
|
| + bool write_blocked_;
|
| +};
|
| +
|
| class QuicWriteBlockedListTest : public QuicDispatcherTest {
|
| public:
|
| virtual void SetUp() {
|
| + writer_ = new BlockingWriter;
|
| + QuicDispatcherPeer::UseWriter(&dispatcher_, writer_);
|
| +
|
| IPEndPoint addr(net::test::Loopback4(), 1);
|
|
|
| EXPECT_CALL(dispatcher_, CreateQuicSession(_, _, addr))
|
| @@ -295,11 +323,12 @@ class QuicWriteBlockedListTest : public QuicDispatcherTest {
|
| }
|
|
|
| bool SetBlocked() {
|
| - QuicDispatcherPeer::SetWriteBlocked(&dispatcher_);
|
| + writer_->write_blocked_ = true;;
|
| return true;
|
| }
|
|
|
| protected:
|
| + BlockingWriter* writer_;
|
| QuicDispatcher::WriteBlockedList* blocked_list_;
|
| };
|
|
|
|
|