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

Unified Diff: blimp/net/stream_packet_reader_unittest.cc

Issue 2632803002: Remove all blimp network code. (Closed)
Patch Set: merge from origin/master for good measure Created 3 years, 11 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 | « blimp/net/stream_packet_reader.cc ('k') | blimp/net/stream_packet_writer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: blimp/net/stream_packet_reader_unittest.cc
diff --git a/blimp/net/stream_packet_reader_unittest.cc b/blimp/net/stream_packet_reader_unittest.cc
deleted file mode 100644
index 37dc7589176eccfd717c874fdd5705dafe9e0351..0000000000000000000000000000000000000000
--- a/blimp/net/stream_packet_reader_unittest.cc
+++ /dev/null
@@ -1,433 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <stddef.h>
-#include <memory>
-#include <string>
-
-#include "base/at_exit.h"
-#include "base/memory/ptr_util.h"
-#include "base/message_loop/message_loop.h"
-#include "base/sys_byteorder.h"
-#include "blimp/net/blimp_stats.h"
-#include "blimp/net/common.h"
-#include "blimp/net/stream_packet_reader.h"
-#include "blimp/net/test_common.h"
-#include "net/base/completion_callback.h"
-#include "net/base/io_buffer.h"
-#include "net/base/net_errors.h"
-#include "net/base/test_completion_callback.h"
-#include "net/socket/socket.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using testing::_;
-using testing::DoAll;
-using testing::Mock;
-using testing::NotNull;
-using testing::Return;
-using testing::SaveArg;
-using testing::WithArg;
-
-namespace blimp {
-namespace {
-
-class StreamPacketReaderTest : public testing::Test {
- public:
- StreamPacketReaderTest()
- : buffer_(new net::GrowableIOBuffer),
- test_msg_("U WOT M8"),
- data_reader_(&socket_) {}
-
- ~StreamPacketReaderTest() override {}
-
- void SetUp() override {
- ASSERT_EQ(0, BlimpStats::GetInstance()->Get(BlimpStats::BYTES_RECEIVED));
- }
-
- void ReadPacket() { data_reader_.ReadPacket(buffer_, callback_.callback()); }
-
- protected:
- base::ShadowingAtExitManager at_exit_manager;
- base::MessageLoop message_loop_;
- scoped_refptr<net::GrowableIOBuffer> buffer_;
- std::string test_msg_;
- net::TestCompletionCallback callback_;
- testing::StrictMock<MockStreamSocket> socket_;
- testing::InSequence sequence_;
- StreamPacketReader data_reader_;
-};
-
-// Successful read with 1 async header read and 1 async payload read.
-TEST_F(StreamPacketReaderTest, ReadAsyncHeaderAsyncPayload) {
- net::CompletionCallback socket_cb;
-
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg_.size())),
- SaveArg<2>(&socket_cb), Return(net::ERR_IO_PENDING)));
- EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _))
- .WillOnce(DoAll(FillBufferFromString<0>(test_msg_),
- SaveArg<2>(&socket_cb), Return(net::ERR_IO_PENDING)));
-
- ReadPacket();
- socket_cb.Run(kPacketHeaderSizeBytes);
- socket_cb.Run(test_msg_.size());
- ASSERT_EQ(static_cast<int>(test_msg_.size()), callback_.WaitForResult());
- EXPECT_TRUE(BufferStartsWith(buffer_.get(), test_msg_.size(), test_msg_));
-}
-
-// Successful read with 1 async header read and 1 sync payload read.
-TEST_F(StreamPacketReaderTest, ReadAsyncHeaderSyncPayload) {
- net::CompletionCallback socket_cb;
-
- // Asynchronous payload read expectation.
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg_.size())),
- SaveArg<2>(&socket_cb), Return(net::ERR_IO_PENDING)));
-
- // Synchronous payload read expectation. Fills the buffer and returns
- // immediately.
- EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _))
- .WillOnce(
- DoAll(FillBufferFromString<0>(test_msg_), Return(test_msg_.size())));
-
- ReadPacket();
- EXPECT_FALSE(callback_.have_result());
-
- socket_cb.Run(kPacketHeaderSizeBytes);
- ASSERT_EQ(static_cast<int>(test_msg_.size()), callback_.WaitForResult());
- EXPECT_TRUE(BufferStartsWith(buffer_.get(), test_msg_.size(), test_msg_));
-}
-
-// Successful read with 1 sync header read and 1 async payload read.
-TEST_F(StreamPacketReaderTest, ReadSyncHeaderAsyncPayload) {
- net::CompletionCallback socket_cb;
-
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg_.size())),
- Return(kPacketHeaderSizeBytes)));
- EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _))
- .WillOnce(DoAll(FillBufferFromString<0>(test_msg_),
- SaveArg<2>(&socket_cb), Return(net::ERR_IO_PENDING)));
-
- ReadPacket();
- socket_cb.Run(test_msg_.size());
- ASSERT_EQ(static_cast<int>(test_msg_.size()), callback_.WaitForResult());
- EXPECT_TRUE(BufferStartsWith(buffer_.get(), test_msg_.size(), test_msg_));
-}
-
-// Successful read with 1 sync header read and 1 sync payload read.
-TEST_F(StreamPacketReaderTest, ReadSyncHeaderSyncPayload) {
- net::CompletionCallback socket_cb;
-
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg_.size())),
- Return(kPacketHeaderSizeBytes)));
- EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _))
- .WillOnce(
- DoAll(FillBufferFromString<0>(test_msg_), Return(test_msg_.size())));
-
- ReadPacket();
- ASSERT_EQ(static_cast<int>(test_msg_.size()), callback_.WaitForResult());
- EXPECT_TRUE(BufferStartsWith(buffer_.get(), test_msg_.size(), test_msg_));
-}
-
-// Successful read of 2 messages, header and payload reads all completing
-// synchronously with no partial results.
-TEST_F(StreamPacketReaderTest, ReadMultipleMessagesSync) {
- net::CompletionCallback socket_cb;
- std::string test_msg2 = test_msg_ + "SlightlyLongerString";
-
- // Read the first message's header synchronously.
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg_.size())),
- Return(kPacketHeaderSizeBytes)))
- .RetiresOnSaturation();
-
- // Read the first message's payload synchronously.
- EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _))
- .WillOnce(
- DoAll(FillBufferFromString<0>(test_msg_), Return(test_msg_.size())))
- .RetiresOnSaturation();
-
- // Read the second message's header synchronously.
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg2.size())),
- Return(kPacketHeaderSizeBytes)))
- .RetiresOnSaturation();
-
- // Read the second message's payload synchronously.
- EXPECT_CALL(socket_, Read(NotNull(), test_msg2.size(), _))
- .WillOnce(
- DoAll(FillBufferFromString<0>(test_msg2), Return(test_msg2.size())))
- .RetiresOnSaturation();
-
- ReadPacket();
- ASSERT_EQ(static_cast<int>(test_msg_.size()), callback_.WaitForResult());
- EXPECT_EQ(static_cast<int>(test_msg_.size()),
- BlimpStats::GetInstance()->Get(BlimpStats::BYTES_RECEIVED));
-
- ReadPacket();
- ASSERT_EQ(static_cast<int>(test_msg2.size()), callback_.WaitForResult());
- EXPECT_EQ(static_cast<int>(test_msg_.size() + test_msg2.size()),
- BlimpStats::GetInstance()->Get(BlimpStats::BYTES_RECEIVED));
-
- EXPECT_TRUE(BufferStartsWith(buffer_.get(), test_msg2.size(), test_msg2));
- EXPECT_FALSE(callback_.have_result());
-}
-
-// Successful read of 2 messages, header and payload reads all completing
-// asynchronously with no partial results.
-TEST_F(StreamPacketReaderTest, ReadMultipleMessagesAsync) {
- net::TestCompletionCallback read_cb1;
- net::TestCompletionCallback read_cb2;
- net::CompletionCallback socket_cb;
-
- // Read a header asynchronously.
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg_.size())),
- SaveArg<2>(&socket_cb), Return(net::ERR_IO_PENDING)))
- .RetiresOnSaturation();
-
- // Read a payload asynchronously.
- EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _))
- .WillOnce(DoAll(FillBufferFromString<0>(test_msg_),
- SaveArg<2>(&socket_cb), Return(net::ERR_IO_PENDING)))
- .RetiresOnSaturation();
-
- // Read a header asynchronously.
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg_.size())),
- SaveArg<2>(&socket_cb), Return(net::ERR_IO_PENDING)))
- .RetiresOnSaturation();
-
- // Read a payload asynchronously.
- EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _))
- .WillOnce(DoAll(FillBufferFromString<0>(test_msg_),
- SaveArg<2>(&socket_cb), Return(net::ERR_IO_PENDING)))
- .RetiresOnSaturation();
-
- data_reader_.ReadPacket(buffer_, read_cb1.callback());
- socket_cb.Run(kPacketHeaderSizeBytes);
- socket_cb.Run(test_msg_.size());
- ASSERT_EQ(static_cast<int>(test_msg_.size()), read_cb1.WaitForResult());
-
- data_reader_.ReadPacket(buffer_, read_cb2.callback());
- socket_cb.Run(kPacketHeaderSizeBytes);
- socket_cb.Run(test_msg_.size());
- ASSERT_EQ(static_cast<int>(test_msg_.size()), read_cb2.WaitForResult());
- EXPECT_TRUE(BufferStartsWith(buffer_.get(), test_msg_.size(), test_msg_));
-}
-
-// Verify that partial header reads are supported.
-// Read #0: 1 header byte is read.
-// Read #1: Remainder of header bytes read.
-TEST_F(StreamPacketReaderTest, PartialHeaderReadAsync) {
- net::CompletionCallback cb;
- std::string header = EncodeHeader(test_msg_.size());
-
- // The first byte is received (sliced via substr()).
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(header.substr(0, 1)),
- SaveArg<2>(&cb), Return(net::ERR_IO_PENDING)));
- // The remainder is received (sliced via substr()).
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes - 1, _))
- .WillOnce(DoAll(
- FillBufferFromString<0>(header.substr(1, kPacketHeaderSizeBytes - 1)),
- SaveArg<2>(&cb), Return(net::ERR_IO_PENDING)));
- // Verify that we start reading the body once the header has been fully read.
- EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _))
- .WillOnce(Return(net::ERR_IO_PENDING));
-
- ReadPacket();
- cb.Run(1);
- cb.Run(kPacketHeaderSizeBytes - 1);
-}
-
-// Verify that partial payload reads are supported.
-// Read #0: Header is fully read synchronously.
-// Read #1: First payload byte is read. (Um, it's an acoustic cup modem.)
-// Read #2: Remainder of payload bytes are read.
-TEST_F(StreamPacketReaderTest, PartialPayloadReadAsync) {
- net::CompletionCallback cb;
-
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg_.size())),
- Return(kPacketHeaderSizeBytes)));
- EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _))
- .WillOnce(DoAll(FillBufferFromString<0>(test_msg_.substr(0, 1)),
- SaveArg<2>(&cb), Return(net::ERR_IO_PENDING)));
- ReadPacket();
- EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size() - 1, _))
- .WillOnce(DoAll(
- FillBufferFromString<0>(test_msg_.substr(1, test_msg_.size() - 1)),
- SaveArg<2>(&cb), Return(net::ERR_IO_PENDING)));
-
- cb.Run(1);
- cb.Run(test_msg_.size() - 1);
- EXPECT_EQ(static_cast<int>(test_msg_.size()), callback_.WaitForResult());
-}
-
-// Verify that synchronous header read errors are reported correctly.
-TEST_F(StreamPacketReaderTest, ReadHeaderErrorSync) {
- net::CompletionCallback cb;
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(Return(net::ERR_FAILED));
- ReadPacket();
- EXPECT_EQ(net::ERR_FAILED, callback_.WaitForResult());
-}
-
-// Verify that synchronous payload read errors are reported correctly.
-TEST_F(StreamPacketReaderTest, ReadPayloadErrorSync) {
- net::CompletionCallback cb;
-
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg_.size())),
- Return(kPacketHeaderSizeBytes)));
- EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _))
- .WillOnce(Return(net::ERR_FAILED));
-
- ReadPacket();
- EXPECT_EQ(net::ERR_FAILED, callback_.WaitForResult());
-}
-
-// Verify EOF handling during synchronous header reads.
-TEST_F(StreamPacketReaderTest, ReadHeaderEOFSync) {
- net::CompletionCallback cb;
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(Return(0));
- ReadPacket();
- EXPECT_EQ(net::ERR_CONNECTION_CLOSED, callback_.WaitForResult());
-}
-
-// Verify EOF handling during synchronous payload reads.
-TEST_F(StreamPacketReaderTest, ReadPayloadEOFSync) {
- net::CompletionCallback cb;
-
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg_.size())),
- Return(kPacketHeaderSizeBytes)));
- EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _))
- .WillOnce(Return(0));
-
- ReadPacket();
- EXPECT_EQ(net::ERR_CONNECTION_CLOSED, callback_.WaitForResult());
-}
-
-// Verify EOF handling during asynchronous header reads.
-TEST_F(StreamPacketReaderTest, ReadHeaderEOFAsync) {
- net::CompletionCallback cb;
- net::TestCompletionCallback test_cb;
-
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg_.size())),
- SaveArg<2>(&cb), Return(net::ERR_IO_PENDING)));
-
- ReadPacket();
- cb.Run(0);
- EXPECT_EQ(net::ERR_CONNECTION_CLOSED, callback_.WaitForResult());
-}
-
-// Verify EOF handling during asynchronous payload reads.
-TEST_F(StreamPacketReaderTest, ReadPayloadEOFAsync) {
- net::CompletionCallback cb;
-
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg_.size())),
- Return(kPacketHeaderSizeBytes)));
- EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _))
- .WillOnce(DoAll(SaveArg<2>(&cb), Return(net::ERR_IO_PENDING)));
-
- ReadPacket();
- cb.Run(0);
- EXPECT_EQ(net::ERR_CONNECTION_CLOSED, callback_.WaitForResult());
-}
-
-// Verify that async header read errors are reported correctly.
-TEST_F(StreamPacketReaderTest, ReadHeaderErrorAsync) {
- net::CompletionCallback cb;
- net::TestCompletionCallback test_cb;
-
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg_.size())),
- SaveArg<2>(&cb), Return(net::ERR_IO_PENDING)));
-
- ReadPacket();
- cb.Run(net::ERR_FAILED);
- EXPECT_EQ(net::ERR_FAILED, callback_.WaitForResult());
-}
-
-// Verify that asynchronous paylod read errors are reported correctly.
-TEST_F(StreamPacketReaderTest, ReadPayloadErrorAsync) {
- net::CompletionCallback cb;
-
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg_.size())),
- Return(kPacketHeaderSizeBytes)));
- EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _))
- .WillOnce(DoAll(SaveArg<2>(&cb), Return(net::ERR_IO_PENDING)));
-
- ReadPacket();
- cb.Run(net::ERR_FAILED);
- EXPECT_EQ(net::ERR_FAILED, callback_.WaitForResult());
-}
-
-// Verify that async header read completions don't break us if the
-// StreamPacketReader object was destroyed.
-TEST_F(StreamPacketReaderTest, ReaderDeletedDuringAsyncHeaderRead) {
- net::CompletionCallback cb;
- net::TestCompletionCallback test_cb;
- std::unique_ptr<StreamPacketReader> reader(new StreamPacketReader(&socket_));
-
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg_.size())),
- SaveArg<2>(&cb), Return(net::ERR_IO_PENDING)));
-
- reader->ReadPacket(buffer_, callback_.callback());
- reader.reset(); // Delete the reader object.
- cb.Run(kPacketHeaderSizeBytes); // Complete the socket operation.
-}
-
-// Verify that async payload read completions don't break us if the
-// StreamPacketReader object was destroyed.
-TEST_F(StreamPacketReaderTest, ReaderDeletedDuringAsyncPayloadRead) {
- net::CompletionCallback cb;
- std::unique_ptr<StreamPacketReader> reader(new StreamPacketReader(&socket_));
-
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(test_msg_.size())),
- Return(kPacketHeaderSizeBytes)));
- EXPECT_CALL(socket_, Read(NotNull(), test_msg_.size(), _))
- .WillOnce(DoAll(SaveArg<2>(&cb), Return(net::ERR_IO_PENDING)));
- reader->ReadPacket(buffer_, callback_.callback());
-
- reader.reset(); // Delete the reader object.
- cb.Run(net::ERR_FAILED); // Complete the socket operation.
-}
-
-// Verify that zero-length payload is reported as an erroneous input.
-TEST_F(StreamPacketReaderTest, ReadWhatIsThisAPacketForAnts) {
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(FillBufferFromString<0>(EncodeHeader(0)),
- Return(kPacketHeaderSizeBytes)))
- .RetiresOnSaturation();
-
- ReadPacket();
- EXPECT_EQ(net::ERR_INVALID_RESPONSE, callback_.WaitForResult());
-}
-
-// Verify that an illegally large payloads is reported as an erroneous inputs.
-TEST_F(StreamPacketReaderTest, ReadErrorIllegallyLargePayload) {
- EXPECT_CALL(socket_, Read(NotNull(), kPacketHeaderSizeBytes, _))
- .WillOnce(DoAll(
- FillBufferFromString<0>(EncodeHeader(kMaxPacketPayloadSizeBytes + 1)),
- Return(kPacketHeaderSizeBytes)));
-
- ReadPacket();
- EXPECT_EQ(net::ERR_INVALID_RESPONSE, callback_.WaitForResult());
-}
-
-} // namespace
-
-} // namespace blimp
« no previous file with comments | « blimp/net/stream_packet_reader.cc ('k') | blimp/net/stream_packet_writer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698