Index: remoting/host/chromoting_host_unittest.cc |
diff --git a/remoting/host/chromoting_host_unittest.cc b/remoting/host/chromoting_host_unittest.cc |
deleted file mode 100644 |
index 2a90307ca747e8403ffafbccc99a5e5c19d03a9d..0000000000000000000000000000000000000000 |
--- a/remoting/host/chromoting_host_unittest.cc |
+++ /dev/null |
@@ -1,172 +0,0 @@ |
-// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "base/task.h" |
-#include "remoting/host/capturer_fake.h" |
-#include "remoting/host/chromoting_host.h" |
-#include "remoting/host/chromoting_host_context.h" |
-#include "remoting/host/in_memory_host_config.h" |
-#include "remoting/proto/video.pb.h" |
-#include "remoting/protocol/mock_objects.h" |
-#include "remoting/protocol/session_config.h" |
-#include "testing/gmock/include/gmock/gmock.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-using testing::_; |
-using testing::AnyNumber; |
-using testing::DeleteArg; |
-using testing::DoAll; |
-using testing::InSequence; |
-using testing::InvokeWithoutArgs; |
-using testing::Return; |
- |
-namespace remoting { |
- |
-namespace { |
- |
-void PostQuitTask(MessageLoop* message_loop) { |
- message_loop->PostTask(FROM_HERE, new MessageLoop::QuitTask()); |
-} |
- |
-// Run the task and delete it afterwards. This action is used to deal with |
-// done callbacks. |
-ACTION(RunDoneTask) { |
- arg1->Run(); |
- delete arg1; |
-} |
- |
-ACTION_P(QuitMainMessageLoop, message_loop) { |
- PostQuitTask(message_loop); |
-} |
- |
-} // namepace |
- |
-class ChromotingHostTest : public testing::Test { |
- public: |
- ChromotingHostTest() { |
- } |
- |
- virtual void SetUp() { |
- config_ = new InMemoryHostConfig(); |
- context_.Start(); |
- Capturer* capturer = new CapturerFake(context_.main_message_loop()); |
- input_stub_ = new protocol::MockInputStub(); |
- host_ = ChromotingHost::Create(&context_, config_, capturer, input_stub_); |
- connection_ = new protocol::MockConnectionToClient(); |
- session_ = new protocol::MockSession(); |
- session_config_.reset(protocol::SessionConfig::CreateDefault()); |
- |
- ON_CALL(*connection_.get(), video_stub()) |
- .WillByDefault(Return(&video_stub_)); |
- ON_CALL(*connection_.get(), session()) |
- .WillByDefault(Return(session_)); |
- ON_CALL(*session_.get(), config()) |
- .WillByDefault(Return(session_config_.get())); |
- } |
- |
- virtual void TearDown() { |
- context_.Stop(); |
- } |
- |
- // Helper metjod to pretend a client is connected to ChromotingHost. |
- void InjectClientConnection() { |
- context_.network_message_loop()->PostTask( |
- FROM_HERE, |
- NewRunnableMethod(host_.get(), |
- &ChromotingHost::OnConnectionOpened, |
- connection_)); |
- } |
- |
- // Helper method to remove a client connection from ChromotongHost. |
- void RemoveClientConnection() { |
- context_.network_message_loop()->PostTask( |
- FROM_HERE, |
- NewRunnableMethod(host_.get(), |
- &ChromotingHost::OnConnectionClosed, |
- connection_)); |
- } |
- |
- protected: |
- MessageLoop message_loop_; |
- scoped_refptr<ChromotingHost> host_; |
- scoped_refptr<InMemoryHostConfig> config_; |
- ChromotingHostContext context_; |
- scoped_refptr<protocol::MockConnectionToClient> connection_; |
- scoped_refptr<protocol::MockSession> session_; |
- scoped_ptr<protocol::SessionConfig> session_config_; |
- protocol::MockVideoStub video_stub_; |
- protocol::MockInputStub* input_stub_; |
-}; |
- |
-TEST_F(ChromotingHostTest, StartAndShutdown) { |
- host_->Start(NewRunnableFunction(&PostQuitTask, &message_loop_)); |
- |
- message_loop_.PostTask(FROM_HERE, |
- NewRunnableMethod(host_.get(), |
- &ChromotingHost::Shutdown)); |
- message_loop_.Run(); |
-} |
- |
-TEST_F(ChromotingHostTest, Connect) { |
- host_->Start(NewRunnableFunction(&PostQuitTask, &message_loop_)); |
- |
- ON_CALL(video_stub_, ProcessVideoPacket(_, _)) |
- .WillByDefault( |
- DoAll(DeleteArg<0>(), DeleteArg<1>())); |
- |
- // When the video packet is received we first shutdown ChromotingHost |
- // then execute the done task. |
- InSequence s; |
- EXPECT_CALL(video_stub_, ProcessVideoPacket(_, _)) |
- .WillOnce(DoAll( |
- InvokeWithoutArgs(host_.get(), &ChromotingHost::Shutdown), |
- RunDoneTask())) |
- .RetiresOnSaturation(); |
- EXPECT_CALL(video_stub_, ProcessVideoPacket(_, _)) |
- .Times(AnyNumber()); |
- |
- InjectClientConnection(); |
- message_loop_.Run(); |
-} |
- |
-TEST_F(ChromotingHostTest, Reconnect) { |
- host_->Start(NewRunnableFunction(&PostQuitTask, &message_loop_)); |
- |
- ON_CALL(video_stub_, ProcessVideoPacket(_, _)) |
- .WillByDefault( |
- DoAll(DeleteArg<0>(), DeleteArg<1>())); |
- |
- // When the video packet is received we first disconnect the mock |
- // connection. |
- InSequence s; |
- EXPECT_CALL(video_stub_, ProcessVideoPacket(_, _)) |
- .WillOnce(DoAll( |
- InvokeWithoutArgs(this, &ChromotingHostTest::RemoveClientConnection), |
- RunDoneTask())) |
- .RetiresOnSaturation(); |
- EXPECT_CALL(video_stub_, ProcessVideoPacket(_, _)) |
- .Times(AnyNumber()); |
- |
- // If Disconnect() is called we can break the main message loop. |
- EXPECT_CALL(*connection_.get(), Disconnect()) |
- .WillOnce(QuitMainMessageLoop(&message_loop_)) |
- .RetiresOnSaturation(); |
- |
- InjectClientConnection(); |
- message_loop_.Run(); |
- |
- // Connect the client again. |
- EXPECT_CALL(video_stub_, ProcessVideoPacket(_, _)) |
- .WillOnce(DoAll( |
- InvokeWithoutArgs(host_.get(), &ChromotingHost::Shutdown), |
- RunDoneTask())) |
- .RetiresOnSaturation(); |
- EXPECT_CALL(video_stub_, ProcessVideoPacket(_, _)) |
- .Times(AnyNumber()); |
- |
- InjectClientConnection(); |
- message_loop_.Run(); |
-} |
- |
-} // namespace remoting |