| Index: blimp/net/client_connection_manager_unittest.cc
|
| diff --git a/blimp/net/client_connection_manager_unittest.cc b/blimp/net/client_connection_manager_unittest.cc
|
| index 6337c9537cccb5583fd1c0643298c7729611ca65..4b43f44e8a3baa2755554164bc4198ce08a45ced 100644
|
| --- a/blimp/net/client_connection_manager_unittest.cc
|
| +++ b/blimp/net/client_connection_manager_unittest.cc
|
| @@ -18,6 +18,7 @@
|
| #include "net/base/completion_callback.h"
|
| #include "net/base/net_errors.h"
|
| #include "net/base/test_completion_callback.h"
|
| +#include "testing/gmock/include/gmock/gmock-more-actions.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| @@ -37,11 +38,11 @@ class ClientConnectionManagerTest : public testing::Test {
|
| : manager_(new ClientConnectionManager(&connection_handler_)),
|
| transport1_(new testing::StrictMock<MockTransport>),
|
| transport2_(new testing::StrictMock<MockTransport>),
|
| - reader_(new testing::StrictMock<MockPacketReader>),
|
| - writer_(new testing::StrictMock<MockPacketWriter>),
|
| + connection_(new testing::StrictMock<MockBlimpConnection>),
|
| start_connection_message_(
|
| CreateStartConnectionMessage(kDummyClientAuthToken,
|
| - kProtocolVersion)) {
|
| + kProtocolVersion)),
|
| + message_capture_(new testing::StrictMock<MockBlimpMessageProcessor>) {
|
| manager_->set_client_auth_token(kDummyClientAuthToken);
|
| }
|
|
|
| @@ -53,25 +54,27 @@ class ClientConnectionManagerTest : public testing::Test {
|
| std::unique_ptr<ClientConnectionManager> manager_;
|
| std::unique_ptr<testing::StrictMock<MockTransport>> transport1_;
|
| std::unique_ptr<testing::StrictMock<MockTransport>> transport2_;
|
| - std::unique_ptr<MockPacketReader> reader_;
|
| - std::unique_ptr<MockPacketWriter> writer_;
|
| + std::unique_ptr<testing::StrictMock<MockBlimpConnection>> connection_;
|
| std::unique_ptr<BlimpMessage> start_connection_message_;
|
| + std::unique_ptr<testing::StrictMock<MockBlimpMessageProcessor>>
|
| + message_capture_;
|
| };
|
|
|
| -// The 1st transport connects, and the 2nd transport is not used.
|
| +// Tests that the transport connection works.
|
| TEST_F(ClientConnectionManagerTest, FirstTransportConnects) {
|
| net::CompletionCallback write_cb;
|
| net::CompletionCallback connect_cb_1;
|
| EXPECT_CALL(*transport1_, Connect(_)).WillOnce(SaveArg<0>(&connect_cb_1));
|
| EXPECT_CALL(connection_handler_, HandleConnectionPtr(_));
|
| - EXPECT_CALL(*writer_,
|
| - WritePacket(BufferEqualsProto(*start_connection_message_), _))
|
| + EXPECT_CALL(
|
| + *message_capture_,
|
| + MockableProcessMessage(EqualsProto(*start_connection_message_), _))
|
| .WillOnce(SaveArg<1>(&write_cb));
|
| + EXPECT_CALL(*connection_, AddConnectionErrorObserver(_));
|
| + EXPECT_CALL(*connection_, GetOutgoingMessageProcessor())
|
| + .WillOnce(Return(message_capture_.get()));
|
|
|
| - EXPECT_CALL(*transport1_, TakeMessagePortPtr())
|
| - .WillOnce(
|
| - Return(new MessagePort(std::move(reader_), std::move(writer_))));
|
| -
|
| + transport1_->SetMockConnection(std::move(connection_));
|
| EXPECT_TRUE(connect_cb_1.is_null());
|
| manager_->AddTransport(std::move(transport1_));
|
| manager_->AddTransport(std::move(transport2_));
|
| @@ -88,13 +91,20 @@ TEST_F(ClientConnectionManagerTest, SecondTransportConnects) {
|
| EXPECT_CALL(*transport1_, Connect(_)).WillOnce(SaveArg<0>(&connect_cb_1));
|
| net::CompletionCallback connect_cb_2;
|
| EXPECT_CALL(*transport2_, Connect(_)).WillOnce(SaveArg<0>(&connect_cb_2));
|
| - EXPECT_CALL(*writer_,
|
| - WritePacket(BufferEqualsProto(*start_connection_message_), _))
|
| + EXPECT_CALL(
|
| + *message_capture_,
|
| + MockableProcessMessage(EqualsProto(*start_connection_message_), _))
|
| .WillOnce(SaveArg<1>(&write_cb));
|
| - EXPECT_CALL(connection_handler_, HandleConnectionPtr(_));
|
| - EXPECT_CALL(*transport2_, TakeMessagePortPtr())
|
| - .WillOnce(
|
| - Return(new MessagePort(std::move(reader_), std::move(writer_))));
|
| + EXPECT_CALL(*connection_, AddConnectionErrorObserver(_));
|
| + EXPECT_CALL(*connection_, GetOutgoingMessageProcessor())
|
| + .WillOnce(Return(message_capture_.get()));
|
| +
|
| + BlimpConnection* actual_connection = nullptr;
|
| + BlimpConnection* expected_connection = connection_.get();
|
| + EXPECT_CALL(connection_handler_, HandleConnectionPtr(_))
|
| + .WillOnce(SaveArg<0>(&actual_connection));
|
| +
|
| + transport2_->SetMockConnection(std::move(connection_));
|
|
|
| EXPECT_TRUE(connect_cb_1.is_null());
|
| EXPECT_TRUE(connect_cb_2.is_null());
|
| @@ -106,6 +116,7 @@ TEST_F(ClientConnectionManagerTest, SecondTransportConnects) {
|
| EXPECT_FALSE(connect_cb_2.is_null());
|
| base::ResetAndReturn(&connect_cb_2).Run(net::OK);
|
| base::ResetAndReturn(&write_cb).Run(net::OK);
|
| + EXPECT_EQ(expected_connection, actual_connection);
|
| }
|
|
|
| // Both transports fail to connect.
|
|
|