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

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

Issue 2891923004: [cast_channel] Make cast_channel related files not depend on "cast_channel.h" (Closed)
Patch Set: fix windows compile errors Created 3 years, 6 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>
(...skipping 24 matching lines...) Expand all
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
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
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
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::CAST_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::CAST_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
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::CAST_SOCKET_ERROR));
670 EXPECT_CALL(handler_, OnConnectComplete(CHANNEL_ERROR_SOCKET_ERROR)); 666 EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CAST_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::CAST_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::CAST_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
OLDNEW
« no previous file with comments | « extensions/browser/api/cast_channel/cast_socket.cc ('k') | extensions/browser/api/cast_channel/cast_transport.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698