Index: blimp/net/blimp_message_pump_unittest.cc |
diff --git a/blimp/net/blimp_message_pump_unittest.cc b/blimp/net/blimp_message_pump_unittest.cc |
deleted file mode 100644 |
index 012ed177dadd2bc233883bedfd36d58a2103b223..0000000000000000000000000000000000000000 |
--- a/blimp/net/blimp_message_pump_unittest.cc |
+++ /dev/null |
@@ -1,165 +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 <string> |
- |
-#include "base/callback_helpers.h" |
-#include "blimp/common/create_blimp_message.h" |
-#include "blimp/common/proto/blimp_message.pb.h" |
-#include "blimp/net/blimp_message_pump.h" |
-#include "blimp/net/common.h" |
-#include "blimp/net/connection_error_observer.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 "testing/gmock/include/gmock/gmock.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-using testing::_; |
-using testing::DoAll; |
-using testing::InSequence; |
-using testing::NotNull; |
-using testing::Return; |
-using testing::SaveArg; |
- |
-namespace blimp { |
-namespace { |
- |
-class BlimpMessagePumpTest : public testing::Test { |
- public: |
- BlimpMessagePumpTest() { |
- TabControlMessage* tab_control = nullptr; |
- message1_ = CreateBlimpMessage(&tab_control); |
- InputMessage* input = nullptr; |
- message2_ = CreateBlimpMessage(&input); |
- message_pump_.reset(new BlimpMessagePump(&reader_)); |
- message_pump_->set_error_observer(&error_observer_); |
- } |
- |
- ~BlimpMessagePumpTest() override {} |
- |
- void NullMessageProcessor() { message_pump_->SetMessageProcessor(nullptr); } |
- |
- protected: |
- std::unique_ptr<BlimpMessage> message1_; |
- std::unique_ptr<BlimpMessage> message2_; |
- |
- testing::StrictMock<MockPacketReader> reader_; |
- testing::StrictMock<MockConnectionErrorObserver> error_observer_; |
- testing::StrictMock<MockBlimpMessageProcessor> receiver_; |
- std::unique_ptr<BlimpMessagePump> message_pump_; |
-}; |
- |
-// Reader completes reading one packet asynchronously. |
-TEST_F(BlimpMessagePumpTest, ReadPacket) { |
- net::CompletionCallback read_packet_cb; |
- EXPECT_CALL(reader_, ReadPacket(NotNull(), _)); |
- EXPECT_CALL(reader_, ReadPacket(NotNull(), _)) |
- .WillOnce(DoAll(FillBufferFromMessage<0>(message1_.get()), |
- SaveArg<1>(&read_packet_cb))) |
- .RetiresOnSaturation(); |
- net::CompletionCallback process_msg_cb; |
- EXPECT_CALL(receiver_, MockableProcessMessage(EqualsProto(*message1_), _)) |
- .WillOnce(SaveArg<1>(&process_msg_cb)); |
- message_pump_->SetMessageProcessor(&receiver_); |
- ASSERT_FALSE(read_packet_cb.is_null()); |
- base::ResetAndReturn(&read_packet_cb).Run(message1_->ByteSize()); |
- process_msg_cb.Run(net::OK); |
-} |
- |
-// Reader completes reading two packets asynchronously. |
-TEST_F(BlimpMessagePumpTest, ReadTwoPackets) { |
- net::CompletionCallback read_packet_cb; |
- EXPECT_CALL(reader_, ReadPacket(NotNull(), _)) |
- .WillOnce(DoAll(FillBufferFromMessage<0>(message1_.get()), |
- SaveArg<1>(&read_packet_cb))) |
- .WillOnce(DoAll(FillBufferFromMessage<0>(message2_.get()), |
- SaveArg<1>(&read_packet_cb))); |
- net::CompletionCallback process_msg_cb; |
- { |
- InSequence s; |
- EXPECT_CALL(receiver_, MockableProcessMessage(EqualsProto(*message1_), _)) |
- .WillOnce(SaveArg<1>(&process_msg_cb)) |
- .RetiresOnSaturation(); |
- EXPECT_CALL(receiver_, MockableProcessMessage(EqualsProto(*message2_), _)); |
- } |
- message_pump_->SetMessageProcessor(&receiver_); |
- ASSERT_FALSE(read_packet_cb.is_null()); |
- base::ResetAndReturn(&read_packet_cb).Run(message1_->ByteSize()); |
- |
- // Trigger next packet read |
- process_msg_cb.Run(net::OK); |
- ASSERT_FALSE(read_packet_cb.is_null()); |
- base::ResetAndReturn(&read_packet_cb).Run(message2_->ByteSize()); |
-} |
- |
-// Reader completes reading two packets asynchronously. |
-// The first read succeeds, and the second fails. |
-TEST_F(BlimpMessagePumpTest, ReadTwoPacketsWithError) { |
- net::CompletionCallback process_msg_cb; |
- net::CompletionCallback read_packet_cb; |
- EXPECT_CALL(reader_, ReadPacket(NotNull(), _)) |
- .WillOnce(DoAll(FillBufferFromMessage<0>(message1_.get()), |
- SaveArg<1>(&read_packet_cb))) |
- .WillOnce(DoAll(FillBufferFromMessage<0>(message2_.get()), |
- SaveArg<1>(&read_packet_cb))); |
- EXPECT_CALL(receiver_, MockableProcessMessage(EqualsProto(*message1_), _)) |
- .WillOnce(SaveArg<1>(&process_msg_cb)); |
- EXPECT_CALL(error_observer_, OnConnectionError(net::ERR_FAILED)); |
- |
- message_pump_->SetMessageProcessor(&receiver_); |
- ASSERT_FALSE(read_packet_cb.is_null()); |
- base::ResetAndReturn(&read_packet_cb).Run(message1_->ByteSize()); |
- |
- // Trigger next packet read |
- process_msg_cb.Run(net::OK); |
- ASSERT_FALSE(read_packet_cb.is_null()); |
- base::ResetAndReturn(&read_packet_cb).Run(net::ERR_FAILED); |
-} |
- |
-// Reader completes reading one packet synchronously, but packet is invalid |
-TEST_F(BlimpMessagePumpTest, InvalidPacket) { |
- net::CompletionCallback read_packet_cb; |
- std::string test_msg("msg"); |
- EXPECT_CALL(reader_, ReadPacket(NotNull(), _)) |
- .WillOnce(DoAll(FillBufferFromString<0>(test_msg), |
- SaveArg<1>(&read_packet_cb))); |
- EXPECT_CALL(error_observer_, OnConnectionError(net::ERR_FAILED)); |
- |
- message_pump_->SetMessageProcessor(&receiver_); |
- ASSERT_FALSE(read_packet_cb.is_null()); |
- base::ResetAndReturn(&read_packet_cb).Run(message1_->ByteSize()); |
-} |
- |
-// Outgoing MessageProcessor can be set to NULL if no read is pending. |
-// This test NULLs the outgoing processor from within ProcessMessage(). |
-TEST_F(BlimpMessagePumpTest, NullMessageProcessor) { |
- // Set up a ReadPacket expectation to return one message to process. |
- net::CompletionCallback read_packet_cb; |
- EXPECT_CALL(reader_, ReadPacket(NotNull(), _)) |
- .WillOnce(DoAll(FillBufferFromMessage<0>(message1_.get()), |
- SaveArg<1>(&read_packet_cb))) |
- .RetiresOnSaturation(); |
- |
- // Set up a ProcessMessage expectation to NULL the outgoing processor. |
- net::CompletionCallback process_msg_cb; |
- EXPECT_CALL(receiver_, MockableProcessMessage(EqualsProto(*message1_), _)) |
- .WillOnce(DoAll( |
- InvokeWithoutArgs(this, &BlimpMessagePumpTest::NullMessageProcessor), |
- SaveArg<1>(&process_msg_cb))); |
- |
- // Set the outgoing processor to start the MessagePump. |
- message_pump_->SetMessageProcessor(&receiver_); |
- ASSERT_FALSE(read_packet_cb.is_null()); |
- base::ResetAndReturn(&read_packet_cb).Run(message1_->ByteSize()); |
- process_msg_cb.Run(net::OK); |
- // Running |process_msg_cb| should NOT trigger another ReadPacket call. |
-} |
- |
-} // namespace |
- |
-} // namespace blimp |