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

Side by Side Diff: chrome/browser/extensions/api/socket/tcp_socket_unittest.cc

Issue 1871713002: Convert //chrome/browser/extensions from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase and fix header Created 4 years, 8 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "extensions/browser/api/socket/tcp_socket.h" 5 #include <memory>
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "extensions/browser/api/socket/tcp_socket.h"
9 #include "net/base/address_list.h" 9 #include "net/base/address_list.h"
10 #include "net/base/completion_callback.h" 10 #include "net/base/completion_callback.h"
11 #include "net/base/io_buffer.h" 11 #include "net/base/io_buffer.h"
12 #include "net/base/net_errors.h" 12 #include "net/base/net_errors.h"
13 #include "net/base/rand_callback.h" 13 #include "net/base/rand_callback.h"
14 #include "net/socket/tcp_client_socket.h" 14 #include "net/socket/tcp_client_socket.h"
15 #include "net/socket/tcp_server_socket.h" 15 #include "net/socket/tcp_server_socket.h"
16 #include "testing/gmock/include/gmock/gmock.h" 16 #include "testing/gmock/include/gmock/gmock.h"
17 17
18 using testing::_; 18 using testing::_;
(...skipping 20 matching lines...) Expand all
39 } 39 }
40 40
41 private: 41 private:
42 DISALLOW_COPY_AND_ASSIGN(MockTCPSocket); 42 DISALLOW_COPY_AND_ASSIGN(MockTCPSocket);
43 }; 43 };
44 44
45 class MockTCPServerSocket : public net::TCPServerSocket { 45 class MockTCPServerSocket : public net::TCPServerSocket {
46 public: 46 public:
47 MockTCPServerSocket() : net::TCPServerSocket(NULL, net::NetLog::Source()) {} 47 MockTCPServerSocket() : net::TCPServerSocket(NULL, net::NetLog::Source()) {}
48 MOCK_METHOD2(Listen, int(const net::IPEndPoint& address, int backlog)); 48 MOCK_METHOD2(Listen, int(const net::IPEndPoint& address, int backlog));
49 MOCK_METHOD2(Accept, int(scoped_ptr<net::StreamSocket>* socket, 49 MOCK_METHOD2(Accept,
50 const net::CompletionCallback& callback)); 50 int(std::unique_ptr<net::StreamSocket>* socket,
51 const net::CompletionCallback& callback));
51 52
52 private: 53 private:
53 DISALLOW_COPY_AND_ASSIGN(MockTCPServerSocket); 54 DISALLOW_COPY_AND_ASSIGN(MockTCPServerSocket);
54 }; 55 };
55 56
56 class CompleteHandler { 57 class CompleteHandler {
57 public: 58 public:
58 CompleteHandler() {} 59 CompleteHandler() {}
59 MOCK_METHOD1(OnComplete, void(int result_code)); 60 MOCK_METHOD1(OnComplete, void(int result_code));
60 MOCK_METHOD2(OnReadComplete, void(int result_code, 61 MOCK_METHOD2(OnReadComplete, void(int result_code,
61 scoped_refptr<net::IOBuffer> io_buffer)); 62 scoped_refptr<net::IOBuffer> io_buffer));
62 63
63 // MOCK_METHOD cannot mock a scoped_ptr argument. 64 // MOCK_METHOD cannot mock a scoped_ptr argument.
64 MOCK_METHOD2(OnAcceptMock, void(int, net::TCPClientSocket*)); 65 MOCK_METHOD2(OnAcceptMock, void(int, net::TCPClientSocket*));
65 void OnAccept(int count, scoped_ptr<net::TCPClientSocket> socket) { 66 void OnAccept(int count, std::unique_ptr<net::TCPClientSocket> socket) {
66 OnAcceptMock(count, socket.get()); 67 OnAcceptMock(count, socket.get());
67 } 68 }
68 69
69 private: 70 private:
70 DISALLOW_COPY_AND_ASSIGN(CompleteHandler); 71 DISALLOW_COPY_AND_ASSIGN(CompleteHandler);
71 }; 72 };
72 73
73 const std::string FAKE_ID = "abcdefghijklmnopqrst"; 74 const std::string FAKE_ID = "abcdefghijklmnopqrst";
74 75
75 TEST(SocketTest, TestTCPSocketRead) { 76 TEST(SocketTest, TestTCPSocketRead) {
76 net::AddressList address_list; 77 net::AddressList address_list;
77 scoped_ptr<MockTCPSocket> tcp_client_socket(new MockTCPSocket(address_list)); 78 std::unique_ptr<MockTCPSocket> tcp_client_socket(
79 new MockTCPSocket(address_list));
78 CompleteHandler handler; 80 CompleteHandler handler;
79 81
80 EXPECT_CALL(*tcp_client_socket, Read(_, _, _)) 82 EXPECT_CALL(*tcp_client_socket, Read(_, _, _))
81 .Times(1); 83 .Times(1);
82 EXPECT_CALL(handler, OnReadComplete(_, _)) 84 EXPECT_CALL(handler, OnReadComplete(_, _))
83 .Times(1); 85 .Times(1);
84 86
85 scoped_ptr<TCPSocket> socket(TCPSocket::CreateSocketForTesting( 87 std::unique_ptr<TCPSocket> socket(TCPSocket::CreateSocketForTesting(
86 std::move(tcp_client_socket), FAKE_ID, true)); 88 std::move(tcp_client_socket), FAKE_ID, true));
87 89
88 const int count = 512; 90 const int count = 512;
89 socket->Read(count, base::Bind(&CompleteHandler::OnReadComplete, 91 socket->Read(count, base::Bind(&CompleteHandler::OnReadComplete,
90 base::Unretained(&handler))); 92 base::Unretained(&handler)));
91 } 93 }
92 94
93 TEST(SocketTest, TestTCPSocketWrite) { 95 TEST(SocketTest, TestTCPSocketWrite) {
94 net::AddressList address_list; 96 net::AddressList address_list;
95 scoped_ptr<MockTCPSocket> tcp_client_socket(new MockTCPSocket(address_list)); 97 std::unique_ptr<MockTCPSocket> tcp_client_socket(
98 new MockTCPSocket(address_list));
96 CompleteHandler handler; 99 CompleteHandler handler;
97 100
98 net::CompletionCallback callback; 101 net::CompletionCallback callback;
99 EXPECT_CALL(*tcp_client_socket, Write(_, _, _)) 102 EXPECT_CALL(*tcp_client_socket, Write(_, _, _))
100 .Times(2) 103 .Times(2)
101 .WillRepeatedly(testing::DoAll(SaveArg<2>(&callback), 104 .WillRepeatedly(testing::DoAll(SaveArg<2>(&callback),
102 Return(128))); 105 Return(128)));
103 EXPECT_CALL(handler, OnComplete(_)) 106 EXPECT_CALL(handler, OnComplete(_))
104 .Times(1); 107 .Times(1);
105 108
106 scoped_ptr<TCPSocket> socket(TCPSocket::CreateSocketForTesting( 109 std::unique_ptr<TCPSocket> socket(TCPSocket::CreateSocketForTesting(
107 std::move(tcp_client_socket), FAKE_ID, true)); 110 std::move(tcp_client_socket), FAKE_ID, true));
108 111
109 scoped_refptr<net::IOBufferWithSize> io_buffer( 112 scoped_refptr<net::IOBufferWithSize> io_buffer(
110 new net::IOBufferWithSize(256)); 113 new net::IOBufferWithSize(256));
111 socket->Write(io_buffer.get(), io_buffer->size(), 114 socket->Write(io_buffer.get(), io_buffer->size(),
112 base::Bind(&CompleteHandler::OnComplete, base::Unretained(&handler))); 115 base::Bind(&CompleteHandler::OnComplete, base::Unretained(&handler)));
113 } 116 }
114 117
115 TEST(SocketTest, TestTCPSocketBlockedWrite) { 118 TEST(SocketTest, TestTCPSocketBlockedWrite) {
116 net::AddressList address_list; 119 net::AddressList address_list;
117 scoped_ptr<MockTCPSocket> tcp_client_socket(new MockTCPSocket(address_list)); 120 std::unique_ptr<MockTCPSocket> tcp_client_socket(
121 new MockTCPSocket(address_list));
118 CompleteHandler handler; 122 CompleteHandler handler;
119 123
120 net::CompletionCallback callback; 124 net::CompletionCallback callback;
121 EXPECT_CALL(*tcp_client_socket, Write(_, _, _)) 125 EXPECT_CALL(*tcp_client_socket, Write(_, _, _))
122 .Times(2) 126 .Times(2)
123 .WillRepeatedly(testing::DoAll(SaveArg<2>(&callback), 127 .WillRepeatedly(testing::DoAll(SaveArg<2>(&callback),
124 Return(net::ERR_IO_PENDING))); 128 Return(net::ERR_IO_PENDING)));
125 129
126 scoped_ptr<TCPSocket> socket(TCPSocket::CreateSocketForTesting( 130 std::unique_ptr<TCPSocket> socket(TCPSocket::CreateSocketForTesting(
127 std::move(tcp_client_socket), FAKE_ID, true)); 131 std::move(tcp_client_socket), FAKE_ID, true));
128 132
129 scoped_refptr<net::IOBufferWithSize> io_buffer(new net::IOBufferWithSize(42)); 133 scoped_refptr<net::IOBufferWithSize> io_buffer(new net::IOBufferWithSize(42));
130 socket->Write(io_buffer.get(), io_buffer->size(), 134 socket->Write(io_buffer.get(), io_buffer->size(),
131 base::Bind(&CompleteHandler::OnComplete, base::Unretained(&handler))); 135 base::Bind(&CompleteHandler::OnComplete, base::Unretained(&handler)));
132 136
133 // Good. Original call came back unable to complete. Now pretend the socket 137 // Good. Original call came back unable to complete. Now pretend the socket
134 // finished, and confirm that we passed the error back. 138 // finished, and confirm that we passed the error back.
135 EXPECT_CALL(handler, OnComplete(42)) 139 EXPECT_CALL(handler, OnComplete(42))
136 .Times(1); 140 .Times(1);
137 callback.Run(40); 141 callback.Run(40);
138 callback.Run(2); 142 callback.Run(2);
139 } 143 }
140 144
141 TEST(SocketTest, TestTCPSocketBlockedWriteReentry) { 145 TEST(SocketTest, TestTCPSocketBlockedWriteReentry) {
142 net::AddressList address_list; 146 net::AddressList address_list;
143 scoped_ptr<MockTCPSocket> tcp_client_socket(new MockTCPSocket(address_list)); 147 std::unique_ptr<MockTCPSocket> tcp_client_socket(
148 new MockTCPSocket(address_list));
144 CompleteHandler handlers[5]; 149 CompleteHandler handlers[5];
145 150
146 net::CompletionCallback callback; 151 net::CompletionCallback callback;
147 EXPECT_CALL(*tcp_client_socket, Write(_, _, _)) 152 EXPECT_CALL(*tcp_client_socket, Write(_, _, _))
148 .Times(5) 153 .Times(5)
149 .WillRepeatedly(testing::DoAll(SaveArg<2>(&callback), 154 .WillRepeatedly(testing::DoAll(SaveArg<2>(&callback),
150 Return(net::ERR_IO_PENDING))); 155 Return(net::ERR_IO_PENDING)));
151 156
152 scoped_ptr<TCPSocket> socket(TCPSocket::CreateSocketForTesting( 157 std::unique_ptr<TCPSocket> socket(TCPSocket::CreateSocketForTesting(
153 std::move(tcp_client_socket), FAKE_ID, true)); 158 std::move(tcp_client_socket), FAKE_ID, true));
154 159
155 scoped_refptr<net::IOBufferWithSize> io_buffers[5]; 160 scoped_refptr<net::IOBufferWithSize> io_buffers[5];
156 int i; 161 int i;
157 for (i = 0; i < 5; i++) { 162 for (i = 0; i < 5; i++) {
158 io_buffers[i] = new net::IOBufferWithSize(128 + i * 50); 163 io_buffers[i] = new net::IOBufferWithSize(128 + i * 50);
159 scoped_refptr<net::IOBufferWithSize> io_buffer1( 164 scoped_refptr<net::IOBufferWithSize> io_buffer1(
160 new net::IOBufferWithSize(42)); 165 new net::IOBufferWithSize(42));
161 socket->Write(io_buffers[i].get(), io_buffers[i]->size(), 166 socket->Write(io_buffers[i].get(), io_buffers[i]->size(),
162 base::Bind(&CompleteHandler::OnComplete, 167 base::Bind(&CompleteHandler::OnComplete,
163 base::Unretained(&handlers[i]))); 168 base::Unretained(&handlers[i])));
164 169
165 EXPECT_CALL(handlers[i], OnComplete(io_buffers[i]->size())) 170 EXPECT_CALL(handlers[i], OnComplete(io_buffers[i]->size()))
166 .Times(1); 171 .Times(1);
167 } 172 }
168 173
169 for (i = 0; i < 5; i++) { 174 for (i = 0; i < 5; i++) {
170 callback.Run(128 + i * 50); 175 callback.Run(128 + i * 50);
171 } 176 }
172 } 177 }
173 178
174 TEST(SocketTest, TestTCPSocketSetNoDelay) { 179 TEST(SocketTest, TestTCPSocketSetNoDelay) {
175 net::AddressList address_list; 180 net::AddressList address_list;
176 scoped_ptr<MockTCPSocket> tcp_client_socket(new MockTCPSocket(address_list)); 181 std::unique_ptr<MockTCPSocket> tcp_client_socket(
182 new MockTCPSocket(address_list));
177 183
178 bool no_delay = false; 184 bool no_delay = false;
179 { 185 {
180 testing::InSequence dummy; 186 testing::InSequence dummy;
181 EXPECT_CALL(*tcp_client_socket, SetNoDelay(_)) 187 EXPECT_CALL(*tcp_client_socket, SetNoDelay(_))
182 .WillOnce(testing::DoAll(SaveArg<0>(&no_delay), Return(true))); 188 .WillOnce(testing::DoAll(SaveArg<0>(&no_delay), Return(true)));
183 EXPECT_CALL(*tcp_client_socket, SetNoDelay(_)) 189 EXPECT_CALL(*tcp_client_socket, SetNoDelay(_))
184 .WillOnce(testing::DoAll(SaveArg<0>(&no_delay), Return(false))); 190 .WillOnce(testing::DoAll(SaveArg<0>(&no_delay), Return(false)));
185 } 191 }
186 192
187 scoped_ptr<TCPSocket> socket( 193 std::unique_ptr<TCPSocket> socket(
188 TCPSocket::CreateSocketForTesting(std::move(tcp_client_socket), FAKE_ID)); 194 TCPSocket::CreateSocketForTesting(std::move(tcp_client_socket), FAKE_ID));
189 195
190 EXPECT_FALSE(no_delay); 196 EXPECT_FALSE(no_delay);
191 int result = socket->SetNoDelay(true); 197 int result = socket->SetNoDelay(true);
192 EXPECT_TRUE(result); 198 EXPECT_TRUE(result);
193 EXPECT_TRUE(no_delay); 199 EXPECT_TRUE(no_delay);
194 200
195 result = socket->SetNoDelay(false); 201 result = socket->SetNoDelay(false);
196 EXPECT_FALSE(result); 202 EXPECT_FALSE(result);
197 EXPECT_FALSE(no_delay); 203 EXPECT_FALSE(no_delay);
198 } 204 }
199 205
200 TEST(SocketTest, TestTCPSocketSetKeepAlive) { 206 TEST(SocketTest, TestTCPSocketSetKeepAlive) {
201 net::AddressList address_list; 207 net::AddressList address_list;
202 scoped_ptr<MockTCPSocket> tcp_client_socket(new MockTCPSocket(address_list)); 208 std::unique_ptr<MockTCPSocket> tcp_client_socket(
209 new MockTCPSocket(address_list));
203 210
204 bool enable = false; 211 bool enable = false;
205 int delay = 0; 212 int delay = 0;
206 { 213 {
207 testing::InSequence dummy; 214 testing::InSequence dummy;
208 EXPECT_CALL(*tcp_client_socket, SetKeepAlive(_, _)) 215 EXPECT_CALL(*tcp_client_socket, SetKeepAlive(_, _))
209 .WillOnce(testing::DoAll(SaveArg<0>(&enable), SaveArg<1>(&delay), 216 .WillOnce(testing::DoAll(SaveArg<0>(&enable), SaveArg<1>(&delay),
210 Return(true))); 217 Return(true)));
211 EXPECT_CALL(*tcp_client_socket, SetKeepAlive(_, _)) 218 EXPECT_CALL(*tcp_client_socket, SetKeepAlive(_, _))
212 .WillOnce(testing::DoAll(SaveArg<0>(&enable), SaveArg<1>(&delay), 219 .WillOnce(testing::DoAll(SaveArg<0>(&enable), SaveArg<1>(&delay),
213 Return(false))); 220 Return(false)));
214 } 221 }
215 222
216 scoped_ptr<TCPSocket> socket( 223 std::unique_ptr<TCPSocket> socket(
217 TCPSocket::CreateSocketForTesting(std::move(tcp_client_socket), FAKE_ID)); 224 TCPSocket::CreateSocketForTesting(std::move(tcp_client_socket), FAKE_ID));
218 225
219 EXPECT_FALSE(enable); 226 EXPECT_FALSE(enable);
220 int result = socket->SetKeepAlive(true, 4500); 227 int result = socket->SetKeepAlive(true, 4500);
221 EXPECT_TRUE(result); 228 EXPECT_TRUE(result);
222 EXPECT_TRUE(enable); 229 EXPECT_TRUE(enable);
223 EXPECT_EQ(4500, delay); 230 EXPECT_EQ(4500, delay);
224 231
225 result = socket->SetKeepAlive(false, 0); 232 result = socket->SetKeepAlive(false, 0);
226 EXPECT_FALSE(result); 233 EXPECT_FALSE(result);
227 EXPECT_FALSE(enable); 234 EXPECT_FALSE(enable);
228 EXPECT_EQ(0, delay); 235 EXPECT_EQ(0, delay);
229 } 236 }
230 237
231 TEST(SocketTest, TestTCPServerSocketListenAccept) { 238 TEST(SocketTest, TestTCPServerSocketListenAccept) {
232 scoped_ptr<MockTCPServerSocket> tcp_server_socket(new MockTCPServerSocket()); 239 std::unique_ptr<MockTCPServerSocket> tcp_server_socket(
240 new MockTCPServerSocket());
233 CompleteHandler handler; 241 CompleteHandler handler;
234 242
235 EXPECT_CALL(*tcp_server_socket, Accept(_, _)).Times(1); 243 EXPECT_CALL(*tcp_server_socket, Accept(_, _)).Times(1);
236 EXPECT_CALL(*tcp_server_socket, Listen(_, _)).Times(1); 244 EXPECT_CALL(*tcp_server_socket, Listen(_, _)).Times(1);
237 245
238 scoped_ptr<TCPSocket> socket(TCPSocket::CreateServerSocketForTesting( 246 std::unique_ptr<TCPSocket> socket(TCPSocket::CreateServerSocketForTesting(
239 std::move(tcp_server_socket), FAKE_ID)); 247 std::move(tcp_server_socket), FAKE_ID));
240 248
241 EXPECT_CALL(handler, OnAcceptMock(_, _)); 249 EXPECT_CALL(handler, OnAcceptMock(_, _));
242 250
243 std::string err_msg; 251 std::string err_msg;
244 EXPECT_EQ(net::OK, socket->Listen("127.0.0.1", 9999, 10, &err_msg)); 252 EXPECT_EQ(net::OK, socket->Listen("127.0.0.1", 9999, 10, &err_msg));
245 socket->Accept(base::Bind(&CompleteHandler::OnAccept, 253 socket->Accept(base::Bind(&CompleteHandler::OnAccept,
246 base::Unretained(&handler))); 254 base::Unretained(&handler)));
247 } 255 }
248 256
249 } // namespace extensions 257 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/socket/socket_apitest.cc ('k') | chrome/browser/extensions/api/socket/tls_socket_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698