Index: remoting/test/app_remoting_latency_test_fixture.h |
diff --git a/remoting/test/app_remoting_latency_test_fixture.h b/remoting/test/app_remoting_latency_test_fixture.h |
index b23465ebc516ed27a1c7f13f5dcaabdd1c417dd8..4ea52ccb4ffa272d3a360c534e25b7c3940b49e2 100644 |
--- a/remoting/test/app_remoting_latency_test_fixture.h |
+++ b/remoting/test/app_remoting_latency_test_fixture.h |
@@ -5,8 +5,10 @@ |
#ifndef REMOTING_TEST_APP_REMOTING_LATENCY_TEST_FIXTURE_H_ |
#define REMOTING_TEST_APP_REMOTING_LATENCY_TEST_FIXTURE_H_ |
+#include <string> |
#include <vector> |
+#include "base/callback.h" |
#include "base/memory/scoped_ptr.h" |
#include "base/memory/weak_ptr.h" |
#include "base/threading/thread_checker.h" |
@@ -30,6 +32,11 @@ namespace test { |
struct RemoteApplicationDetails; |
class AppRemotingConnectionHelper; |
class TestVideoRenderer; |
+class TestChromotingClient; |
+ |
+// Allows for custom handling of ExtensionMessage messages. |
+typedef base::Callback<void(const protocol::ExtensionMessage& message)> |
+ HostMessageReceivedCallback; |
// Called to wait for expected image pattern to be matched within up to a max |
// wait time. |
@@ -41,7 +48,8 @@ typedef base::Callback<bool(const base::TimeDelta& max_wait_time)> |
// rendering latency between client and the remote host. |
// NOTE: This is an abstract class. To use it, please derive from this class |
// and implement GetApplicationDetails to specify the application details. |
-class AppRemotingLatencyTestFixture : public testing::Test { |
+class AppRemotingLatencyTestFixture : public testing::Test, |
+ public RemoteConnectionObserver { |
public: |
AppRemotingLatencyTestFixture(); |
~AppRemotingLatencyTestFixture() override; |
@@ -60,12 +68,25 @@ class AppRemotingLatencyTestFixture : public testing::Test { |
// Inject press & release a combination of key events. |
void PressAndReleaseKeyCombination(const std::vector<uint32_t>& usb_keycodes); |
- // Clean up the running application to initial state. |
- virtual void ResetApplicationState(); |
+ // Setter for |host_message_received_callback_|. |
+ void SetHostMessageReceivedCallback( |
+ HostMessageReceivedCallback host_message_received_callback) { |
+ host_message_received_callback_ = host_message_received_callback; |
+ } |
+ |
+ void ResetHostMessageReceivedCallback() { |
+ host_message_received_callback_.Reset(); |
+ } |
// Get the details of the application to be run. |
virtual const RemoteApplicationDetails& GetApplicationDetails() = 0; |
+ // Create a fresh document for test. |
+ virtual bool CreateNewDocument() = 0; |
joedow
2015/07/23 20:26:56
I probably wouldn't name this 'CreateNewDocument'
liaoyuke
2015/07/24 02:07:28
Done.
|
+ |
+ // Clean up the running application to initial state. |
+ virtual void ResetApplicationState(); |
+ |
// Creates and manages the connection to the remote host. |
scoped_ptr<AppRemotingConnectionHelper> connection_helper_; |
@@ -74,6 +95,10 @@ class AppRemotingLatencyTestFixture : public testing::Test { |
void SetUp() override; |
void TearDown() override; |
+ private: |
+ // RemoteConnectionObserver interface. |
+ void HostMessageReceived(const protocol::ExtensionMessage& message) override; |
+ |
// Inject press key event. |
void PressKey(uint32_t usb_keycode, bool pressed); |
@@ -95,9 +120,17 @@ class AppRemotingLatencyTestFixture : public testing::Test { |
base::ThreadChecker thread_checker_; |
// Using WeakPtr to keep a reference to TestVideoRenderer while let the |
- // TestChromotingClient own its lifetime. |
+ // AppRemotingConnectionHelper own its lifetime. |
joedow
2015/07/23 20:26:56
nit: reword this: "Used to maintain a reference to
liaoyuke
2015/07/24 02:07:28
Done.
|
base::WeakPtr<TestVideoRenderer> test_video_renderer_; |
+ // Using WeakPtr to keep a reference to TestChromotingClient while let the |
+ // AppRemotingConnectionHelper own its lifetime. |
joedow
2015/07/23 20:26:56
nit: reword this: "Used to maintain a reference to
liaoyuke
2015/07/24 02:07:28
Acknowledged.
|
+ base::WeakPtr<TestChromotingClient> test_chromoting_client_; |
+ |
+ // Called when an ExtensionMessage is received from the host. Used to |
+ // override default message handling. |
+ HostMessageReceivedCallback host_message_received_callback_; |
+ |
DISALLOW_COPY_AND_ASSIGN(AppRemotingLatencyTestFixture); |
}; |