| OLD | NEW |
| 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> |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 #include "net/socket/ssl_client_socket.h" | 35 #include "net/socket/ssl_client_socket.h" |
| 36 #include "net/socket/tcp_client_socket.h" | 36 #include "net/socket/tcp_client_socket.h" |
| 37 #include "net/ssl/ssl_info.h" | 37 #include "net/ssl/ssl_info.h" |
| 38 #include "net/test/cert_test_util.h" | 38 #include "net/test/cert_test_util.h" |
| 39 #include "net/test/test_data_directory.h" | 39 #include "net/test/test_data_directory.h" |
| 40 #include "testing/gmock/include/gmock/gmock.h" | 40 #include "testing/gmock/include/gmock/gmock.h" |
| 41 #include "testing/gtest/include/gtest/gtest.h" | 41 #include "testing/gtest/include/gtest/gtest.h" |
| 42 | 42 |
| 43 const int64_t kDistantTimeoutMillis = 100000; // 100 seconds (never hit). | 43 const int64_t kDistantTimeoutMillis = 100000; // 100 seconds (never hit). |
| 44 | 44 |
| 45 using ::cast_channel::ChannelError; |
| 46 using ::cast_channel::ChannelAuthType; |
| 47 using ::cast_channel::ReadyState; |
| 45 using ::testing::_; | 48 using ::testing::_; |
| 46 using ::testing::A; | 49 using ::testing::A; |
| 47 using ::testing::DoAll; | 50 using ::testing::DoAll; |
| 48 using ::testing::Invoke; | 51 using ::testing::Invoke; |
| 49 using ::testing::InvokeArgument; | 52 using ::testing::InvokeArgument; |
| 50 using ::testing::NotNull; | 53 using ::testing::NotNull; |
| 51 using ::testing::Return; | 54 using ::testing::Return; |
| 52 using ::testing::SaveArg; | 55 using ::testing::SaveArg; |
| 53 | 56 |
| 54 namespace extensions { | 57 namespace extensions { |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 170 private: | 173 private: |
| 171 DISALLOW_COPY_AND_ASSIGN(CompleteHandler); | 174 DISALLOW_COPY_AND_ASSIGN(CompleteHandler); |
| 172 }; | 175 }; |
| 173 | 176 |
| 174 class TestCastSocket : public CastSocketImpl { | 177 class TestCastSocket : public CastSocketImpl { |
| 175 public: | 178 public: |
| 176 static std::unique_ptr<TestCastSocket> CreateSecure( | 179 static std::unique_ptr<TestCastSocket> CreateSecure( |
| 177 Logger* logger, | 180 Logger* logger, |
| 178 uint64_t device_capabilities = cast_channel::CastDeviceCapability::NONE) { | 181 uint64_t device_capabilities = cast_channel::CastDeviceCapability::NONE) { |
| 179 return std::unique_ptr<TestCastSocket>(new TestCastSocket( | 182 return std::unique_ptr<TestCastSocket>(new TestCastSocket( |
| 180 CreateIPEndPointForTest(), CHANNEL_AUTH_TYPE_SSL_VERIFIED, | 183 CreateIPEndPointForTest(), ChannelAuthType::SSL_VERIFIED, |
| 181 kDistantTimeoutMillis, logger, device_capabilities)); | 184 kDistantTimeoutMillis, logger, device_capabilities)); |
| 182 } | 185 } |
| 183 | 186 |
| 184 TestCastSocket(const net::IPEndPoint& ip_endpoint, | 187 TestCastSocket(const net::IPEndPoint& ip_endpoint, |
| 185 ChannelAuthType channel_auth, | 188 ChannelAuthType channel_auth, |
| 186 int64_t timeout_ms, | 189 int64_t timeout_ms, |
| 187 Logger* logger, | 190 Logger* logger, |
| 188 uint64_t device_capabilities) | 191 uint64_t device_capabilities) |
| 189 : TestCastSocket(ip_endpoint, | 192 : TestCastSocket(ip_endpoint, |
| 190 channel_auth, | 193 channel_auth, |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 365 socket_ = TestCastSocket::CreateSecure(logger_); | 368 socket_ = TestCastSocket::CreateSecure(logger_); |
| 366 } | 369 } |
| 367 | 370 |
| 368 void HandleAuthHandshake() { | 371 void HandleAuthHandshake() { |
| 369 socket_->SetupMockTransport(); | 372 socket_->SetupMockTransport(); |
| 370 CastMessage challenge_proto = CreateAuthChallenge(); | 373 CastMessage challenge_proto = CreateAuthChallenge(); |
| 371 EXPECT_CALL(*socket_->GetMockTransport(), | 374 EXPECT_CALL(*socket_->GetMockTransport(), |
| 372 SendMessage(EqualsProto(challenge_proto), _)) | 375 SendMessage(EqualsProto(challenge_proto), _)) |
| 373 .WillOnce(PostCompletionCallbackTask<1>(net::OK)); | 376 .WillOnce(PostCompletionCallbackTask<1>(net::OK)); |
| 374 EXPECT_CALL(*socket_->GetMockTransport(), Start()); | 377 EXPECT_CALL(*socket_->GetMockTransport(), Start()); |
| 375 EXPECT_CALL(handler_, OnConnectComplete(CHANNEL_ERROR_NONE)); | 378 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::NONE)); |
| 376 socket_->Connect(std::move(delegate_), | 379 socket_->Connect(std::move(delegate_), |
| 377 base::Bind(&CompleteHandler::OnConnectComplete, | 380 base::Bind(&CompleteHandler::OnConnectComplete, |
| 378 base::Unretained(&handler_))); | 381 base::Unretained(&handler_))); |
| 379 RunPendingTasks(); | 382 RunPendingTasks(); |
| 380 socket_->GetMockTransport()->current_delegate()->OnMessage( | 383 socket_->GetMockTransport()->current_delegate()->OnMessage( |
| 381 CreateAuthReply()); | 384 CreateAuthReply()); |
| 382 RunPendingTasks(); | 385 RunPendingTasks(); |
| 383 } | 386 } |
| 384 | 387 |
| 385 protected: | 388 protected: |
| (...skipping 20 matching lines...) Expand all Loading... |
| 406 // - Challenge request is sent (async) | 409 // - Challenge request is sent (async) |
| 407 // - Challenge response is received (async) | 410 // - Challenge response is received (async) |
| 408 // - Credentials are verified successfuly | 411 // - Credentials are verified successfuly |
| 409 TEST_F(CastSocketTest, TestConnectFullSecureFlowAsync) { | 412 TEST_F(CastSocketTest, TestConnectFullSecureFlowAsync) { |
| 410 CreateCastSocketSecure(); | 413 CreateCastSocketSecure(); |
| 411 socket_->SetupTcpConnect(net::ASYNC, net::OK); | 414 socket_->SetupTcpConnect(net::ASYNC, net::OK); |
| 412 socket_->SetupSslConnect(net::ASYNC, net::OK); | 415 socket_->SetupSslConnect(net::ASYNC, net::OK); |
| 413 | 416 |
| 414 HandleAuthHandshake(); | 417 HandleAuthHandshake(); |
| 415 | 418 |
| 416 EXPECT_EQ(cast_channel::READY_STATE_OPEN, socket_->ready_state()); | 419 EXPECT_EQ(ReadyState::OPEN, socket_->ready_state()); |
| 417 EXPECT_EQ(cast_channel::CHANNEL_ERROR_NONE, socket_->error_state()); | 420 EXPECT_EQ(ChannelError::NONE, socket_->error_state()); |
| 418 } | 421 } |
| 419 | 422 |
| 420 // Tests that the following connection flow works: | 423 // Tests that the following connection flow works: |
| 421 // - TCP connection succeeds (sync) | 424 // - TCP connection succeeds (sync) |
| 422 // - SSL connection succeeds (sync) | 425 // - SSL connection succeeds (sync) |
| 423 // - Cert is extracted successfully | 426 // - Cert is extracted successfully |
| 424 // - Challenge request is sent (sync) | 427 // - Challenge request is sent (sync) |
| 425 // - Challenge response is received (sync) | 428 // - Challenge response is received (sync) |
| 426 // - Credentials are verified successfuly | 429 // - Credentials are verified successfuly |
| 427 TEST_F(CastSocketTest, TestConnectFullSecureFlowSync) { | 430 TEST_F(CastSocketTest, TestConnectFullSecureFlowSync) { |
| 428 CreateCastSocketSecure(); | 431 CreateCastSocketSecure(); |
| 429 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); | 432 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); |
| 430 socket_->SetupSslConnect(net::SYNCHRONOUS, net::OK); | 433 socket_->SetupSslConnect(net::SYNCHRONOUS, net::OK); |
| 431 | 434 |
| 432 HandleAuthHandshake(); | 435 HandleAuthHandshake(); |
| 433 | 436 |
| 434 EXPECT_EQ(cast_channel::READY_STATE_OPEN, socket_->ready_state()); | 437 EXPECT_EQ(ReadyState::OPEN, socket_->ready_state()); |
| 435 EXPECT_EQ(cast_channel::CHANNEL_ERROR_NONE, socket_->error_state()); | 438 EXPECT_EQ(ChannelError::NONE, socket_->error_state()); |
| 436 } | 439 } |
| 437 | 440 |
| 438 // Test that an AuthMessage with a mangled namespace triggers cancelation | 441 // Test that an AuthMessage with a mangled namespace triggers cancelation |
| 439 // of the connection event loop. | 442 // of the connection event loop. |
| 440 TEST_F(CastSocketTest, TestConnectAuthMessageCorrupted) { | 443 TEST_F(CastSocketTest, TestConnectAuthMessageCorrupted) { |
| 441 CreateCastSocketSecure(); | 444 CreateCastSocketSecure(); |
| 442 socket_->SetupMockTransport(); | 445 socket_->SetupMockTransport(); |
| 443 | 446 |
| 444 socket_->SetupTcpConnect(net::ASYNC, net::OK); | 447 socket_->SetupTcpConnect(net::ASYNC, net::OK); |
| 445 socket_->SetupSslConnect(net::ASYNC, net::OK); | 448 socket_->SetupSslConnect(net::ASYNC, net::OK); |
| 446 | 449 |
| 447 CastMessage challenge_proto = CreateAuthChallenge(); | 450 CastMessage challenge_proto = CreateAuthChallenge(); |
| 448 EXPECT_CALL(*socket_->GetMockTransport(), | 451 EXPECT_CALL(*socket_->GetMockTransport(), |
| 449 SendMessage(EqualsProto(challenge_proto), _)) | 452 SendMessage(EqualsProto(challenge_proto), _)) |
| 450 .WillOnce(PostCompletionCallbackTask<1>(net::OK)); | 453 .WillOnce(PostCompletionCallbackTask<1>(net::OK)); |
| 451 EXPECT_CALL(*socket_->GetMockTransport(), Start()); | 454 EXPECT_CALL(*socket_->GetMockTransport(), Start()); |
| 452 EXPECT_CALL(handler_, OnConnectComplete(CHANNEL_ERROR_TRANSPORT_ERROR)); | 455 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::TRANSPORT_ERROR)); |
| 453 socket_->Connect(std::move(delegate_), | 456 socket_->Connect(std::move(delegate_), |
| 454 base::Bind(&CompleteHandler::OnConnectComplete, | 457 base::Bind(&CompleteHandler::OnConnectComplete, |
| 455 base::Unretained(&handler_))); | 458 base::Unretained(&handler_))); |
| 456 RunPendingTasks(); | 459 RunPendingTasks(); |
| 457 CastMessage mangled_auth_reply = CreateAuthReply(); | 460 CastMessage mangled_auth_reply = CreateAuthReply(); |
| 458 mangled_auth_reply.set_namespace_("BOGUS_NAMESPACE"); | 461 mangled_auth_reply.set_namespace_("BOGUS_NAMESPACE"); |
| 459 | 462 |
| 460 socket_->GetMockTransport()->current_delegate()->OnMessage( | 463 socket_->GetMockTransport()->current_delegate()->OnMessage( |
| 461 mangled_auth_reply); | 464 mangled_auth_reply); |
| 462 RunPendingTasks(); | 465 RunPendingTasks(); |
| 463 | 466 |
| 464 EXPECT_EQ(cast_channel::READY_STATE_CLOSED, socket_->ready_state()); | 467 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); |
| 465 EXPECT_EQ(cast_channel::CHANNEL_ERROR_TRANSPORT_ERROR, | 468 EXPECT_EQ(ChannelError::TRANSPORT_ERROR, socket_->error_state()); |
| 466 socket_->error_state()); | |
| 467 | 469 |
| 468 // Verifies that the CastSocket's resources were torn down during channel | 470 // Verifies that the CastSocket's resources were torn down during channel |
| 469 // close. (see http://crbug.com/504078) | 471 // close. (see http://crbug.com/504078) |
| 470 EXPECT_EQ(nullptr, socket_->transport()); | 472 EXPECT_EQ(nullptr, socket_->transport()); |
| 471 } | 473 } |
| 472 | 474 |
| 473 // Test connection error - TCP connect fails (async) | 475 // Test connection error - TCP connect fails (async) |
| 474 TEST_F(CastSocketTest, TestConnectTcpConnectErrorAsync) { | 476 TEST_F(CastSocketTest, TestConnectTcpConnectErrorAsync) { |
| 475 CreateCastSocketSecure(); | 477 CreateCastSocketSecure(); |
| 476 | 478 |
| 477 socket_->SetupTcpConnect(net::ASYNC, net::ERR_FAILED); | 479 socket_->SetupTcpConnect(net::ASYNC, net::ERR_FAILED); |
| 478 | 480 |
| 479 EXPECT_CALL(handler_, OnConnectComplete(CHANNEL_ERROR_CONNECT_ERROR)); | 481 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CONNECT_ERROR)); |
| 480 socket_->Connect(std::move(delegate_), | 482 socket_->Connect(std::move(delegate_), |
| 481 base::Bind(&CompleteHandler::OnConnectComplete, | 483 base::Bind(&CompleteHandler::OnConnectComplete, |
| 482 base::Unretained(&handler_))); | 484 base::Unretained(&handler_))); |
| 483 RunPendingTasks(); | 485 RunPendingTasks(); |
| 484 | 486 |
| 485 EXPECT_EQ(cast_channel::READY_STATE_CLOSED, socket_->ready_state()); | 487 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); |
| 486 EXPECT_EQ(cast_channel::CHANNEL_ERROR_CONNECT_ERROR, socket_->error_state()); | 488 EXPECT_EQ(ChannelError::CONNECT_ERROR, socket_->error_state()); |
| 487 } | 489 } |
| 488 | 490 |
| 489 // Test connection error - TCP connect fails (sync) | 491 // Test connection error - TCP connect fails (sync) |
| 490 TEST_F(CastSocketTest, TestConnectTcpConnectErrorSync) { | 492 TEST_F(CastSocketTest, TestConnectTcpConnectErrorSync) { |
| 491 CreateCastSocketSecure(); | 493 CreateCastSocketSecure(); |
| 492 | 494 |
| 493 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::ERR_FAILED); | 495 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::ERR_FAILED); |
| 494 | 496 |
| 495 EXPECT_CALL(handler_, OnConnectComplete(CHANNEL_ERROR_CONNECT_ERROR)); | 497 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CONNECT_ERROR)); |
| 496 socket_->Connect(std::move(delegate_), | 498 socket_->Connect(std::move(delegate_), |
| 497 base::Bind(&CompleteHandler::OnConnectComplete, | 499 base::Bind(&CompleteHandler::OnConnectComplete, |
| 498 base::Unretained(&handler_))); | 500 base::Unretained(&handler_))); |
| 499 RunPendingTasks(); | 501 RunPendingTasks(); |
| 500 | 502 |
| 501 EXPECT_EQ(cast_channel::READY_STATE_CLOSED, socket_->ready_state()); | 503 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); |
| 502 EXPECT_EQ(cast_channel::CHANNEL_ERROR_CONNECT_ERROR, socket_->error_state()); | 504 EXPECT_EQ(ChannelError::CONNECT_ERROR, socket_->error_state()); |
| 503 } | 505 } |
| 504 | 506 |
| 505 // Test connection error - timeout | 507 // Test connection error - timeout |
| 506 TEST_F(CastSocketTest, TestConnectTcpTimeoutError) { | 508 TEST_F(CastSocketTest, TestConnectTcpTimeoutError) { |
| 507 CreateCastSocketSecure(); | 509 CreateCastSocketSecure(); |
| 508 socket_->SetupTcpConnectUnresponsive(); | 510 socket_->SetupTcpConnectUnresponsive(); |
| 509 EXPECT_CALL(handler_, OnConnectComplete(CHANNEL_ERROR_CONNECT_TIMEOUT)); | 511 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CONNECT_TIMEOUT)); |
| 510 EXPECT_CALL(*delegate_, OnError(CHANNEL_ERROR_CONNECT_TIMEOUT)); | 512 EXPECT_CALL(*delegate_, OnError(ChannelError::CONNECT_TIMEOUT)); |
| 511 socket_->Connect(std::move(delegate_), | 513 socket_->Connect(std::move(delegate_), |
| 512 base::Bind(&CompleteHandler::OnConnectComplete, | 514 base::Bind(&CompleteHandler::OnConnectComplete, |
| 513 base::Unretained(&handler_))); | 515 base::Unretained(&handler_))); |
| 514 RunPendingTasks(); | 516 RunPendingTasks(); |
| 515 | 517 |
| 516 EXPECT_EQ(cast_channel::READY_STATE_CONNECTING, socket_->ready_state()); | 518 EXPECT_EQ(ReadyState::CONNECTING, socket_->ready_state()); |
| 517 EXPECT_EQ(cast_channel::CHANNEL_ERROR_NONE, socket_->error_state()); | 519 EXPECT_EQ(ChannelError::NONE, socket_->error_state()); |
| 518 socket_->TriggerTimeout(); | 520 socket_->TriggerTimeout(); |
| 519 RunPendingTasks(); | 521 RunPendingTasks(); |
| 520 | 522 |
| 521 EXPECT_EQ(cast_channel::READY_STATE_CLOSED, socket_->ready_state()); | 523 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); |
| 522 EXPECT_EQ(cast_channel::CHANNEL_ERROR_CONNECT_TIMEOUT, | 524 EXPECT_EQ(ChannelError::CONNECT_TIMEOUT, socket_->error_state()); |
| 523 socket_->error_state()); | |
| 524 } | 525 } |
| 525 | 526 |
| 526 // Test connection error - TCP socket returns timeout | 527 // Test connection error - TCP socket returns timeout |
| 527 TEST_F(CastSocketTest, TestConnectTcpSocketTimeoutError) { | 528 TEST_F(CastSocketTest, TestConnectTcpSocketTimeoutError) { |
| 528 CreateCastSocketSecure(); | 529 CreateCastSocketSecure(); |
| 529 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::ERR_CONNECTION_TIMED_OUT); | 530 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::ERR_CONNECTION_TIMED_OUT); |
| 530 EXPECT_CALL(handler_, OnConnectComplete(CHANNEL_ERROR_CONNECT_TIMEOUT)); | 531 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CONNECT_TIMEOUT)); |
| 531 EXPECT_CALL(*delegate_, OnError(CHANNEL_ERROR_CONNECT_TIMEOUT)); | 532 EXPECT_CALL(*delegate_, OnError(ChannelError::CONNECT_TIMEOUT)); |
| 532 socket_->Connect(std::move(delegate_), | 533 socket_->Connect(std::move(delegate_), |
| 533 base::Bind(&CompleteHandler::OnConnectComplete, | 534 base::Bind(&CompleteHandler::OnConnectComplete, |
| 534 base::Unretained(&handler_))); | 535 base::Unretained(&handler_))); |
| 535 RunPendingTasks(); | 536 RunPendingTasks(); |
| 536 | 537 |
| 537 EXPECT_EQ(cast_channel::READY_STATE_CLOSED, socket_->ready_state()); | 538 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); |
| 538 EXPECT_EQ(cast_channel::CHANNEL_ERROR_CONNECT_TIMEOUT, | 539 EXPECT_EQ(ChannelError::CONNECT_TIMEOUT, socket_->error_state()); |
| 539 socket_->error_state()); | |
| 540 EXPECT_EQ(net::ERR_CONNECTION_TIMED_OUT, | 540 EXPECT_EQ(net::ERR_CONNECTION_TIMED_OUT, |
| 541 logger_->GetLastErrors(socket_->id()).net_return_value); | 541 logger_->GetLastErrors(socket_->id()).net_return_value); |
| 542 } | 542 } |
| 543 | 543 |
| 544 // Test connection error - SSL connect fails (async) | 544 // Test connection error - SSL connect fails (async) |
| 545 TEST_F(CastSocketTest, TestConnectSslConnectErrorAsync) { | 545 TEST_F(CastSocketTest, TestConnectSslConnectErrorAsync) { |
| 546 CreateCastSocketSecure(); | 546 CreateCastSocketSecure(); |
| 547 | 547 |
| 548 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); | 548 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); |
| 549 socket_->SetupSslConnect(net::SYNCHRONOUS, net::ERR_FAILED); | 549 socket_->SetupSslConnect(net::SYNCHRONOUS, net::ERR_FAILED); |
| 550 | 550 |
| 551 EXPECT_CALL(handler_, OnConnectComplete(CHANNEL_ERROR_AUTHENTICATION_ERROR)); | 551 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::AUTHENTICATION_ERROR)); |
| 552 socket_->Connect(std::move(delegate_), | 552 socket_->Connect(std::move(delegate_), |
| 553 base::Bind(&CompleteHandler::OnConnectComplete, | 553 base::Bind(&CompleteHandler::OnConnectComplete, |
| 554 base::Unretained(&handler_))); | 554 base::Unretained(&handler_))); |
| 555 RunPendingTasks(); | 555 RunPendingTasks(); |
| 556 | 556 |
| 557 EXPECT_EQ(cast_channel::READY_STATE_CLOSED, socket_->ready_state()); | 557 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); |
| 558 EXPECT_EQ(cast_channel::CHANNEL_ERROR_AUTHENTICATION_ERROR, | 558 EXPECT_EQ(ChannelError::AUTHENTICATION_ERROR, socket_->error_state()); |
| 559 socket_->error_state()); | |
| 560 } | 559 } |
| 561 | 560 |
| 562 // Test connection error - SSL connect fails (sync) | 561 // Test connection error - SSL connect fails (sync) |
| 563 TEST_F(CastSocketTest, TestConnectSslConnectErrorSync) { | 562 TEST_F(CastSocketTest, TestConnectSslConnectErrorSync) { |
| 564 CreateCastSocketSecure(); | 563 CreateCastSocketSecure(); |
| 565 | 564 |
| 566 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); | 565 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); |
| 567 socket_->SetupSslConnect(net::SYNCHRONOUS, net::ERR_FAILED); | 566 socket_->SetupSslConnect(net::SYNCHRONOUS, net::ERR_FAILED); |
| 568 | 567 |
| 569 EXPECT_CALL(handler_, OnConnectComplete(CHANNEL_ERROR_AUTHENTICATION_ERROR)); | 568 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::AUTHENTICATION_ERROR)); |
| 570 socket_->Connect(std::move(delegate_), | 569 socket_->Connect(std::move(delegate_), |
| 571 base::Bind(&CompleteHandler::OnConnectComplete, | 570 base::Bind(&CompleteHandler::OnConnectComplete, |
| 572 base::Unretained(&handler_))); | 571 base::Unretained(&handler_))); |
| 573 RunPendingTasks(); | 572 RunPendingTasks(); |
| 574 | 573 |
| 575 EXPECT_EQ(cast_channel::READY_STATE_CLOSED, socket_->ready_state()); | 574 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); |
| 576 EXPECT_EQ(cast_channel::CHANNEL_ERROR_AUTHENTICATION_ERROR, | 575 EXPECT_EQ(ChannelError::AUTHENTICATION_ERROR, socket_->error_state()); |
| 577 socket_->error_state()); | |
| 578 EXPECT_EQ(net::ERR_FAILED, | 576 EXPECT_EQ(net::ERR_FAILED, |
| 579 logger_->GetLastErrors(socket_->id()).net_return_value); | 577 logger_->GetLastErrors(socket_->id()).net_return_value); |
| 580 } | 578 } |
| 581 | 579 |
| 582 // Test connection error - SSL connect times out (sync) | 580 // Test connection error - SSL connect times out (sync) |
| 583 TEST_F(CastSocketTest, TestConnectSslConnectTimeoutSync) { | 581 TEST_F(CastSocketTest, TestConnectSslConnectTimeoutSync) { |
| 584 CreateCastSocketSecure(); | 582 CreateCastSocketSecure(); |
| 585 | 583 |
| 586 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); | 584 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); |
| 587 socket_->SetupSslConnect(net::SYNCHRONOUS, net::ERR_CONNECTION_TIMED_OUT); | 585 socket_->SetupSslConnect(net::SYNCHRONOUS, net::ERR_CONNECTION_TIMED_OUT); |
| 588 | 586 |
| 589 EXPECT_CALL(handler_, OnConnectComplete(CHANNEL_ERROR_CONNECT_TIMEOUT)); | 587 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CONNECT_TIMEOUT)); |
| 590 socket_->Connect(std::move(delegate_), | 588 socket_->Connect(std::move(delegate_), |
| 591 base::Bind(&CompleteHandler::OnConnectComplete, | 589 base::Bind(&CompleteHandler::OnConnectComplete, |
| 592 base::Unretained(&handler_))); | 590 base::Unretained(&handler_))); |
| 593 RunPendingTasks(); | 591 RunPendingTasks(); |
| 594 | 592 |
| 595 EXPECT_EQ(cast_channel::READY_STATE_CLOSED, socket_->ready_state()); | 593 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); |
| 596 EXPECT_EQ(cast_channel::CHANNEL_ERROR_CONNECT_TIMEOUT, | 594 EXPECT_EQ(ChannelError::CONNECT_TIMEOUT, socket_->error_state()); |
| 597 socket_->error_state()); | |
| 598 EXPECT_EQ(net::ERR_CONNECTION_TIMED_OUT, | 595 EXPECT_EQ(net::ERR_CONNECTION_TIMED_OUT, |
| 599 logger_->GetLastErrors(socket_->id()).net_return_value); | 596 logger_->GetLastErrors(socket_->id()).net_return_value); |
| 600 } | 597 } |
| 601 | 598 |
| 602 // Test connection error - SSL connect times out (async) | 599 // Test connection error - SSL connect times out (async) |
| 603 TEST_F(CastSocketTest, TestConnectSslConnectTimeoutAsync) { | 600 TEST_F(CastSocketTest, TestConnectSslConnectTimeoutAsync) { |
| 604 CreateCastSocketSecure(); | 601 CreateCastSocketSecure(); |
| 605 | 602 |
| 606 socket_->SetupTcpConnect(net::ASYNC, net::OK); | 603 socket_->SetupTcpConnect(net::ASYNC, net::OK); |
| 607 socket_->SetupSslConnect(net::ASYNC, net::ERR_CONNECTION_TIMED_OUT); | 604 socket_->SetupSslConnect(net::ASYNC, net::ERR_CONNECTION_TIMED_OUT); |
| 608 | 605 |
| 609 EXPECT_CALL(handler_, OnConnectComplete(CHANNEL_ERROR_CONNECT_TIMEOUT)); | 606 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CONNECT_TIMEOUT)); |
| 610 socket_->Connect(std::move(delegate_), | 607 socket_->Connect(std::move(delegate_), |
| 611 base::Bind(&CompleteHandler::OnConnectComplete, | 608 base::Bind(&CompleteHandler::OnConnectComplete, |
| 612 base::Unretained(&handler_))); | 609 base::Unretained(&handler_))); |
| 613 RunPendingTasks(); | 610 RunPendingTasks(); |
| 614 | 611 |
| 615 EXPECT_EQ(cast_channel::READY_STATE_CLOSED, socket_->ready_state()); | 612 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); |
| 616 EXPECT_EQ(cast_channel::CHANNEL_ERROR_CONNECT_TIMEOUT, | 613 EXPECT_EQ(ChannelError::CONNECT_TIMEOUT, socket_->error_state()); |
| 617 socket_->error_state()); | |
| 618 } | 614 } |
| 619 | 615 |
| 620 // Test connection error - challenge send fails | 616 // Test connection error - challenge send fails |
| 621 TEST_F(CastSocketTest, TestConnectChallengeSendError) { | 617 TEST_F(CastSocketTest, TestConnectChallengeSendError) { |
| 622 CreateCastSocketSecure(); | 618 CreateCastSocketSecure(); |
| 623 socket_->SetupMockTransport(); | 619 socket_->SetupMockTransport(); |
| 624 | 620 |
| 625 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); | 621 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); |
| 626 socket_->SetupSslConnect(net::SYNCHRONOUS, net::OK); | 622 socket_->SetupSslConnect(net::SYNCHRONOUS, net::OK); |
| 627 EXPECT_CALL(*socket_->GetMockTransport(), | 623 EXPECT_CALL(*socket_->GetMockTransport(), |
| 628 SendMessage(EqualsProto(CreateAuthChallenge()), _)) | 624 SendMessage(EqualsProto(CreateAuthChallenge()), _)) |
| 629 .WillOnce(PostCompletionCallbackTask<1>(net::ERR_CONNECTION_RESET)); | 625 .WillOnce(PostCompletionCallbackTask<1>(net::ERR_CONNECTION_RESET)); |
| 630 | 626 |
| 631 EXPECT_CALL(handler_, OnConnectComplete(CHANNEL_ERROR_SOCKET_ERROR)); | 627 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::SOCKET_ERROR)); |
| 632 socket_->Connect(std::move(delegate_), | 628 socket_->Connect(std::move(delegate_), |
| 633 base::Bind(&CompleteHandler::OnConnectComplete, | 629 base::Bind(&CompleteHandler::OnConnectComplete, |
| 634 base::Unretained(&handler_))); | 630 base::Unretained(&handler_))); |
| 635 RunPendingTasks(); | 631 RunPendingTasks(); |
| 636 | 632 |
| 637 EXPECT_EQ(cast_channel::READY_STATE_CLOSED, socket_->ready_state()); | 633 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); |
| 638 EXPECT_EQ(cast_channel::CHANNEL_ERROR_SOCKET_ERROR, socket_->error_state()); | 634 EXPECT_EQ(ChannelError::SOCKET_ERROR, socket_->error_state()); |
| 639 } | 635 } |
| 640 | 636 |
| 641 // Test connection error - connection is destroyed after the challenge is | 637 // Test connection error - connection is destroyed after the challenge is |
| 642 // sent, with the async result still lurking in the task queue. | 638 // sent, with the async result still lurking in the task queue. |
| 643 TEST_F(CastSocketTest, TestConnectDestroyedAfterChallengeSent) { | 639 TEST_F(CastSocketTest, TestConnectDestroyedAfterChallengeSent) { |
| 644 CreateCastSocketSecure(); | 640 CreateCastSocketSecure(); |
| 645 socket_->SetupMockTransport(); | 641 socket_->SetupMockTransport(); |
| 646 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); | 642 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); |
| 647 socket_->SetupSslConnect(net::SYNCHRONOUS, net::OK); | 643 socket_->SetupSslConnect(net::SYNCHRONOUS, net::OK); |
| 648 EXPECT_CALL(*socket_->GetMockTransport(), | 644 EXPECT_CALL(*socket_->GetMockTransport(), |
| (...skipping 10 matching lines...) Expand all Loading... |
| 659 TEST_F(CastSocketTest, TestConnectChallengeReplyReceiveError) { | 655 TEST_F(CastSocketTest, TestConnectChallengeReplyReceiveError) { |
| 660 CreateCastSocketSecure(); | 656 CreateCastSocketSecure(); |
| 661 socket_->SetupMockTransport(); | 657 socket_->SetupMockTransport(); |
| 662 | 658 |
| 663 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); | 659 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); |
| 664 socket_->SetupSslConnect(net::SYNCHRONOUS, net::OK); | 660 socket_->SetupSslConnect(net::SYNCHRONOUS, net::OK); |
| 665 EXPECT_CALL(*socket_->GetMockTransport(), | 661 EXPECT_CALL(*socket_->GetMockTransport(), |
| 666 SendMessage(EqualsProto(CreateAuthChallenge()), _)) | 662 SendMessage(EqualsProto(CreateAuthChallenge()), _)) |
| 667 .WillOnce(PostCompletionCallbackTask<1>(net::OK)); | 663 .WillOnce(PostCompletionCallbackTask<1>(net::OK)); |
| 668 socket_->AddReadResult(net::SYNCHRONOUS, net::ERR_FAILED); | 664 socket_->AddReadResult(net::SYNCHRONOUS, net::ERR_FAILED); |
| 669 EXPECT_CALL(*delegate_, OnError(CHANNEL_ERROR_SOCKET_ERROR)); | 665 EXPECT_CALL(*delegate_, OnError(ChannelError::SOCKET_ERROR)); |
| 670 EXPECT_CALL(handler_, OnConnectComplete(CHANNEL_ERROR_SOCKET_ERROR)); | 666 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::SOCKET_ERROR)); |
| 671 EXPECT_CALL(*socket_->GetMockTransport(), Start()); | 667 EXPECT_CALL(*socket_->GetMockTransport(), Start()); |
| 672 socket_->Connect(std::move(delegate_), | 668 socket_->Connect(std::move(delegate_), |
| 673 base::Bind(&CompleteHandler::OnConnectComplete, | 669 base::Bind(&CompleteHandler::OnConnectComplete, |
| 674 base::Unretained(&handler_))); | 670 base::Unretained(&handler_))); |
| 675 RunPendingTasks(); | 671 RunPendingTasks(); |
| 676 socket_->GetMockTransport()->current_delegate()->OnError( | 672 socket_->GetMockTransport()->current_delegate()->OnError( |
| 677 CHANNEL_ERROR_SOCKET_ERROR); | 673 ChannelError::SOCKET_ERROR); |
| 678 RunPendingTasks(); | 674 RunPendingTasks(); |
| 679 | 675 |
| 680 EXPECT_EQ(cast_channel::READY_STATE_CLOSED, socket_->ready_state()); | 676 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); |
| 681 EXPECT_EQ(cast_channel::CHANNEL_ERROR_SOCKET_ERROR, socket_->error_state()); | 677 EXPECT_EQ(ChannelError::SOCKET_ERROR, socket_->error_state()); |
| 682 } | 678 } |
| 683 | 679 |
| 684 TEST_F(CastSocketTest, TestConnectChallengeVerificationFails) { | 680 TEST_F(CastSocketTest, TestConnectChallengeVerificationFails) { |
| 685 CreateCastSocketSecure(); | 681 CreateCastSocketSecure(); |
| 686 socket_->SetupMockTransport(); | 682 socket_->SetupMockTransport(); |
| 687 socket_->SetupTcpConnect(net::ASYNC, net::OK); | 683 socket_->SetupTcpConnect(net::ASYNC, net::OK); |
| 688 socket_->SetupSslConnect(net::ASYNC, net::OK); | 684 socket_->SetupSslConnect(net::ASYNC, net::OK); |
| 689 socket_->SetVerifyChallengeResult(false); | 685 socket_->SetVerifyChallengeResult(false); |
| 690 | 686 |
| 691 EXPECT_CALL(*delegate_, OnError(CHANNEL_ERROR_AUTHENTICATION_ERROR)); | 687 EXPECT_CALL(*delegate_, OnError(ChannelError::AUTHENTICATION_ERROR)); |
| 692 CastMessage challenge_proto = CreateAuthChallenge(); | 688 CastMessage challenge_proto = CreateAuthChallenge(); |
| 693 EXPECT_CALL(*socket_->GetMockTransport(), | 689 EXPECT_CALL(*socket_->GetMockTransport(), |
| 694 SendMessage(EqualsProto(challenge_proto), _)) | 690 SendMessage(EqualsProto(challenge_proto), _)) |
| 695 .WillOnce(PostCompletionCallbackTask<1>(net::OK)); | 691 .WillOnce(PostCompletionCallbackTask<1>(net::OK)); |
| 696 EXPECT_CALL(handler_, OnConnectComplete(CHANNEL_ERROR_AUTHENTICATION_ERROR)); | 692 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::AUTHENTICATION_ERROR)); |
| 697 EXPECT_CALL(*socket_->GetMockTransport(), Start()); | 693 EXPECT_CALL(*socket_->GetMockTransport(), Start()); |
| 698 socket_->Connect(std::move(delegate_), | 694 socket_->Connect(std::move(delegate_), |
| 699 base::Bind(&CompleteHandler::OnConnectComplete, | 695 base::Bind(&CompleteHandler::OnConnectComplete, |
| 700 base::Unretained(&handler_))); | 696 base::Unretained(&handler_))); |
| 701 RunPendingTasks(); | 697 RunPendingTasks(); |
| 702 socket_->GetMockTransport()->current_delegate()->OnMessage(CreateAuthReply()); | 698 socket_->GetMockTransport()->current_delegate()->OnMessage(CreateAuthReply()); |
| 703 RunPendingTasks(); | 699 RunPendingTasks(); |
| 704 | 700 |
| 705 EXPECT_EQ(cast_channel::READY_STATE_CLOSED, socket_->ready_state()); | 701 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); |
| 706 EXPECT_EQ(cast_channel::CHANNEL_ERROR_AUTHENTICATION_ERROR, | 702 EXPECT_EQ(ChannelError::AUTHENTICATION_ERROR, socket_->error_state()); |
| 707 socket_->error_state()); | |
| 708 } | 703 } |
| 709 | 704 |
| 710 // Sends message data through an actual non-mocked CastTransport object, | 705 // Sends message data through an actual non-mocked CastTransport object, |
| 711 // testing the two components in integration. | 706 // testing the two components in integration. |
| 712 TEST_F(CastSocketTest, TestConnectEndToEndWithRealTransportAsync) { | 707 TEST_F(CastSocketTest, TestConnectEndToEndWithRealTransportAsync) { |
| 713 CreateCastSocketSecure(); | 708 CreateCastSocketSecure(); |
| 714 socket_->SetupTcpConnect(net::ASYNC, net::OK); | 709 socket_->SetupTcpConnect(net::ASYNC, net::OK); |
| 715 socket_->SetupSslConnect(net::ASYNC, net::OK); | 710 socket_->SetupSslConnect(net::ASYNC, net::OK); |
| 716 | 711 |
| 717 // Set low-level auth challenge expectations. | 712 // Set low-level auth challenge expectations. |
| 718 CastMessage challenge = CreateAuthChallenge(); | 713 CastMessage challenge = CreateAuthChallenge(); |
| 719 std::string challenge_str; | 714 std::string challenge_str; |
| 720 EXPECT_TRUE(MessageFramer::Serialize(challenge, &challenge_str)); | 715 EXPECT_TRUE(MessageFramer::Serialize(challenge, &challenge_str)); |
| 721 socket_->AddWriteResultForData(net::ASYNC, challenge_str); | 716 socket_->AddWriteResultForData(net::ASYNC, challenge_str); |
| 722 | 717 |
| 723 // Set low-level auth reply expectations. | 718 // Set low-level auth reply expectations. |
| 724 CastMessage reply = CreateAuthReply(); | 719 CastMessage reply = CreateAuthReply(); |
| 725 std::string reply_str; | 720 std::string reply_str; |
| 726 EXPECT_TRUE(MessageFramer::Serialize(reply, &reply_str)); | 721 EXPECT_TRUE(MessageFramer::Serialize(reply, &reply_str)); |
| 727 socket_->AddReadResultForData(net::ASYNC, reply_str); | 722 socket_->AddReadResultForData(net::ASYNC, reply_str); |
| 728 socket_->AddReadResult(net::ASYNC, net::ERR_IO_PENDING); | 723 socket_->AddReadResult(net::ASYNC, net::ERR_IO_PENDING); |
| 729 | 724 |
| 730 CastMessage test_message = CreateTestMessage(); | 725 CastMessage test_message = CreateTestMessage(); |
| 731 std::string test_message_str; | 726 std::string test_message_str; |
| 732 EXPECT_TRUE(MessageFramer::Serialize(test_message, &test_message_str)); | 727 EXPECT_TRUE(MessageFramer::Serialize(test_message, &test_message_str)); |
| 733 socket_->AddWriteResultForData(net::ASYNC, test_message_str); | 728 socket_->AddWriteResultForData(net::ASYNC, test_message_str); |
| 734 | 729 |
| 735 EXPECT_CALL(handler_, OnConnectComplete(CHANNEL_ERROR_NONE)); | 730 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::NONE)); |
| 736 socket_->Connect(std::move(delegate_), | 731 socket_->Connect(std::move(delegate_), |
| 737 base::Bind(&CompleteHandler::OnConnectComplete, | 732 base::Bind(&CompleteHandler::OnConnectComplete, |
| 738 base::Unretained(&handler_))); | 733 base::Unretained(&handler_))); |
| 739 RunPendingTasks(); | 734 RunPendingTasks(); |
| 740 EXPECT_EQ(cast_channel::READY_STATE_OPEN, socket_->ready_state()); | 735 EXPECT_EQ(ReadyState::OPEN, socket_->ready_state()); |
| 741 EXPECT_EQ(cast_channel::CHANNEL_ERROR_NONE, socket_->error_state()); | 736 EXPECT_EQ(ChannelError::NONE, socket_->error_state()); |
| 742 | 737 |
| 743 // Send the test message through a real transport object. | 738 // Send the test message through a real transport object. |
| 744 EXPECT_CALL(handler_, OnWriteComplete(net::OK)); | 739 EXPECT_CALL(handler_, OnWriteComplete(net::OK)); |
| 745 socket_->transport()->SendMessage( | 740 socket_->transport()->SendMessage( |
| 746 test_message, base::Bind(&CompleteHandler::OnWriteComplete, | 741 test_message, base::Bind(&CompleteHandler::OnWriteComplete, |
| 747 base::Unretained(&handler_))); | 742 base::Unretained(&handler_))); |
| 748 RunPendingTasks(); | 743 RunPendingTasks(); |
| 749 | 744 |
| 750 EXPECT_EQ(cast_channel::READY_STATE_OPEN, socket_->ready_state()); | 745 EXPECT_EQ(ReadyState::OPEN, socket_->ready_state()); |
| 751 EXPECT_EQ(cast_channel::CHANNEL_ERROR_NONE, socket_->error_state()); | 746 EXPECT_EQ(ChannelError::NONE, socket_->error_state()); |
| 752 } | 747 } |
| 753 | 748 |
| 754 // Same as TestConnectEndToEndWithRealTransportAsync, except synchronous. | 749 // Same as TestConnectEndToEndWithRealTransportAsync, except synchronous. |
| 755 TEST_F(CastSocketTest, TestConnectEndToEndWithRealTransportSync) { | 750 TEST_F(CastSocketTest, TestConnectEndToEndWithRealTransportSync) { |
| 756 CreateCastSocketSecure(); | 751 CreateCastSocketSecure(); |
| 757 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); | 752 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); |
| 758 socket_->SetupSslConnect(net::SYNCHRONOUS, net::OK); | 753 socket_->SetupSslConnect(net::SYNCHRONOUS, net::OK); |
| 759 | 754 |
| 760 // Set low-level auth challenge expectations. | 755 // Set low-level auth challenge expectations. |
| 761 CastMessage challenge = CreateAuthChallenge(); | 756 CastMessage challenge = CreateAuthChallenge(); |
| 762 std::string challenge_str; | 757 std::string challenge_str; |
| 763 EXPECT_TRUE(MessageFramer::Serialize(challenge, &challenge_str)); | 758 EXPECT_TRUE(MessageFramer::Serialize(challenge, &challenge_str)); |
| 764 socket_->AddWriteResultForData(net::SYNCHRONOUS, challenge_str); | 759 socket_->AddWriteResultForData(net::SYNCHRONOUS, challenge_str); |
| 765 | 760 |
| 766 // Set low-level auth reply expectations. | 761 // Set low-level auth reply expectations. |
| 767 CastMessage reply = CreateAuthReply(); | 762 CastMessage reply = CreateAuthReply(); |
| 768 std::string reply_str; | 763 std::string reply_str; |
| 769 EXPECT_TRUE(MessageFramer::Serialize(reply, &reply_str)); | 764 EXPECT_TRUE(MessageFramer::Serialize(reply, &reply_str)); |
| 770 socket_->AddReadResultForData(net::SYNCHRONOUS, reply_str); | 765 socket_->AddReadResultForData(net::SYNCHRONOUS, reply_str); |
| 771 socket_->AddReadResult(net::ASYNC, net::ERR_IO_PENDING); | 766 socket_->AddReadResult(net::ASYNC, net::ERR_IO_PENDING); |
| 772 | 767 |
| 773 CastMessage test_message = CreateTestMessage(); | 768 CastMessage test_message = CreateTestMessage(); |
| 774 std::string test_message_str; | 769 std::string test_message_str; |
| 775 EXPECT_TRUE(MessageFramer::Serialize(test_message, &test_message_str)); | 770 EXPECT_TRUE(MessageFramer::Serialize(test_message, &test_message_str)); |
| 776 socket_->AddWriteResultForData(net::SYNCHRONOUS, test_message_str); | 771 socket_->AddWriteResultForData(net::SYNCHRONOUS, test_message_str); |
| 777 | 772 |
| 778 EXPECT_CALL(handler_, OnConnectComplete(CHANNEL_ERROR_NONE)); | 773 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::NONE)); |
| 779 socket_->Connect(std::move(delegate_), | 774 socket_->Connect(std::move(delegate_), |
| 780 base::Bind(&CompleteHandler::OnConnectComplete, | 775 base::Bind(&CompleteHandler::OnConnectComplete, |
| 781 base::Unretained(&handler_))); | 776 base::Unretained(&handler_))); |
| 782 RunPendingTasks(); | 777 RunPendingTasks(); |
| 783 EXPECT_EQ(cast_channel::READY_STATE_OPEN, socket_->ready_state()); | 778 EXPECT_EQ(ReadyState::OPEN, socket_->ready_state()); |
| 784 EXPECT_EQ(cast_channel::CHANNEL_ERROR_NONE, socket_->error_state()); | 779 EXPECT_EQ(ChannelError::NONE, socket_->error_state()); |
| 785 | 780 |
| 786 // Send the test message through a real transport object. | 781 // Send the test message through a real transport object. |
| 787 EXPECT_CALL(handler_, OnWriteComplete(net::OK)); | 782 EXPECT_CALL(handler_, OnWriteComplete(net::OK)); |
| 788 socket_->transport()->SendMessage( | 783 socket_->transport()->SendMessage( |
| 789 test_message, base::Bind(&CompleteHandler::OnWriteComplete, | 784 test_message, base::Bind(&CompleteHandler::OnWriteComplete, |
| 790 base::Unretained(&handler_))); | 785 base::Unretained(&handler_))); |
| 791 RunPendingTasks(); | 786 RunPendingTasks(); |
| 792 | 787 |
| 793 EXPECT_EQ(cast_channel::READY_STATE_OPEN, socket_->ready_state()); | 788 EXPECT_EQ(ReadyState::OPEN, socket_->ready_state()); |
| 794 EXPECT_EQ(cast_channel::CHANNEL_ERROR_NONE, socket_->error_state()); | 789 EXPECT_EQ(ChannelError::NONE, socket_->error_state()); |
| 795 } | 790 } |
| 796 | 791 |
| 797 } // namespace cast_channel | 792 } // namespace cast_channel |
| 798 } // namespace api | 793 } // namespace api |
| 799 } // namespace extensions | 794 } // namespace extensions |
| OLD | NEW |