| Index: components/cast_channel/cast_socket_unittest.cc
|
| diff --git a/components/cast_channel/cast_socket_unittest.cc b/components/cast_channel/cast_socket_unittest.cc
|
| index c054878855b6cee52f5c0cf7776741447ba89420..bb44f1dc06695b5a7d3f7daf70377b2ff5f9b23e 100644
|
| --- a/components/cast_channel/cast_socket_unittest.cc
|
| +++ b/components/cast_channel/cast_socket_unittest.cc
|
| @@ -331,10 +331,11 @@ class TestCastSocket : public CastSocketImpl {
|
|
|
| class CastSocketTest : public testing::Test {
|
| public:
|
| - CastSocketTest() : logger_(new Logger()), delegate_(new MockDelegate) {}
|
| + CastSocketTest()
|
| + : logger_(new Logger()), observer_(new MockCastSocketObserver()) {}
|
| ~CastSocketTest() override {}
|
|
|
| - void SetUp() override { EXPECT_CALL(*delegate_, OnMessage(_)).Times(0); }
|
| + void SetUp() override { EXPECT_CALL(*observer_, OnMessage(_, _)).Times(0); }
|
|
|
| void TearDown() override {
|
| if (socket_.get()) {
|
| @@ -356,8 +357,7 @@ class CastSocketTest : public testing::Test {
|
| .WillOnce(PostCompletionCallbackTask<1>(net::OK));
|
| EXPECT_CALL(*socket_->GetMockTransport(), Start());
|
| EXPECT_CALL(handler_, OnConnectComplete(ChannelError::NONE));
|
| - socket_->Connect(std::move(delegate_),
|
| - base::Bind(&CompleteHandler::OnConnectComplete,
|
| + socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
|
| base::Unretained(&handler_)));
|
| RunPendingTasks();
|
| socket_->GetMockTransport()->current_delegate()->OnMessage(
|
| @@ -376,7 +376,7 @@ class CastSocketTest : public testing::Test {
|
| Logger* logger_;
|
| std::unique_ptr<TestCastSocket> socket_;
|
| CompleteHandler handler_;
|
| - std::unique_ptr<MockDelegate> delegate_;
|
| + std::unique_ptr<MockCastSocketObserver> observer_;
|
|
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(CastSocketTest);
|
| @@ -433,8 +433,7 @@ TEST_F(CastSocketTest, TestConnectAuthMessageCorrupted) {
|
| .WillOnce(PostCompletionCallbackTask<1>(net::OK));
|
| EXPECT_CALL(*socket_->GetMockTransport(), Start());
|
| EXPECT_CALL(handler_, OnConnectComplete(ChannelError::TRANSPORT_ERROR));
|
| - socket_->Connect(std::move(delegate_),
|
| - base::Bind(&CompleteHandler::OnConnectComplete,
|
| + socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
|
| base::Unretained(&handler_)));
|
| RunPendingTasks();
|
| CastMessage mangled_auth_reply = CreateAuthReply();
|
| @@ -459,8 +458,7 @@ TEST_F(CastSocketTest, TestConnectTcpConnectErrorAsync) {
|
| socket_->SetupTcpConnect(net::ASYNC, net::ERR_FAILED);
|
|
|
| EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CONNECT_ERROR));
|
| - socket_->Connect(std::move(delegate_),
|
| - base::Bind(&CompleteHandler::OnConnectComplete,
|
| + socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
|
| base::Unretained(&handler_)));
|
| RunPendingTasks();
|
|
|
| @@ -475,8 +473,7 @@ TEST_F(CastSocketTest, TestConnectTcpConnectErrorSync) {
|
| socket_->SetupTcpConnect(net::SYNCHRONOUS, net::ERR_FAILED);
|
|
|
| EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CONNECT_ERROR));
|
| - socket_->Connect(std::move(delegate_),
|
| - base::Bind(&CompleteHandler::OnConnectComplete,
|
| + socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
|
| base::Unretained(&handler_)));
|
| RunPendingTasks();
|
|
|
| @@ -489,9 +486,9 @@ TEST_F(CastSocketTest, TestConnectTcpTimeoutError) {
|
| CreateCastSocketSecure();
|
| socket_->SetupTcpConnectUnresponsive();
|
| EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CONNECT_TIMEOUT));
|
| - EXPECT_CALL(*delegate_, OnError(ChannelError::CONNECT_TIMEOUT));
|
| - socket_->Connect(std::move(delegate_),
|
| - base::Bind(&CompleteHandler::OnConnectComplete,
|
| + EXPECT_CALL(*observer_, OnError(_, ChannelError::CONNECT_TIMEOUT));
|
| + socket_->AddObserver("id", std::move(observer_));
|
| + socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
|
| base::Unretained(&handler_)));
|
| RunPendingTasks();
|
|
|
| @@ -509,9 +506,9 @@ TEST_F(CastSocketTest, TestConnectTcpSocketTimeoutError) {
|
| CreateCastSocketSecure();
|
| socket_->SetupTcpConnect(net::SYNCHRONOUS, net::ERR_CONNECTION_TIMED_OUT);
|
| EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CONNECT_TIMEOUT));
|
| - EXPECT_CALL(*delegate_, OnError(ChannelError::CONNECT_TIMEOUT));
|
| - socket_->Connect(std::move(delegate_),
|
| - base::Bind(&CompleteHandler::OnConnectComplete,
|
| + EXPECT_CALL(*observer_, OnError(_, ChannelError::CONNECT_TIMEOUT));
|
| + socket_->AddObserver("id", std::move(observer_));
|
| + socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
|
| base::Unretained(&handler_)));
|
| RunPendingTasks();
|
|
|
| @@ -529,8 +526,7 @@ TEST_F(CastSocketTest, TestConnectSslConnectErrorAsync) {
|
| socket_->SetupSslConnect(net::SYNCHRONOUS, net::ERR_FAILED);
|
|
|
| EXPECT_CALL(handler_, OnConnectComplete(ChannelError::AUTHENTICATION_ERROR));
|
| - socket_->Connect(std::move(delegate_),
|
| - base::Bind(&CompleteHandler::OnConnectComplete,
|
| + socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
|
| base::Unretained(&handler_)));
|
| RunPendingTasks();
|
|
|
| @@ -546,8 +542,7 @@ TEST_F(CastSocketTest, TestConnectSslConnectErrorSync) {
|
| socket_->SetupSslConnect(net::SYNCHRONOUS, net::ERR_FAILED);
|
|
|
| EXPECT_CALL(handler_, OnConnectComplete(ChannelError::AUTHENTICATION_ERROR));
|
| - socket_->Connect(std::move(delegate_),
|
| - base::Bind(&CompleteHandler::OnConnectComplete,
|
| + socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
|
| base::Unretained(&handler_)));
|
| RunPendingTasks();
|
|
|
| @@ -565,8 +560,7 @@ TEST_F(CastSocketTest, TestConnectSslConnectTimeoutSync) {
|
| socket_->SetupSslConnect(net::SYNCHRONOUS, net::ERR_CONNECTION_TIMED_OUT);
|
|
|
| EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CONNECT_TIMEOUT));
|
| - socket_->Connect(std::move(delegate_),
|
| - base::Bind(&CompleteHandler::OnConnectComplete,
|
| + socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
|
| base::Unretained(&handler_)));
|
| RunPendingTasks();
|
|
|
| @@ -584,8 +578,7 @@ TEST_F(CastSocketTest, TestConnectSslConnectTimeoutAsync) {
|
| socket_->SetupSslConnect(net::ASYNC, net::ERR_CONNECTION_TIMED_OUT);
|
|
|
| EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CONNECT_TIMEOUT));
|
| - socket_->Connect(std::move(delegate_),
|
| - base::Bind(&CompleteHandler::OnConnectComplete,
|
| + socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
|
| base::Unretained(&handler_)));
|
| RunPendingTasks();
|
|
|
| @@ -605,8 +598,7 @@ TEST_F(CastSocketTest, TestConnectChallengeSendError) {
|
| .WillOnce(PostCompletionCallbackTask<1>(net::ERR_CONNECTION_RESET));
|
|
|
| EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CAST_SOCKET_ERROR));
|
| - socket_->Connect(std::move(delegate_),
|
| - base::Bind(&CompleteHandler::OnConnectComplete,
|
| + socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
|
| base::Unretained(&handler_)));
|
| RunPendingTasks();
|
|
|
| @@ -624,8 +616,7 @@ TEST_F(CastSocketTest, TestConnectDestroyedAfterChallengeSent) {
|
| EXPECT_CALL(*socket_->GetMockTransport(),
|
| SendMessage(EqualsProto(CreateAuthChallenge()), _))
|
| .WillOnce(PostCompletionCallbackTask<1>(net::ERR_CONNECTION_RESET));
|
| - socket_->Connect(std::move(delegate_),
|
| - base::Bind(&CompleteHandler::OnConnectComplete,
|
| + socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
|
| base::Unretained(&handler_)));
|
| socket_.reset();
|
| RunPendingTasks();
|
| @@ -642,11 +633,11 @@ TEST_F(CastSocketTest, TestConnectChallengeReplyReceiveError) {
|
| SendMessage(EqualsProto(CreateAuthChallenge()), _))
|
| .WillOnce(PostCompletionCallbackTask<1>(net::OK));
|
| socket_->AddReadResult(net::SYNCHRONOUS, net::ERR_FAILED);
|
| - EXPECT_CALL(*delegate_, OnError(ChannelError::CAST_SOCKET_ERROR));
|
| + EXPECT_CALL(*observer_, OnError(_, ChannelError::CAST_SOCKET_ERROR));
|
| EXPECT_CALL(handler_, OnConnectComplete(ChannelError::CAST_SOCKET_ERROR));
|
| EXPECT_CALL(*socket_->GetMockTransport(), Start());
|
| - socket_->Connect(std::move(delegate_),
|
| - base::Bind(&CompleteHandler::OnConnectComplete,
|
| + socket_->AddObserver("id", std::move(observer_));
|
| + socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
|
| base::Unretained(&handler_)));
|
| RunPendingTasks();
|
| socket_->GetMockTransport()->current_delegate()->OnError(
|
| @@ -664,15 +655,15 @@ TEST_F(CastSocketTest, TestConnectChallengeVerificationFails) {
|
| socket_->SetupSslConnect(net::ASYNC, net::OK);
|
| socket_->SetVerifyChallengeResult(false);
|
|
|
| - EXPECT_CALL(*delegate_, OnError(ChannelError::AUTHENTICATION_ERROR));
|
| + EXPECT_CALL(*observer_, OnError(_, ChannelError::AUTHENTICATION_ERROR));
|
| CastMessage challenge_proto = CreateAuthChallenge();
|
| EXPECT_CALL(*socket_->GetMockTransport(),
|
| SendMessage(EqualsProto(challenge_proto), _))
|
| .WillOnce(PostCompletionCallbackTask<1>(net::OK));
|
| EXPECT_CALL(handler_, OnConnectComplete(ChannelError::AUTHENTICATION_ERROR));
|
| EXPECT_CALL(*socket_->GetMockTransport(), Start());
|
| - socket_->Connect(std::move(delegate_),
|
| - base::Bind(&CompleteHandler::OnConnectComplete,
|
| + socket_->AddObserver("id", std::move(observer_));
|
| + socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
|
| base::Unretained(&handler_)));
|
| RunPendingTasks();
|
| socket_->GetMockTransport()->current_delegate()->OnMessage(CreateAuthReply());
|
| @@ -708,8 +699,7 @@ TEST_F(CastSocketTest, TestConnectEndToEndWithRealTransportAsync) {
|
| socket_->AddWriteResultForData(net::ASYNC, test_message_str);
|
|
|
| EXPECT_CALL(handler_, OnConnectComplete(ChannelError::NONE));
|
| - socket_->Connect(std::move(delegate_),
|
| - base::Bind(&CompleteHandler::OnConnectComplete,
|
| + socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
|
| base::Unretained(&handler_)));
|
| RunPendingTasks();
|
| EXPECT_EQ(ReadyState::OPEN, socket_->ready_state());
|
| @@ -751,8 +741,7 @@ TEST_F(CastSocketTest, TestConnectEndToEndWithRealTransportSync) {
|
| socket_->AddWriteResultForData(net::SYNCHRONOUS, test_message_str);
|
|
|
| EXPECT_CALL(handler_, OnConnectComplete(ChannelError::NONE));
|
| - socket_->Connect(std::move(delegate_),
|
| - base::Bind(&CompleteHandler::OnConnectComplete,
|
| + socket_->Connect(base::Bind(&CompleteHandler::OnConnectComplete,
|
| base::Unretained(&handler_)));
|
| RunPendingTasks();
|
| EXPECT_EQ(ReadyState::OPEN, socket_->ready_state());
|
| @@ -769,4 +758,28 @@ TEST_F(CastSocketTest, TestConnectEndToEndWithRealTransportSync) {
|
| EXPECT_EQ(ChannelError::NONE, socket_->error_state());
|
| }
|
|
|
| +TEST_F(CastSocketTest, TestObservers) {
|
| + CreateCastSocketSecure();
|
| + std::string id1 = "id1";
|
| + std::string id2 = "id2";
|
| + EXPECT_FALSE(socket_->HasObserver(id1));
|
| + EXPECT_FALSE(socket_->HasObserver(id2));
|
| +
|
| + // Test AddObserever
|
| + MockCastSocketObserver* observer1 = new MockCastSocketObserver();
|
| + MockCastSocketObserver* observer2 = new MockCastSocketObserver();
|
| + socket_->AddObserver(id1, base::WrapUnique(observer1));
|
| + EXPECT_TRUE(socket_->HasObserver(id1));
|
| + socket_->AddObserver(id2, base::WrapUnique(observer2));
|
| + EXPECT_TRUE(socket_->HasObserver(id2));
|
| +
|
| + // Test notify observers
|
| + EXPECT_CALL(*observer1,
|
| + OnError(_, cast_channel::ChannelError::CONNECT_ERROR));
|
| + EXPECT_CALL(*observer2,
|
| + OnError(_, cast_channel::ChannelError::CONNECT_ERROR));
|
| + CastSocketImpl::CastSocketMessageDelegate delegate(socket_.get());
|
| + delegate.OnError(cast_channel::ChannelError::CONNECT_ERROR);
|
| +}
|
| +
|
| } // namespace cast_channel
|
|
|