| Index: remoting/test/app_remoting_connected_client_fixture.h
|
| diff --git a/remoting/test/app_remoting_connected_client_fixture.h b/remoting/test/app_remoting_connected_client_fixture.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1d7235d56f2c06ee3f3a68e634b13afc06d84b8e
|
| --- /dev/null
|
| +++ b/remoting/test/app_remoting_connected_client_fixture.h
|
| @@ -0,0 +1,105 @@
|
| +// Copyright 2015 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_APP_REMOTING_CONNECTED_CLIENT_FIXTURE_H_
|
| +#define REMOTING_TEST_APP_REMOTING_CONNECTED_CLIENT_FIXTURE_H_
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/callback_forward.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| +#include "base/threading/thread_checker.h"
|
| +#include "remoting/test/remote_connection_observer.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace base {
|
| +class MessageLoopForIO;
|
| +class RunLoop;
|
| +class Timer;
|
| +}
|
| +
|
| +namespace remoting {
|
| +namespace test {
|
| +
|
| +struct RemoteApplicationDetails;
|
| +class TestChromotingClient;
|
| +
|
| +// Allows for custom handling of ExtensionMessage messages.
|
| +typedef base::Callback<void(const protocol::ExtensionMessage& message)>
|
| + HostMessageReceivedCallback;
|
| +
|
| +// Creates a connection to a remote host which is available for tests to use.
|
| +// All callbacks must occur on the same thread the object was created on.
|
| +class AppRemotingConnectedClientFixture
|
| + : public testing::TestWithParam<const char*>,
|
| + public RemoteConnectionObserver {
|
| + public:
|
| + AppRemotingConnectedClientFixture();
|
| + ~AppRemotingConnectedClientFixture() override;
|
| +
|
| + protected:
|
| + // Sends the request to the host and waits for a reply up to |max_wait_time|.
|
| + // Returns true if we received a response within the maximum time limit.
|
| + bool VerifyResponseForSimpleHostMessage(
|
| + const std::string& message_request_title,
|
| + const std::string& message_response_title,
|
| + const std::string& message_payload,
|
| + const base::TimeDelta& max_wait_time);
|
| +
|
| + private:
|
| + // testing::Test interface.
|
| + void SetUp() override;
|
| + void TearDown() override;
|
| +
|
| + // RemoteConnectionObserver interface.
|
| + void ConnectionStateChanged(protocol::ConnectionToHost::State state,
|
| + protocol::ErrorCode error_code) override;
|
| + void ConnectionReady(bool ready) override;
|
| + void HostMessageReceived(const protocol::ExtensionMessage& message) override;
|
| +
|
| + // Starts a connection with the remote host.
|
| + void StartConnection();
|
| +
|
| + // Sends client details to the host in order to complete the connection.
|
| + void SendClientConnectionDetailsToHost();
|
| +
|
| + // Handles onWindowAdded messages from the host.
|
| + void HandleOnWindowAddedMessage(
|
| + const remoting::protocol::ExtensionMessage& message);
|
| +
|
| + // Contains the details for the application being tested.
|
| + const RemoteApplicationDetails& application_details_;
|
| +
|
| + // Called when an ExtensionMessage is received from the host. Used to
|
| + // override default message handling.
|
| + HostMessageReceivedCallback host_message_received_callback_;
|
| +
|
| + // Indicates whether the remote connection is ready to be used for testing.
|
| + // True when a chromoting connection to the remote host has been established
|
| + // and the main application window is visible.
|
| + bool connection_is_ready_for_tests_;
|
| +
|
| + // Used to post tasks by |client_| and tests.
|
| + scoped_ptr<base::MessageLoopForIO> message_loop_;
|
| +
|
| + // Used to run the thread's message loop.
|
| + scoped_ptr<base::RunLoop> run_loop_;
|
| +
|
| + // Used for setting timeouts and delays.
|
| + scoped_ptr<base::Timer> timer_;
|
| +
|
| + // Used to ensure RemoteConnectionObserver methods are called on the same
|
| + // thread.
|
| + base::ThreadChecker thread_checker_;
|
| +
|
| + // Creates and manages the connection to the remote host.
|
| + scoped_ptr<TestChromotingClient> client_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(AppRemotingConnectedClientFixture);
|
| +};
|
| +
|
| +} // namespace test
|
| +} // namespace remoting
|
| +
|
| +#endif // REMOTING_TEST_APP_REMOTING_CONNECTED_CLIENT_FIXTURE_H_
|
|
|