| // Copyright 2016 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. |
| |
| #ifndef REMOTING_TEST_IT2ME_STANDALONE_HOST_H_ |
| #define REMOTING_TEST_IT2ME_STANDALONE_HOST_H_ |
| |
| #include <memory> |
| #include <string> |
| |
| #include "base/memory/ref_counted.h" |
| #include "base/run_loop.h" |
| #include "base/test/task_environment.h" |
| #include "base/timer/timer.h" |
| #include "remoting/host/host_mock_objects.h" |
| #include "remoting/host/it2me_desktop_environment.h" |
| #include "remoting/protocol/fake_connection_to_client.h" |
| #include "remoting/test/fake_connection_event_logger.h" |
| #include "testing/gmock/include/gmock/gmock.h" |
| |
| namespace remoting { |
| class ChromotingHostContext; |
| class ClientSession; |
| |
| namespace protocol { |
| class SessionConfig; |
| } // namespace protocol |
| |
| namespace test { |
| |
| // A container for an it2me host by using FakeConnectionEventLogger to do |
| // capturing without needing a client to connect to. |
| class It2MeStandaloneHost { |
| public: |
| It2MeStandaloneHost(); |
| ~It2MeStandaloneHost(); |
| |
| // Block current thread forever. |
| void Run(); |
| |
| void StartOutputTimer(); |
| |
| private: |
| void Connect(); |
| |
| base::test::SingleThreadTaskEnvironment task_environment_; |
| base::RunLoop run_loop_; |
| std::unique_ptr<ChromotingHostContext> context_; |
| scoped_refptr<AutoThreadTaskRunner> main_task_runner_; |
| It2MeDesktopEnvironmentFactory factory_; |
| protocol::FakeConnectionToClient connection_; |
| std::string session_jid_; |
| std::unique_ptr<protocol::SessionConfig> config_; |
| FakeConnectionEventLogger event_logger_; |
| testing::NiceMock<MockClientSessionEventHandler> handler_; |
| std::unique_ptr<ClientSession> session_; |
| base::RepeatingTimer timer_; |
| }; |
| |
| } // namespace test |
| } // namespace remoting |
| |
| #endif // REMOTING_TEST_IT2ME_STANDALONE_HOST_H_ |