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

Unified Diff: blimp/net/client_connection_manager_unittest.cc

Issue 2439403003: Refactor BlimpConnection to TCPConnection (Closed)
Patch Set: Added missing Engine Transport Created 4 years, 2 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
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.

Powered by Google App Engine
This is Rietveld 408576698