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

Side by Side Diff: blimp/net/client_connection_manager_unittest.cc

Issue 1501463003: [Blimp Net] Client sends START_CONNECTION message (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addresses wez's comments. Created 5 years 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 unified diff | Download patch
« no previous file with comments | « blimp/net/client_connection_manager.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stddef.h> 5 #include <stddef.h>
6 #include <string> 6 #include <string>
7 7
8 #include "base/callback_helpers.h" 8 #include "base/callback_helpers.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "blimp/common/create_blimp_message.h"
11 #include "blimp/common/proto/blimp_message.pb.h"
12 #include "blimp/common/protocol_version.h"
10 #include "blimp/net/blimp_connection.h" 13 #include "blimp/net/blimp_connection.h"
11 #include "blimp/net/blimp_transport.h" 14 #include "blimp/net/blimp_transport.h"
12 #include "blimp/net/client_connection_manager.h" 15 #include "blimp/net/client_connection_manager.h"
13 #include "blimp/net/test_common.h" 16 #include "blimp/net/test_common.h"
14 #include "net/base/completion_callback.h" 17 #include "net/base/completion_callback.h"
15 #include "net/base/net_errors.h" 18 #include "net/base/net_errors.h"
16 #include "net/base/test_completion_callback.h" 19 #include "net/base/test_completion_callback.h"
17 #include "testing/gmock/include/gmock/gmock.h" 20 #include "testing/gmock/include/gmock/gmock.h"
18 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
19 22
20 using testing::_; 23 using testing::_;
21 using testing::Eq; 24 using testing::Eq;
22 using testing::Return; 25 using testing::Return;
23 using testing::SaveArg; 26 using testing::SaveArg;
24 27
25 namespace blimp { 28 namespace blimp {
26 29
27 class ClientConnectionManagerTest : public testing::Test { 30 class ClientConnectionManagerTest : public testing::Test {
28 public: 31 public:
29 ClientConnectionManagerTest() 32 ClientConnectionManagerTest()
30 : manager_(new ClientConnectionManager(&connection_handler_)), 33 : manager_(new ClientConnectionManager(&connection_handler_)),
31 transport1_(new testing::StrictMock<MockTransport>), 34 transport1_(new testing::StrictMock<MockTransport>),
32 transport2_(new testing::StrictMock<MockTransport>), 35 transport2_(new testing::StrictMock<MockTransport>),
33 connection_( 36 reader_(new MockPacketReader),
34 new BlimpConnection(make_scoped_ptr(new MockPacketReader), 37 writer_(new MockPacketWriter),
35 make_scoped_ptr(new MockPacketWriter))) {} 38 connection_(new BlimpConnection(make_scoped_ptr(reader_),
39 make_scoped_ptr(writer_))),
40 start_connection_message_(
41 CreateStartConnectionMessage("", kProtocolVersion)) {}
36 42
37 ~ClientConnectionManagerTest() override {} 43 ~ClientConnectionManagerTest() override {}
38 44
39 protected: 45 protected:
40 base::MessageLoop message_loop_; 46 base::MessageLoop message_loop_;
41 testing::StrictMock<MockConnectionHandler> connection_handler_; 47 testing::StrictMock<MockConnectionHandler> connection_handler_;
42 scoped_ptr<ClientConnectionManager> manager_; 48 scoped_ptr<ClientConnectionManager> manager_;
43 scoped_ptr<testing::StrictMock<MockTransport>> transport1_; 49 scoped_ptr<testing::StrictMock<MockTransport>> transport1_;
44 scoped_ptr<testing::StrictMock<MockTransport>> transport2_; 50 scoped_ptr<testing::StrictMock<MockTransport>> transport2_;
51 MockPacketReader* reader_;
52 MockPacketWriter* writer_;
45 scoped_ptr<BlimpConnection> connection_; 53 scoped_ptr<BlimpConnection> connection_;
54 scoped_ptr<BlimpMessage> start_connection_message_;
46 }; 55 };
47 56
48 // The 1st transport connects, and the 2nd transport is not used. 57 // The 1st transport connects, and the 2nd transport is not used.
49 TEST_F(ClientConnectionManagerTest, FirstTransportConnects) { 58 TEST_F(ClientConnectionManagerTest, FirstTransportConnects) {
50 net::CompletionCallback connect_cb_1; 59 net::CompletionCallback connect_cb_1;
51 EXPECT_CALL(*transport1_, Connect(_)).WillOnce(SaveArg<0>(&connect_cb_1)); 60 EXPECT_CALL(*transport1_, Connect(_)).WillOnce(SaveArg<0>(&connect_cb_1));
52 EXPECT_CALL(connection_handler_, HandleConnectionPtr(Eq(connection_.get()))); 61 EXPECT_CALL(connection_handler_, HandleConnectionPtr(Eq(connection_.get())));
62 EXPECT_CALL(*writer_,
63 WritePacket(BufferEqualsProto(*start_connection_message_), _));
53 EXPECT_CALL(*transport1_, TakeConnectionPtr()) 64 EXPECT_CALL(*transport1_, TakeConnectionPtr())
54 .WillOnce(Return(connection_.release())); 65 .WillOnce(Return(connection_.release()));
55 66
56 ASSERT_TRUE(connect_cb_1.is_null()); 67 ASSERT_TRUE(connect_cb_1.is_null());
57 manager_->AddTransport(std::move(transport1_)); 68 manager_->AddTransport(std::move(transport1_));
58 manager_->AddTransport(std::move(transport2_)); 69 manager_->AddTransport(std::move(transport2_));
59 manager_->Connect(); 70 manager_->Connect();
60 ASSERT_FALSE(connect_cb_1.is_null()); 71 ASSERT_FALSE(connect_cb_1.is_null());
61 base::ResetAndReturn(&connect_cb_1).Run(net::OK); 72 base::ResetAndReturn(&connect_cb_1).Run(net::OK);
62 } 73 }
63 74
64 // The 1st transport fails to connect, and the 2nd transport connects. 75 // The 1st transport fails to connect, and the 2nd transport connects.
65 TEST_F(ClientConnectionManagerTest, SecondTransportConnects) { 76 TEST_F(ClientConnectionManagerTest, SecondTransportConnects) {
66 net::CompletionCallback connect_cb_1; 77 net::CompletionCallback connect_cb_1;
67 EXPECT_CALL(*transport1_, Connect(_)).WillOnce(SaveArg<0>(&connect_cb_1)); 78 EXPECT_CALL(*transport1_, Connect(_)).WillOnce(SaveArg<0>(&connect_cb_1));
68 net::CompletionCallback connect_cb_2; 79 net::CompletionCallback connect_cb_2;
69 EXPECT_CALL(*transport2_, Connect(_)).WillOnce(SaveArg<0>(&connect_cb_2)); 80 EXPECT_CALL(*transport2_, Connect(_)).WillOnce(SaveArg<0>(&connect_cb_2));
81 EXPECT_CALL(*writer_,
82 WritePacket(BufferEqualsProto(*start_connection_message_), _));
70 EXPECT_CALL(connection_handler_, HandleConnectionPtr(Eq(connection_.get()))); 83 EXPECT_CALL(connection_handler_, HandleConnectionPtr(Eq(connection_.get())));
71 EXPECT_CALL(*transport2_, TakeConnectionPtr()) 84 EXPECT_CALL(*transport2_, TakeConnectionPtr())
72 .WillOnce(Return(connection_.release())); 85 .WillOnce(Return(connection_.release()));
73 86
74 ASSERT_TRUE(connect_cb_1.is_null()); 87 ASSERT_TRUE(connect_cb_1.is_null());
75 ASSERT_TRUE(connect_cb_2.is_null()); 88 ASSERT_TRUE(connect_cb_2.is_null());
76 manager_->AddTransport(std::move(transport1_)); 89 manager_->AddTransport(std::move(transport1_));
77 manager_->AddTransport(std::move(transport2_)); 90 manager_->AddTransport(std::move(transport2_));
78 manager_->Connect(); 91 manager_->Connect();
79 ASSERT_FALSE(connect_cb_1.is_null()); 92 ASSERT_FALSE(connect_cb_1.is_null());
(...skipping 15 matching lines...) Expand all
95 manager_->AddTransport(std::move(transport2_)); 108 manager_->AddTransport(std::move(transport2_));
96 manager_->Connect(); 109 manager_->Connect();
97 ASSERT_FALSE(connect_cb_1.is_null()); 110 ASSERT_FALSE(connect_cb_1.is_null());
98 ASSERT_TRUE(connect_cb_2.is_null()); 111 ASSERT_TRUE(connect_cb_2.is_null());
99 base::ResetAndReturn(&connect_cb_1).Run(net::ERR_FAILED); 112 base::ResetAndReturn(&connect_cb_1).Run(net::ERR_FAILED);
100 ASSERT_FALSE(connect_cb_2.is_null()); 113 ASSERT_FALSE(connect_cb_2.is_null());
101 base::ResetAndReturn(&connect_cb_2).Run(net::ERR_FAILED); 114 base::ResetAndReturn(&connect_cb_2).Run(net::ERR_FAILED);
102 } 115 }
103 116
104 } // namespace blimp 117 } // namespace blimp
OLDNEW
« no previous file with comments | « blimp/net/client_connection_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698