 Chromium Code Reviews
 Chromium Code Reviews Issue 1253613002:
  Updated latency fixture and refactored connection helper  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master
    
  
    Issue 1253613002:
  Updated latency fixture and refactored connection helper  (Closed) 
  Base URL: https://chromium.googlesource.com/chromium/src.git@master| 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..dd01bfa79cebcdd6f7254d6f26fca28199cc30d0 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" | 
| @@ -28,9 +30,14 @@ namespace remoting { | 
| namespace test { | 
| struct RemoteApplicationDetails; | 
| +struct RGBValue; | 
| class AppRemotingConnectionHelper; | 
| class TestVideoRenderer; | 
| +// 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. | 
| typedef base::Callback<bool(const base::TimeDelta& 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; | 
| @@ -52,7 +60,7 @@ class AppRemotingLatencyTestFixture : public testing::Test { | 
| // expected image pattern to be matched. | 
| WaitForImagePatternMatchCallback SetExpectedImagePattern( | 
| const webrtc::DesktopRect& expected_rect, | 
| - uint32_t expected_avg_color); | 
| + const RGBValue& expected_avg_color); | 
| // Inject press & release key event. | 
| void PressAndReleaseKey(uint32_t usb_keycode); | 
| @@ -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(); | 
| + } | 
| 
joedow
2015/07/24 13:50:58
This should be defined in the cc file.  Trivial se
 
liaoyuke
2015/07/25 01:43:49
Done.
 | 
| // Get the details of the application to be run. | 
| virtual const RemoteApplicationDetails& GetApplicationDetails() = 0; | 
| + // Create a fresh document for test. | 
| + virtual bool PrepareApplicationForTesting() = 0; | 
| + | 
| + // 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); | 
| @@ -94,10 +119,14 @@ class AppRemotingLatencyTestFixture : public testing::Test { | 
| // thread. | 
| base::ThreadChecker thread_checker_; | 
| - // Using WeakPtr to keep a reference to TestVideoRenderer while let the | 
| - // TestChromotingClient own its lifetime. | 
| + // Used to maintain a reference to the TestVideoRenderer instance while it | 
| + // exists | 
| 
joedow
2015/07/24 13:50:58
nit: add period to the end of the comment.
 
liaoyuke
2015/07/25 01:43:49
Done.
 | 
| base::WeakPtr<TestVideoRenderer> test_video_renderer_; | 
| + // 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); | 
| }; |