Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(191)

Unified Diff: remoting/test/app_remoting_latency_test_fixture.h

Issue 1253613002: Updated latency fixture and refactored connection helper (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: "Updated naming for accessor of test_chromoting_client_" Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..d730a1eace999f730f2a498e788d0cbc27fa50fa 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>
Sergey Ulanov 2015/07/27 18:40:24 nit: std::string is not used anywhere in this file
liaoyuke 2015/07/27 19:02:57 Done.
#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,24 @@ 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(
Sergey Ulanov 2015/07/27 18:40:24 Please either rename this to set_host_message_rece
liaoyuke 2015/07/27 19:02:57 Done.
+ HostMessageReceivedCallback host_message_received_callback) {
Sergey Ulanov 2015/07/27 18:40:24 nit: pass callback parameters as const ref
liaoyuke 2015/07/27 19:02:57 Done.
+ host_message_received_callback_ = host_message_received_callback;
+ }
+
+ // Reset |host_message_received_callback_| to null.
+ void ResetHostMessageReceivedCallback();
// Get the details of the application to be run.
virtual const RemoteApplicationDetails& GetApplicationDetails() = 0;
+ // Used to ensure the application under test is ready for testing.
+ virtual bool PrepareApplicationForTesting() = 0;
Sergey Ulanov 2015/07/27 18:40:24 It's better to make this method and GetApplication
liaoyuke 2015/07/27 19:02:57 Yes, I think they are already protected.
Sergey Ulanov 2015/07/27 20:08:05 Sorry I missed that
+
+ // 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 +94,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 +118,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.
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);
};

Powered by Google App Engine
This is Rietveld 408576698