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

Side by Side Diff: extensions/browser/api/cast_channel/cast_socket_unittest.cc

Issue 1902873002: Convert //extensions/browser/api from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/cast_channel/cast_socket.h" 5 #include "extensions/browser/api/cast_channel/cast_socket.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "base/memory/ptr_util.h"
13 #include "base/memory/weak_ptr.h" 14 #include "base/memory/weak_ptr.h"
14 #include "base/message_loop/message_loop.h" 15 #include "base/message_loop/message_loop.h"
15 #include "base/run_loop.h" 16 #include "base/run_loop.h"
16 #include "base/strings/string_number_conversions.h" 17 #include "base/strings/string_number_conversions.h"
17 #include "base/sys_byteorder.h" 18 #include "base/sys_byteorder.h"
18 #include "base/test/simple_test_clock.h" 19 #include "base/test/simple_test_clock.h"
19 #include "base/timer/mock_timer.h" 20 #include "base/timer/mock_timer.h"
20 #include "extensions/browser/api/cast_channel/cast_auth_util.h" 21 #include "extensions/browser/api/cast_channel/cast_auth_util.h"
21 #include "extensions/browser/api/cast_channel/cast_framer.h" 22 #include "extensions/browser/api/cast_channel/cast_framer.h"
22 #include "extensions/browser/api/cast_channel/cast_message_util.h" 23 #include "extensions/browser/api/cast_channel/cast_message_util.h"
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 MOCK_METHOD1(OnConnectComplete, void(ChannelError error_state)); 162 MOCK_METHOD1(OnConnectComplete, void(ChannelError error_state));
162 MOCK_METHOD1(OnWriteComplete, void(int result)); 163 MOCK_METHOD1(OnWriteComplete, void(int result));
163 MOCK_METHOD1(OnReadComplete, void(int result)); 164 MOCK_METHOD1(OnReadComplete, void(int result));
164 165
165 private: 166 private:
166 DISALLOW_COPY_AND_ASSIGN(CompleteHandler); 167 DISALLOW_COPY_AND_ASSIGN(CompleteHandler);
167 }; 168 };
168 169
169 class TestCastSocket : public CastSocketImpl { 170 class TestCastSocket : public CastSocketImpl {
170 public: 171 public:
171 static scoped_ptr<TestCastSocket> Create( 172 static std::unique_ptr<TestCastSocket> Create(
172 Logger* logger, 173 Logger* logger,
173 uint64_t device_capabilities = cast_channel::CastDeviceCapability::NONE) { 174 uint64_t device_capabilities = cast_channel::CastDeviceCapability::NONE) {
174 return scoped_ptr<TestCastSocket>( 175 return std::unique_ptr<TestCastSocket>(
175 new TestCastSocket(CreateIPEndPointForTest(), CHANNEL_AUTH_TYPE_SSL, 176 new TestCastSocket(CreateIPEndPointForTest(), CHANNEL_AUTH_TYPE_SSL,
176 kDistantTimeoutMillis, logger, device_capabilities)); 177 kDistantTimeoutMillis, logger, device_capabilities));
177 } 178 }
178 179
179 static scoped_ptr<TestCastSocket> CreateSecure( 180 static std::unique_ptr<TestCastSocket> CreateSecure(
180 Logger* logger, 181 Logger* logger,
181 uint64_t device_capabilities = cast_channel::CastDeviceCapability::NONE) { 182 uint64_t device_capabilities = cast_channel::CastDeviceCapability::NONE) {
182 return scoped_ptr<TestCastSocket>(new TestCastSocket( 183 return std::unique_ptr<TestCastSocket>(new TestCastSocket(
183 CreateIPEndPointForTest(), CHANNEL_AUTH_TYPE_SSL_VERIFIED, 184 CreateIPEndPointForTest(), CHANNEL_AUTH_TYPE_SSL_VERIFIED,
184 kDistantTimeoutMillis, logger, device_capabilities)); 185 kDistantTimeoutMillis, logger, device_capabilities));
185 } 186 }
186 187
187 explicit TestCastSocket(const net::IPEndPoint& ip_endpoint, 188 explicit TestCastSocket(const net::IPEndPoint& ip_endpoint,
188 ChannelAuthType channel_auth, 189 ChannelAuthType channel_auth,
189 int64_t timeout_ms, 190 int64_t timeout_ms,
190 Logger* logger, 191 Logger* logger,
191 uint64_t device_capabilities) 192 uint64_t device_capabilities)
192 : CastSocketImpl("some_extension_id", 193 : CastSocketImpl("some_extension_id",
193 ip_endpoint, 194 ip_endpoint,
194 channel_auth, 195 channel_auth,
195 &capturing_net_log_, 196 &capturing_net_log_,
196 base::TimeDelta::FromMilliseconds(timeout_ms), 197 base::TimeDelta::FromMilliseconds(timeout_ms),
197 false, 198 false,
198 logger, 199 logger,
199 device_capabilities), 200 device_capabilities),
200 ip_(ip_endpoint), 201 ip_(ip_endpoint),
201 extract_cert_result_(true), 202 extract_cert_result_(true),
202 verify_challenge_result_(true), 203 verify_challenge_result_(true),
203 verify_challenge_disallow_(false), 204 verify_challenge_disallow_(false),
204 tcp_unresponsive_(false), 205 tcp_unresponsive_(false),
205 mock_timer_(new base::MockTimer(false, false)), 206 mock_timer_(new base::MockTimer(false, false)),
206 mock_transport_(nullptr) {} 207 mock_transport_(nullptr) {}
207 208
208 ~TestCastSocket() override {} 209 ~TestCastSocket() override {}
209 210
210 void SetupMockTransport() { 211 void SetupMockTransport() {
211 mock_transport_ = new MockCastTransport; 212 mock_transport_ = new MockCastTransport;
212 SetTransportForTesting(make_scoped_ptr(mock_transport_)); 213 SetTransportForTesting(base::WrapUnique(mock_transport_));
213 } 214 }
214 215
215 // Socket connection helpers. 216 // Socket connection helpers.
216 void SetupTcpConnect(net::IoMode mode, int result) { 217 void SetupTcpConnect(net::IoMode mode, int result) {
217 tcp_connect_data_.reset(new net::MockConnect(mode, result)); 218 tcp_connect_data_.reset(new net::MockConnect(mode, result));
218 } 219 }
219 void SetupSslConnect(net::IoMode mode, int result) { 220 void SetupSslConnect(net::IoMode mode, int result) {
220 ssl_connect_data_.reset(new net::MockConnect(mode, result)); 221 ssl_connect_data_.reset(new net::MockConnect(mode, result));
221 } 222 }
222 223
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 } 268 }
268 269
269 void DisallowVerifyChallengeResult() { verify_challenge_disallow_ = true; } 270 void DisallowVerifyChallengeResult() { verify_challenge_disallow_ = true; }
270 271
271 MockCastTransport* GetMockTransport() { 272 MockCastTransport* GetMockTransport() {
272 CHECK(mock_transport_); 273 CHECK(mock_transport_);
273 return mock_transport_; 274 return mock_transport_;
274 } 275 }
275 276
276 private: 277 private:
277 scoped_ptr<net::TCPClientSocket> CreateTcpSocket() override { 278 std::unique_ptr<net::TCPClientSocket> CreateTcpSocket() override {
278 if (tcp_unresponsive_) { 279 if (tcp_unresponsive_) {
279 return scoped_ptr<net::TCPClientSocket>(new MockTCPSocket(true)); 280 return std::unique_ptr<net::TCPClientSocket>(new MockTCPSocket(true));
280 } else { 281 } else {
281 net::MockConnect* connect_data = tcp_connect_data_.get(); 282 net::MockConnect* connect_data = tcp_connect_data_.get();
282 connect_data->peer_addr = ip_; 283 connect_data->peer_addr = ip_;
283 return scoped_ptr<net::TCPClientSocket>(new MockTCPSocket(*connect_data)); 284 return std::unique_ptr<net::TCPClientSocket>(
285 new MockTCPSocket(*connect_data));
284 } 286 }
285 } 287 }
286 288
287 scoped_ptr<net::SSLClientSocket> CreateSslSocket( 289 std::unique_ptr<net::SSLClientSocket> CreateSslSocket(
288 scoped_ptr<net::StreamSocket> socket) override { 290 std::unique_ptr<net::StreamSocket> socket) override {
289 net::MockConnect* connect_data = ssl_connect_data_.get(); 291 net::MockConnect* connect_data = ssl_connect_data_.get();
290 connect_data->peer_addr = ip_; 292 connect_data->peer_addr = ip_;
291 293
292 ssl_data_.reset(new net::StaticSocketDataProvider( 294 ssl_data_.reset(new net::StaticSocketDataProvider(
293 reads_.data(), reads_.size(), writes_.data(), writes_.size())); 295 reads_.data(), reads_.size(), writes_.data(), writes_.size()));
294 ssl_data_->set_connect_data(*connect_data); 296 ssl_data_->set_connect_data(*connect_data);
295 // NOTE: net::MockTCPClientSocket inherits from net::SSLClientSocket !! 297 // NOTE: net::MockTCPClientSocket inherits from net::SSLClientSocket !!
296 return scoped_ptr<net::SSLClientSocket>( 298 return std::unique_ptr<net::SSLClientSocket>(new net::MockTCPClientSocket(
297 new net::MockTCPClientSocket( 299 net::AddressList(), &capturing_net_log_, ssl_data_.get()));
298 net::AddressList(), &capturing_net_log_, ssl_data_.get()));
299 } 300 }
300 301
301 scoped_refptr<net::X509Certificate> ExtractPeerCert() override { 302 scoped_refptr<net::X509Certificate> ExtractPeerCert() override {
302 return extract_cert_result_ ? make_scoped_refptr<net::X509Certificate>( 303 return extract_cert_result_ ? make_scoped_refptr<net::X509Certificate>(
303 new net::X509Certificate( 304 new net::X509Certificate(
304 "", "", base::Time(), base::Time())) 305 "", "", base::Time(), base::Time()))
305 : nullptr; 306 : nullptr;
306 } 307 }
307 308
308 bool VerifyChallengeReply() override { 309 bool VerifyChallengeReply() override {
309 EXPECT_FALSE(verify_challenge_disallow_); 310 EXPECT_FALSE(verify_challenge_disallow_);
310 return verify_challenge_result_; 311 return verify_challenge_result_;
311 } 312 }
312 313
313 base::Timer* GetTimer() override { return mock_timer_.get(); } 314 base::Timer* GetTimer() override { return mock_timer_.get(); }
314 315
315 net::TestNetLog capturing_net_log_; 316 net::TestNetLog capturing_net_log_;
316 net::IPEndPoint ip_; 317 net::IPEndPoint ip_;
317 // Simulated connect data 318 // Simulated connect data
318 scoped_ptr<net::MockConnect> tcp_connect_data_; 319 std::unique_ptr<net::MockConnect> tcp_connect_data_;
319 scoped_ptr<net::MockConnect> ssl_connect_data_; 320 std::unique_ptr<net::MockConnect> ssl_connect_data_;
320 // Simulated read / write data 321 // Simulated read / write data
321 std::vector<net::MockWrite> writes_; 322 std::vector<net::MockWrite> writes_;
322 std::vector<net::MockRead> reads_; 323 std::vector<net::MockRead> reads_;
323 scoped_ptr<net::SocketDataProvider> ssl_data_; 324 std::unique_ptr<net::SocketDataProvider> ssl_data_;
324 // Simulated result of peer cert extraction. 325 // Simulated result of peer cert extraction.
325 bool extract_cert_result_; 326 bool extract_cert_result_;
326 // Simulated result of verifying challenge reply. 327 // Simulated result of verifying challenge reply.
327 bool verify_challenge_result_; 328 bool verify_challenge_result_;
328 bool verify_challenge_disallow_; 329 bool verify_challenge_disallow_;
329 // If true, makes TCP connection process stall. For timeout testing. 330 // If true, makes TCP connection process stall. For timeout testing.
330 bool tcp_unresponsive_; 331 bool tcp_unresponsive_;
331 scoped_ptr<base::MockTimer> mock_timer_; 332 std::unique_ptr<base::MockTimer> mock_timer_;
332 MockCastTransport* mock_transport_; 333 MockCastTransport* mock_transport_;
333 334
334 DISALLOW_COPY_AND_ASSIGN(TestCastSocket); 335 DISALLOW_COPY_AND_ASSIGN(TestCastSocket);
335 }; 336 };
336 337
337 class CastSocketTest : public testing::Test { 338 class CastSocketTest : public testing::Test {
338 public: 339 public:
339 CastSocketTest() 340 CastSocketTest()
340 : logger_( 341 : logger_(
341 new Logger(make_scoped_ptr<base::Clock>(new base::SimpleTestClock), 342 new Logger(base::WrapUnique<base::Clock>(new base::SimpleTestClock),
342 base::Time())), 343 base::Time())),
343 delegate_(new MockDelegate) {} 344 delegate_(new MockDelegate) {}
344 ~CastSocketTest() override {} 345 ~CastSocketTest() override {}
345 346
346 void SetUp() override { EXPECT_CALL(*delegate_, OnMessage(_)).Times(0); } 347 void SetUp() override { EXPECT_CALL(*delegate_, OnMessage(_)).Times(0); }
347 348
348 void TearDown() override { 349 void TearDown() override {
349 if (socket_.get()) { 350 if (socket_.get()) {
350 EXPECT_CALL(handler_, OnCloseComplete(net::OK)); 351 EXPECT_CALL(handler_, OnCloseComplete(net::OK));
351 socket_->Close(base::Bind(&CompleteHandler::OnCloseComplete, 352 socket_->Close(base::Bind(&CompleteHandler::OnCloseComplete,
(...skipping 26 matching lines...) Expand all
378 379
379 protected: 380 protected:
380 // Runs all pending tasks in the message loop. 381 // Runs all pending tasks in the message loop.
381 void RunPendingTasks() { 382 void RunPendingTasks() {
382 base::RunLoop run_loop; 383 base::RunLoop run_loop;
383 run_loop.RunUntilIdle(); 384 run_loop.RunUntilIdle();
384 } 385 }
385 386
386 base::MessageLoop message_loop_; 387 base::MessageLoop message_loop_;
387 Logger* logger_; 388 Logger* logger_;
388 scoped_ptr<TestCastSocket> socket_; 389 std::unique_ptr<TestCastSocket> socket_;
389 CompleteHandler handler_; 390 CompleteHandler handler_;
390 scoped_ptr<MockDelegate> delegate_; 391 std::unique_ptr<MockDelegate> delegate_;
391 392
392 private: 393 private:
393 DISALLOW_COPY_AND_ASSIGN(CastSocketTest); 394 DISALLOW_COPY_AND_ASSIGN(CastSocketTest);
394 }; 395 };
395 396
396 // Tests connecting and closing the socket. 397 // Tests connecting and closing the socket.
397 TEST_F(CastSocketTest, TestConnectAndClose) { 398 TEST_F(CastSocketTest, TestConnectAndClose) {
398 CreateCastSocket(); 399 CreateCastSocket();
399 socket_->SetupMockTransport(); 400 socket_->SetupMockTransport();
400 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); 401 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK);
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
885 logger_, cast_channel::CastDeviceCapability::VIDEO_OUT); 886 logger_, cast_channel::CastDeviceCapability::VIDEO_OUT);
886 EXPECT_FALSE(socket_->audio_only()); 887 EXPECT_FALSE(socket_->audio_only());
887 EXPECT_TRUE(socket_->TestVerifyChannelPolicyNone()); 888 EXPECT_TRUE(socket_->TestVerifyChannelPolicyNone());
888 EXPECT_FALSE(socket_->audio_only()); 889 EXPECT_FALSE(socket_->audio_only());
889 EXPECT_FALSE(socket_->TestVerifyChannelPolicyAudioOnly()); 890 EXPECT_FALSE(socket_->TestVerifyChannelPolicyAudioOnly());
890 EXPECT_TRUE(socket_->audio_only()); 891 EXPECT_TRUE(socket_->audio_only());
891 } 892 }
892 } // namespace cast_channel 893 } // namespace cast_channel
893 } // namespace api 894 } // namespace api
894 } // namespace extensions 895 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/browser/api/cast_channel/cast_socket.cc ('k') | extensions/browser/api/cast_channel/cast_test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698