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

Side by Side Diff: components/cast_channel/cast_socket_unittest.cc

Issue 2925053005: [cast_channel] Implement CastSocketService::OpenSocket() (Closed)
Patch Set: move |logger_| from cast_channel_api to cast_socket_service Created 3 years, 5 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 "components/cast_channel/cast_socket.h" 5 #include "components/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 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 MOCK_METHOD0(Start, void()); 151 MOCK_METHOD0(Start, void());
152 152
153 private: 153 private:
154 DISALLOW_COPY_AND_ASSIGN(MockDelegate); 154 DISALLOW_COPY_AND_ASSIGN(MockDelegate);
155 }; 155 };
156 156
157 class CompleteHandler { 157 class CompleteHandler {
158 public: 158 public:
159 CompleteHandler() {} 159 CompleteHandler() {}
160 MOCK_METHOD1(OnCloseComplete, void(int result)); 160 MOCK_METHOD1(OnCloseComplete, void(int result));
161 MOCK_METHOD1(OnConnectComplete, void(ChannelError error_state)); 161 MOCK_METHOD2(OnConnectComplete,
162 void(int channel_id, 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 std::unique_ptr<TestCastSocket> CreateSecure( 172 static std::unique_ptr<TestCastSocket> CreateSecure(
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 socket_ = TestCastSocket::CreateSecure(logger_); 350 socket_ = TestCastSocket::CreateSecure(logger_);
350 } 351 }
351 352
352 void HandleAuthHandshake() { 353 void HandleAuthHandshake() {
353 socket_->SetupMockTransport(); 354 socket_->SetupMockTransport();
354 CastMessage challenge_proto = CreateAuthChallenge(); 355 CastMessage challenge_proto = CreateAuthChallenge();
355 EXPECT_CALL(*socket_->GetMockTransport(), 356 EXPECT_CALL(*socket_->GetMockTransport(),
356 SendMessage(EqualsProto(challenge_proto), _)) 357 SendMessage(EqualsProto(challenge_proto), _))
357 .WillOnce(PostCompletionCallbackTask<1>(net::OK)); 358 .WillOnce(PostCompletionCallbackTask<1>(net::OK));
358 EXPECT_CALL(*socket_->GetMockTransport(), Start()); 359 EXPECT_CALL(*socket_->GetMockTransport(), Start());
359 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::NONE)); 360 EXPECT_CALL(handler_, OnConnectComplete(_, ChannelError::NONE));
360 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete, 361 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
361 base::Unretained(&handler_))); 362 base::Unretained(&handler_)));
362 RunPendingTasks(); 363 RunPendingTasks();
363 socket_->GetMockTransport()->current_delegate()->OnMessage( 364 socket_->GetMockTransport()->current_delegate()->OnMessage(
364 CreateAuthReply()); 365 CreateAuthReply());
365 RunPendingTasks(); 366 RunPendingTasks();
366 } 367 }
367 368
368 protected: 369 protected:
369 // Runs all pending tasks in the message loop. 370 // Runs all pending tasks in the message loop.
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 socket_->SetupMockTransport(); 426 socket_->SetupMockTransport();
426 427
427 socket_->SetupTcpConnect(net::ASYNC, net::OK); 428 socket_->SetupTcpConnect(net::ASYNC, net::OK);
428 socket_->SetupSslConnect(net::ASYNC, net::OK); 429 socket_->SetupSslConnect(net::ASYNC, net::OK);
429 430
430 CastMessage challenge_proto = CreateAuthChallenge(); 431 CastMessage challenge_proto = CreateAuthChallenge();
431 EXPECT_CALL(*socket_->GetMockTransport(), 432 EXPECT_CALL(*socket_->GetMockTransport(),
432 SendMessage(EqualsProto(challenge_proto), _)) 433 SendMessage(EqualsProto(challenge_proto), _))
433 .WillOnce(PostCompletionCallbackTask<1>(net::OK)); 434 .WillOnce(PostCompletionCallbackTask<1>(net::OK));
434 EXPECT_CALL(*socket_->GetMockTransport(), Start()); 435 EXPECT_CALL(*socket_->GetMockTransport(), Start());
435 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::TRANSPORT_ERROR)); 436 EXPECT_CALL(handler_, OnConnectComplete(_, ChannelError::TRANSPORT_ERROR));
436 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete, 437 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
437 base::Unretained(&handler_))); 438 base::Unretained(&handler_)));
438 RunPendingTasks(); 439 RunPendingTasks();
439 CastMessage mangled_auth_reply = CreateAuthReply(); 440 CastMessage mangled_auth_reply = CreateAuthReply();
440 mangled_auth_reply.set_namespace_("BOGUS_NAMESPACE"); 441 mangled_auth_reply.set_namespace_("BOGUS_NAMESPACE");
441 442
442 socket_->GetMockTransport()->current_delegate()->OnMessage( 443 socket_->GetMockTransport()->current_delegate()->OnMessage(
443 mangled_auth_reply); 444 mangled_auth_reply);
444 RunPendingTasks(); 445 RunPendingTasks();
445 446
446 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); 447 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state());
447 EXPECT_EQ(ChannelError::TRANSPORT_ERROR, socket_->error_state()); 448 EXPECT_EQ(ChannelError::TRANSPORT_ERROR, socket_->error_state());
448 449
449 // Verifies that the CastSocket's resources were torn down during channel 450 // Verifies that the CastSocket's resources were torn down during channel
450 // close. (see http://crbug.com/504078) 451 // close. (see http://crbug.com/504078)
451 EXPECT_EQ(nullptr, socket_->transport()); 452 EXPECT_EQ(nullptr, socket_->transport());
452 } 453 }
453 454
454 // Test connection error - TCP connect fails (async) 455 // Test connection error - TCP connect fails (async)
455 TEST_F(CastSocketTest, TestConnectTcpConnectErrorAsync) { 456 TEST_F(CastSocketTest, TestConnectTcpConnectErrorAsync) {
456 CreateCastSocketSecure(); 457 CreateCastSocketSecure();
457 458
458 socket_->SetupTcpConnect(net::ASYNC, net::ERR_FAILED); 459 socket_->SetupTcpConnect(net::ASYNC, net::ERR_FAILED);
459 460
460 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CONNECT_ERROR)); 461 EXPECT_CALL(handler_, OnConnectComplete(_, ChannelError::CONNECT_ERROR));
461 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete, 462 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
462 base::Unretained(&handler_))); 463 base::Unretained(&handler_)));
463 RunPendingTasks(); 464 RunPendingTasks();
464 465
465 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); 466 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state());
466 EXPECT_EQ(ChannelError::CONNECT_ERROR, socket_->error_state()); 467 EXPECT_EQ(ChannelError::CONNECT_ERROR, socket_->error_state());
467 } 468 }
468 469
469 // Test connection error - TCP connect fails (sync) 470 // Test connection error - TCP connect fails (sync)
470 TEST_F(CastSocketTest, TestConnectTcpConnectErrorSync) { 471 TEST_F(CastSocketTest, TestConnectTcpConnectErrorSync) {
471 CreateCastSocketSecure(); 472 CreateCastSocketSecure();
472 473
473 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::ERR_FAILED); 474 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::ERR_FAILED);
474 475
475 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CONNECT_ERROR)); 476 EXPECT_CALL(handler_, OnConnectComplete(_, ChannelError::CONNECT_ERROR));
476 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete, 477 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
477 base::Unretained(&handler_))); 478 base::Unretained(&handler_)));
478 RunPendingTasks(); 479 RunPendingTasks();
479 480
480 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); 481 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state());
481 EXPECT_EQ(ChannelError::CONNECT_ERROR, socket_->error_state()); 482 EXPECT_EQ(ChannelError::CONNECT_ERROR, socket_->error_state());
482 } 483 }
483 484
484 // Test connection error - timeout 485 // Test connection error - timeout
485 TEST_F(CastSocketTest, TestConnectTcpTimeoutError) { 486 TEST_F(CastSocketTest, TestConnectTcpTimeoutError) {
486 CreateCastSocketSecure(); 487 CreateCastSocketSecure();
487 socket_->SetupTcpConnectUnresponsive(); 488 socket_->SetupTcpConnectUnresponsive();
488 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CONNECT_TIMEOUT)); 489 EXPECT_CALL(handler_, OnConnectComplete(_, ChannelError::CONNECT_TIMEOUT));
489 EXPECT_CALL(*observer_, OnError(_, ChannelError::CONNECT_TIMEOUT)); 490 EXPECT_CALL(*observer_, OnError(_, ChannelError::CONNECT_TIMEOUT));
490 socket_->AddObserver(observer_.get()); 491 socket_->AddObserver(observer_.get());
491 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete, 492 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
492 base::Unretained(&handler_))); 493 base::Unretained(&handler_)));
493 RunPendingTasks(); 494 RunPendingTasks();
494 495
495 EXPECT_EQ(ReadyState::CONNECTING, socket_->ready_state()); 496 EXPECT_EQ(ReadyState::CONNECTING, socket_->ready_state());
496 EXPECT_EQ(ChannelError::NONE, socket_->error_state()); 497 EXPECT_EQ(ChannelError::NONE, socket_->error_state());
497 socket_->TriggerTimeout(); 498 socket_->TriggerTimeout();
498 RunPendingTasks(); 499 RunPendingTasks();
499 500
500 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); 501 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state());
501 EXPECT_EQ(ChannelError::CONNECT_TIMEOUT, socket_->error_state()); 502 EXPECT_EQ(ChannelError::CONNECT_TIMEOUT, socket_->error_state());
502 } 503 }
503 504
504 // Test connection error - TCP socket returns timeout 505 // Test connection error - TCP socket returns timeout
505 TEST_F(CastSocketTest, TestConnectTcpSocketTimeoutError) { 506 TEST_F(CastSocketTest, TestConnectTcpSocketTimeoutError) {
506 CreateCastSocketSecure(); 507 CreateCastSocketSecure();
507 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::ERR_CONNECTION_TIMED_OUT); 508 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::ERR_CONNECTION_TIMED_OUT);
508 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CONNECT_TIMEOUT)); 509 EXPECT_CALL(handler_, OnConnectComplete(_, ChannelError::CONNECT_TIMEOUT));
509 EXPECT_CALL(*observer_, OnError(_, ChannelError::CONNECT_TIMEOUT)); 510 EXPECT_CALL(*observer_, OnError(_, ChannelError::CONNECT_TIMEOUT));
510 socket_->AddObserver(observer_.get()); 511 socket_->AddObserver(observer_.get());
511 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete, 512 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
512 base::Unretained(&handler_))); 513 base::Unretained(&handler_)));
513 RunPendingTasks(); 514 RunPendingTasks();
514 515
515 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); 516 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state());
516 EXPECT_EQ(ChannelError::CONNECT_TIMEOUT, socket_->error_state()); 517 EXPECT_EQ(ChannelError::CONNECT_TIMEOUT, socket_->error_state());
517 EXPECT_EQ(net::ERR_CONNECTION_TIMED_OUT, 518 EXPECT_EQ(net::ERR_CONNECTION_TIMED_OUT,
518 logger_->GetLastError(socket_->id()).net_return_value); 519 logger_->GetLastError(socket_->id()).net_return_value);
519 } 520 }
520 521
521 // Test connection error - SSL connect fails (async) 522 // Test connection error - SSL connect fails (async)
522 TEST_F(CastSocketTest, TestConnectSslConnectErrorAsync) { 523 TEST_F(CastSocketTest, TestConnectSslConnectErrorAsync) {
523 CreateCastSocketSecure(); 524 CreateCastSocketSecure();
524 525
525 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); 526 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK);
526 socket_->SetupSslConnect(net::SYNCHRONOUS, net::ERR_FAILED); 527 socket_->SetupSslConnect(net::SYNCHRONOUS, net::ERR_FAILED);
527 528
528 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::AUTHENTICATION_ERROR)); 529 EXPECT_CALL(handler_,
530 OnConnectComplete(_, ChannelError::AUTHENTICATION_ERROR));
529 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete, 531 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
530 base::Unretained(&handler_))); 532 base::Unretained(&handler_)));
531 RunPendingTasks(); 533 RunPendingTasks();
532 534
533 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); 535 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state());
534 EXPECT_EQ(ChannelError::AUTHENTICATION_ERROR, socket_->error_state()); 536 EXPECT_EQ(ChannelError::AUTHENTICATION_ERROR, socket_->error_state());
535 } 537 }
536 538
537 // Test connection error - SSL connect fails (sync) 539 // Test connection error - SSL connect fails (sync)
538 TEST_F(CastSocketTest, TestConnectSslConnectErrorSync) { 540 TEST_F(CastSocketTest, TestConnectSslConnectErrorSync) {
539 CreateCastSocketSecure(); 541 CreateCastSocketSecure();
540 542
541 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); 543 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK);
542 socket_->SetupSslConnect(net::SYNCHRONOUS, net::ERR_FAILED); 544 socket_->SetupSslConnect(net::SYNCHRONOUS, net::ERR_FAILED);
543 545
544 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::AUTHENTICATION_ERROR)); 546 EXPECT_CALL(handler_,
547 OnConnectComplete(_, ChannelError::AUTHENTICATION_ERROR));
545 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete, 548 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
546 base::Unretained(&handler_))); 549 base::Unretained(&handler_)));
547 RunPendingTasks(); 550 RunPendingTasks();
548 551
549 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); 552 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state());
550 EXPECT_EQ(ChannelError::AUTHENTICATION_ERROR, socket_->error_state()); 553 EXPECT_EQ(ChannelError::AUTHENTICATION_ERROR, socket_->error_state());
551 EXPECT_EQ(net::ERR_FAILED, 554 EXPECT_EQ(net::ERR_FAILED,
552 logger_->GetLastError(socket_->id()).net_return_value); 555 logger_->GetLastError(socket_->id()).net_return_value);
553 } 556 }
554 557
555 // Test connection error - SSL connect times out (sync) 558 // Test connection error - SSL connect times out (sync)
556 TEST_F(CastSocketTest, TestConnectSslConnectTimeoutSync) { 559 TEST_F(CastSocketTest, TestConnectSslConnectTimeoutSync) {
557 CreateCastSocketSecure(); 560 CreateCastSocketSecure();
558 561
559 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); 562 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK);
560 socket_->SetupSslConnect(net::SYNCHRONOUS, net::ERR_CONNECTION_TIMED_OUT); 563 socket_->SetupSslConnect(net::SYNCHRONOUS, net::ERR_CONNECTION_TIMED_OUT);
561 564
562 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CONNECT_TIMEOUT)); 565 EXPECT_CALL(handler_, OnConnectComplete(_, ChannelError::CONNECT_TIMEOUT));
563 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete, 566 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
564 base::Unretained(&handler_))); 567 base::Unretained(&handler_)));
565 RunPendingTasks(); 568 RunPendingTasks();
566 569
567 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); 570 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state());
568 EXPECT_EQ(ChannelError::CONNECT_TIMEOUT, socket_->error_state()); 571 EXPECT_EQ(ChannelError::CONNECT_TIMEOUT, socket_->error_state());
569 EXPECT_EQ(net::ERR_CONNECTION_TIMED_OUT, 572 EXPECT_EQ(net::ERR_CONNECTION_TIMED_OUT,
570 logger_->GetLastError(socket_->id()).net_return_value); 573 logger_->GetLastError(socket_->id()).net_return_value);
571 } 574 }
572 575
573 // Test connection error - SSL connect times out (async) 576 // Test connection error - SSL connect times out (async)
574 TEST_F(CastSocketTest, TestConnectSslConnectTimeoutAsync) { 577 TEST_F(CastSocketTest, TestConnectSslConnectTimeoutAsync) {
575 CreateCastSocketSecure(); 578 CreateCastSocketSecure();
576 579
577 socket_->SetupTcpConnect(net::ASYNC, net::OK); 580 socket_->SetupTcpConnect(net::ASYNC, net::OK);
578 socket_->SetupSslConnect(net::ASYNC, net::ERR_CONNECTION_TIMED_OUT); 581 socket_->SetupSslConnect(net::ASYNC, net::ERR_CONNECTION_TIMED_OUT);
579 582
580 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CONNECT_TIMEOUT)); 583 EXPECT_CALL(handler_, OnConnectComplete(_, ChannelError::CONNECT_TIMEOUT));
581 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete, 584 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
582 base::Unretained(&handler_))); 585 base::Unretained(&handler_)));
583 RunPendingTasks(); 586 RunPendingTasks();
584 587
585 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); 588 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state());
586 EXPECT_EQ(ChannelError::CONNECT_TIMEOUT, socket_->error_state()); 589 EXPECT_EQ(ChannelError::CONNECT_TIMEOUT, socket_->error_state());
587 } 590 }
588 591
589 // Test connection error - challenge send fails 592 // Test connection error - challenge send fails
590 TEST_F(CastSocketTest, TestConnectChallengeSendError) { 593 TEST_F(CastSocketTest, TestConnectChallengeSendError) {
591 CreateCastSocketSecure(); 594 CreateCastSocketSecure();
592 socket_->SetupMockTransport(); 595 socket_->SetupMockTransport();
593 596
594 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); 597 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK);
595 socket_->SetupSslConnect(net::SYNCHRONOUS, net::OK); 598 socket_->SetupSslConnect(net::SYNCHRONOUS, net::OK);
596 EXPECT_CALL(*socket_->GetMockTransport(), 599 EXPECT_CALL(*socket_->GetMockTransport(),
597 SendMessage(EqualsProto(CreateAuthChallenge()), _)) 600 SendMessage(EqualsProto(CreateAuthChallenge()), _))
598 .WillOnce(PostCompletionCallbackTask<1>(net::ERR_CONNECTION_RESET)); 601 .WillOnce(PostCompletionCallbackTask<1>(net::ERR_CONNECTION_RESET));
599 602
600 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CAST_SOCKET_ERROR)); 603 EXPECT_CALL(handler_, OnConnectComplete(_, ChannelError::CAST_SOCKET_ERROR));
601 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete, 604 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
602 base::Unretained(&handler_))); 605 base::Unretained(&handler_)));
603 RunPendingTasks(); 606 RunPendingTasks();
604 607
605 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); 608 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state());
606 EXPECT_EQ(ChannelError::CAST_SOCKET_ERROR, socket_->error_state()); 609 EXPECT_EQ(ChannelError::CAST_SOCKET_ERROR, socket_->error_state());
607 } 610 }
608 611
609 // Test connection error - connection is destroyed after the challenge is 612 // Test connection error - connection is destroyed after the challenge is
610 // sent, with the async result still lurking in the task queue. 613 // sent, with the async result still lurking in the task queue.
(...skipping 16 matching lines...) Expand all
627 CreateCastSocketSecure(); 630 CreateCastSocketSecure();
628 socket_->SetupMockTransport(); 631 socket_->SetupMockTransport();
629 632
630 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK); 633 socket_->SetupTcpConnect(net::SYNCHRONOUS, net::OK);
631 socket_->SetupSslConnect(net::SYNCHRONOUS, net::OK); 634 socket_->SetupSslConnect(net::SYNCHRONOUS, net::OK);
632 EXPECT_CALL(*socket_->GetMockTransport(), 635 EXPECT_CALL(*socket_->GetMockTransport(),
633 SendMessage(EqualsProto(CreateAuthChallenge()), _)) 636 SendMessage(EqualsProto(CreateAuthChallenge()), _))
634 .WillOnce(PostCompletionCallbackTask<1>(net::OK)); 637 .WillOnce(PostCompletionCallbackTask<1>(net::OK));
635 socket_->AddReadResult(net::SYNCHRONOUS, net::ERR_FAILED); 638 socket_->AddReadResult(net::SYNCHRONOUS, net::ERR_FAILED);
636 EXPECT_CALL(*observer_, OnError(_, ChannelError::CAST_SOCKET_ERROR)); 639 EXPECT_CALL(*observer_, OnError(_, ChannelError::CAST_SOCKET_ERROR));
637 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CAST_SOCKET_ERROR)); 640 EXPECT_CALL(handler_, OnConnectComplete(_, ChannelError::CAST_SOCKET_ERROR));
638 EXPECT_CALL(*socket_->GetMockTransport(), Start()); 641 EXPECT_CALL(*socket_->GetMockTransport(), Start());
639 socket_->AddObserver(observer_.get()); 642 socket_->AddObserver(observer_.get());
640 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete, 643 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
641 base::Unretained(&handler_))); 644 base::Unretained(&handler_)));
642 RunPendingTasks(); 645 RunPendingTasks();
643 socket_->GetMockTransport()->current_delegate()->OnError( 646 socket_->GetMockTransport()->current_delegate()->OnError(
644 ChannelError::CAST_SOCKET_ERROR); 647 ChannelError::CAST_SOCKET_ERROR);
645 RunPendingTasks(); 648 RunPendingTasks();
646 649
647 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); 650 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state());
648 EXPECT_EQ(ChannelError::CAST_SOCKET_ERROR, socket_->error_state()); 651 EXPECT_EQ(ChannelError::CAST_SOCKET_ERROR, socket_->error_state());
649 } 652 }
650 653
651 TEST_F(CastSocketTest, TestConnectChallengeVerificationFails) { 654 TEST_F(CastSocketTest, TestConnectChallengeVerificationFails) {
652 CreateCastSocketSecure(); 655 CreateCastSocketSecure();
653 socket_->SetupMockTransport(); 656 socket_->SetupMockTransport();
654 socket_->SetupTcpConnect(net::ASYNC, net::OK); 657 socket_->SetupTcpConnect(net::ASYNC, net::OK);
655 socket_->SetupSslConnect(net::ASYNC, net::OK); 658 socket_->SetupSslConnect(net::ASYNC, net::OK);
656 socket_->SetVerifyChallengeResult(false); 659 socket_->SetVerifyChallengeResult(false);
657 660
658 EXPECT_CALL(*observer_, OnError(_, ChannelError::AUTHENTICATION_ERROR)); 661 EXPECT_CALL(*observer_, OnError(_, ChannelError::AUTHENTICATION_ERROR));
659 CastMessage challenge_proto = CreateAuthChallenge(); 662 CastMessage challenge_proto = CreateAuthChallenge();
660 EXPECT_CALL(*socket_->GetMockTransport(), 663 EXPECT_CALL(*socket_->GetMockTransport(),
661 SendMessage(EqualsProto(challenge_proto), _)) 664 SendMessage(EqualsProto(challenge_proto), _))
662 .WillOnce(PostCompletionCallbackTask<1>(net::OK)); 665 .WillOnce(PostCompletionCallbackTask<1>(net::OK));
663 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::AUTHENTICATION_ERROR)); 666 EXPECT_CALL(handler_,
667 OnConnectComplete(_, ChannelError::AUTHENTICATION_ERROR));
664 EXPECT_CALL(*socket_->GetMockTransport(), Start()); 668 EXPECT_CALL(*socket_->GetMockTransport(), Start());
665 socket_->AddObserver(observer_.get()); 669 socket_->AddObserver(observer_.get());
666 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete, 670 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
667 base::Unretained(&handler_))); 671 base::Unretained(&handler_)));
668 RunPendingTasks(); 672 RunPendingTasks();
669 socket_->GetMockTransport()->current_delegate()->OnMessage(CreateAuthReply()); 673 socket_->GetMockTransport()->current_delegate()->OnMessage(CreateAuthReply());
670 RunPendingTasks(); 674 RunPendingTasks();
671 675
672 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state()); 676 EXPECT_EQ(ReadyState::CLOSED, socket_->ready_state());
673 EXPECT_EQ(ChannelError::AUTHENTICATION_ERROR, socket_->error_state()); 677 EXPECT_EQ(ChannelError::AUTHENTICATION_ERROR, socket_->error_state());
(...skipping 17 matching lines...) Expand all
691 std::string reply_str; 695 std::string reply_str;
692 EXPECT_TRUE(MessageFramer::Serialize(reply, &reply_str)); 696 EXPECT_TRUE(MessageFramer::Serialize(reply, &reply_str));
693 socket_->AddReadResultForData(net::ASYNC, reply_str); 697 socket_->AddReadResultForData(net::ASYNC, reply_str);
694 socket_->AddReadResult(net::ASYNC, net::ERR_IO_PENDING); 698 socket_->AddReadResult(net::ASYNC, net::ERR_IO_PENDING);
695 699
696 CastMessage test_message = CreateTestMessage(); 700 CastMessage test_message = CreateTestMessage();
697 std::string test_message_str; 701 std::string test_message_str;
698 EXPECT_TRUE(MessageFramer::Serialize(test_message, &test_message_str)); 702 EXPECT_TRUE(MessageFramer::Serialize(test_message, &test_message_str));
699 socket_->AddWriteResultForData(net::ASYNC, test_message_str); 703 socket_->AddWriteResultForData(net::ASYNC, test_message_str);
700 704
701 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::NONE)); 705 EXPECT_CALL(handler_, OnConnectComplete(_, ChannelError::NONE));
702 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete, 706 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
703 base::Unretained(&handler_))); 707 base::Unretained(&handler_)));
704 RunPendingTasks(); 708 RunPendingTasks();
705 EXPECT_EQ(ReadyState::OPEN, socket_->ready_state()); 709 EXPECT_EQ(ReadyState::OPEN, socket_->ready_state());
706 EXPECT_EQ(ChannelError::NONE, socket_->error_state()); 710 EXPECT_EQ(ChannelError::NONE, socket_->error_state());
707 711
708 // Send the test message through a real transport object. 712 // Send the test message through a real transport object.
709 EXPECT_CALL(handler_, OnWriteComplete(net::OK)); 713 EXPECT_CALL(handler_, OnWriteComplete(net::OK));
710 socket_->transport()->SendMessage( 714 socket_->transport()->SendMessage(
711 test_message, base::Bind(&CompleteHandler::OnWriteComplete, 715 test_message, base::Bind(&CompleteHandler::OnWriteComplete,
(...skipping 21 matching lines...) Expand all
733 std::string reply_str; 737 std::string reply_str;
734 EXPECT_TRUE(MessageFramer::Serialize(reply, &reply_str)); 738 EXPECT_TRUE(MessageFramer::Serialize(reply, &reply_str));
735 socket_->AddReadResultForData(net::SYNCHRONOUS, reply_str); 739 socket_->AddReadResultForData(net::SYNCHRONOUS, reply_str);
736 socket_->AddReadResult(net::ASYNC, net::ERR_IO_PENDING); 740 socket_->AddReadResult(net::ASYNC, net::ERR_IO_PENDING);
737 741
738 CastMessage test_message = CreateTestMessage(); 742 CastMessage test_message = CreateTestMessage();
739 std::string test_message_str; 743 std::string test_message_str;
740 EXPECT_TRUE(MessageFramer::Serialize(test_message, &test_message_str)); 744 EXPECT_TRUE(MessageFramer::Serialize(test_message, &test_message_str));
741 socket_->AddWriteResultForData(net::SYNCHRONOUS, test_message_str); 745 socket_->AddWriteResultForData(net::SYNCHRONOUS, test_message_str);
742 746
743 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::NONE)); 747 EXPECT_CALL(handler_, OnConnectComplete(_, ChannelError::NONE));
744 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete, 748 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
745 base::Unretained(&handler_))); 749 base::Unretained(&handler_)));
746 RunPendingTasks(); 750 RunPendingTasks();
747 EXPECT_EQ(ReadyState::OPEN, socket_->ready_state()); 751 EXPECT_EQ(ReadyState::OPEN, socket_->ready_state());
748 EXPECT_EQ(ChannelError::NONE, socket_->error_state()); 752 EXPECT_EQ(ChannelError::NONE, socket_->error_state());
749 753
750 // Send the test message through a real transport object. 754 // Send the test message through a real transport object.
751 EXPECT_CALL(handler_, OnWriteComplete(net::OK)); 755 EXPECT_CALL(handler_, OnWriteComplete(net::OK));
752 socket_->transport()->SendMessage( 756 socket_->transport()->SendMessage(
753 test_message, base::Bind(&CompleteHandler::OnWriteComplete, 757 test_message, base::Bind(&CompleteHandler::OnWriteComplete,
(...skipping 14 matching lines...) Expand all
768 socket_->AddObserver(&observer2); 772 socket_->AddObserver(&observer2);
769 socket_->AddObserver(&observer2); 773 socket_->AddObserver(&observer2);
770 774
771 // Test notify observers 775 // Test notify observers
772 EXPECT_CALL(observer1, OnError(_, cast_channel::ChannelError::CONNECT_ERROR)); 776 EXPECT_CALL(observer1, OnError(_, cast_channel::ChannelError::CONNECT_ERROR));
773 EXPECT_CALL(observer2, OnError(_, cast_channel::ChannelError::CONNECT_ERROR)); 777 EXPECT_CALL(observer2, OnError(_, cast_channel::ChannelError::CONNECT_ERROR));
774 CastSocketImpl::CastSocketMessageDelegate delegate(socket_.get()); 778 CastSocketImpl::CastSocketMessageDelegate delegate(socket_.get());
775 delegate.OnError(cast_channel::ChannelError::CONNECT_ERROR); 779 delegate.OnError(cast_channel::ChannelError::CONNECT_ERROR);
776 } 780 }
777 781
782 TEST_F(CastSocketTest, TestOpenChannelConnectingSocket) {
783 CreateCastSocketSecure();
784 socket_->SetupTcpConnectUnresponsive();
785 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
786 base::Unretained(&handler_)));
787 RunPendingTasks();
788
789 EXPECT_CALL(handler_, OnConnectComplete(_, ChannelError::CONNECT_TIMEOUT))
790 .Times(2);
791 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
792 base::Unretained(&handler_)));
793 socket_->TriggerTimeout();
794 RunPendingTasks();
795 }
796
797 TEST_F(CastSocketTest, TestOpenChannelConnectedSocket) {
798 CreateCastSocketSecure();
799 socket_->SetupTcpConnect(net::ASYNC, net::OK);
800 socket_->SetupSslConnect(net::ASYNC, net::OK);
801
802 HandleAuthHandshake();
803
804 EXPECT_CALL(handler_, OnConnectComplete(_, ChannelError::NONE));
805 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
806 base::Unretained(&handler_)));
807 }
808
809 TEST_F(CastSocketTest, TestOpenChannelClosedSocket) {
810 CreateCastSocketSecure();
811 socket_->SetupTcpConnect(net::ASYNC, net::ERR_FAILED);
812
813 EXPECT_CALL(handler_, OnConnectComplete(_, ChannelError::CONNECT_ERROR));
814 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
815 base::Unretained(&handler_)));
816 RunPendingTasks();
817
818 EXPECT_CALL(handler_, OnConnectComplete(_, ChannelError::CONNECT_ERROR));
819 socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
820 base::Unretained(&handler_)));
821 }
822
778 } // namespace cast_channel 823 } // namespace cast_channel
OLDNEW
« no previous file with comments | « components/cast_channel/cast_socket_service_unittest.cc ('k') | components/cast_channel/cast_test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698