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

Side by Side Diff: remoting/test/app_remoting_latency_test_fixture.cc

Issue 1253613002: Updated latency fixture and refactored connection helper (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: "Moved RGBValue out of test video renderer as a standalone struct" Created 5 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "remoting/test/app_remoting_latency_test_fixture.h" 5 #include "remoting/test/app_remoting_latency_test_fixture.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "base/thread_task_runner_handle.h" 9 #include "base/thread_task_runner_handle.h"
10 #include "base/timer/timer.h" 10 #include "base/timer/timer.h"
11 #include "remoting/proto/event.pb.h" 11 #include "remoting/proto/event.pb.h"
12 #include "remoting/protocol/input_stub.h" 12 #include "remoting/protocol/input_stub.h"
13 #include "remoting/protocol/usb_key_codes.h" 13 #include "remoting/protocol/usb_key_codes.h"
14 #include "remoting/test/app_remoting_connection_helper.h" 14 #include "remoting/test/app_remoting_connection_helper.h"
15 #include "remoting/test/app_remoting_test_driver_environment.h" 15 #include "remoting/test/app_remoting_test_driver_environment.h"
16 #include "remoting/test/rgb_value.h"
16 #include "remoting/test/test_chromoting_client.h" 17 #include "remoting/test/test_chromoting_client.h"
17 #include "remoting/test/test_video_renderer.h" 18 #include "remoting/test/test_video_renderer.h"
18 19
19 namespace remoting { 20 namespace remoting {
20 namespace test { 21 namespace test {
21 22
22 AppRemotingLatencyTestFixture::AppRemotingLatencyTestFixture() 23 AppRemotingLatencyTestFixture::AppRemotingLatencyTestFixture()
23 : timer_(new base::Timer(true, false)) { 24 : timer_(new base::Timer(true, false)) {
24 // NOTE: Derived fixture must initialize application details in constructor. 25 // NOTE: Derived fixture must initialize application details in constructor.
25 } 26 }
26 27
27 AppRemotingLatencyTestFixture::~AppRemotingLatencyTestFixture() { 28 AppRemotingLatencyTestFixture::~AppRemotingLatencyTestFixture() {
28 } 29 }
29 30
30 void AppRemotingLatencyTestFixture::SetUp() { 31 void AppRemotingLatencyTestFixture::SetUp() {
31 DCHECK(thread_checker_.CalledOnValidThread()); 32 DCHECK(thread_checker_.CalledOnValidThread());
32 33
33 scoped_ptr<TestVideoRenderer> test_video_renderer(new TestVideoRenderer()); 34 scoped_ptr<TestVideoRenderer> test_video_renderer(new TestVideoRenderer());
34 test_video_renderer_ = test_video_renderer->GetWeakPtr(); 35 test_video_renderer_ = test_video_renderer->GetWeakPtr();
35 36
36 scoped_ptr<TestChromotingClient> test_chromoting_client( 37 scoped_ptr<TestChromotingClient> test_chromoting_client(
37 new TestChromotingClient(test_video_renderer.Pass())); 38 new TestChromotingClient(test_video_renderer.Pass()));
38 39
40 test_chromoting_client->AddRemoteConnectionObserver(this);
41
39 connection_helper_.reset( 42 connection_helper_.reset(
40 new AppRemotingConnectionHelper(GetApplicationDetails())); 43 new AppRemotingConnectionHelper(GetApplicationDetails()));
41 connection_helper_->Initialize(test_chromoting_client.Pass()); 44 connection_helper_->Initialize(test_chromoting_client.Pass());
42 45
43 if (!connection_helper_->StartConnection()) { 46 if (!connection_helper_->StartConnection()) {
44 LOG(ERROR) << "Remote host connection could not be established."; 47 LOG(ERROR) << "Remote host connection could not be established.";
45 FAIL(); 48 FAIL();
46 } 49 }
50
51 if (!PrepareApplicationForTesting()) {
52 LOG(ERROR) << "New document could not be created.";
joedow 2015/07/24 13:50:58 Please fix error message, we don't know if creatin
liaoyuke 2015/07/25 01:43:49 I don't think so, the error message should come fr
53 FAIL();
54 }
47 } 55 }
48 56
49 void AppRemotingLatencyTestFixture::TearDown() { 57 void AppRemotingLatencyTestFixture::TearDown() {
50 // Only reset application state when remote host connection is established. 58 // Only reset application state when remote host connection is established.
51 if (connection_helper_->ConnectionIsReadyForTest()) { 59 if (connection_helper_->ConnectionIsReadyForTest()) {
52 ResetApplicationState(); 60 ResetApplicationState();
53 } 61 }
54 62
63 connection_helper_->GetTestChromotingClient()->RemoveRemoteConnectionObserver(
64 this);
55 connection_helper_.reset(); 65 connection_helper_.reset();
56 } 66 }
57 67
58 WaitForImagePatternMatchCallback 68 WaitForImagePatternMatchCallback
59 AppRemotingLatencyTestFixture::SetExpectedImagePattern( 69 AppRemotingLatencyTestFixture::SetExpectedImagePattern(
60 const webrtc::DesktopRect& expected_rect, 70 const webrtc::DesktopRect& expected_rect,
61 uint32_t expected_color) { 71 const RGBValue& expected_color) {
62 DCHECK(thread_checker_.CalledOnValidThread()); 72 DCHECK(thread_checker_.CalledOnValidThread());
63 73
64 scoped_ptr<base::RunLoop> run_loop(new base::RunLoop()); 74 scoped_ptr<base::RunLoop> run_loop(new base::RunLoop());
65 75
66 base::ThreadTaskRunnerHandle::Get()->PostTask( 76 base::ThreadTaskRunnerHandle::Get()->PostTask(
67 FROM_HERE, base::Bind(&TestVideoRenderer::ExpectAverageColorInRect, 77 FROM_HERE, base::Bind(&TestVideoRenderer::ExpectAverageColorInRect,
68 test_video_renderer_, expected_rect, expected_color, 78 test_video_renderer_, expected_rect, expected_color,
69 run_loop->QuitClosure())); 79 run_loop->QuitClosure()));
70 80
71 return base::Bind(&AppRemotingLatencyTestFixture::WaitForImagePatternMatch, 81 return base::Bind(&AppRemotingLatencyTestFixture::WaitForImagePatternMatch,
(...skipping 12 matching lines...) Expand all
84 run_loop->Run(); 94 run_loop->Run();
85 95
86 // Image pattern is matched if we stopped because of the reply not the timer. 96 // Image pattern is matched if we stopped because of the reply not the timer.
87 bool image_pattern_is_matched = (timer_->IsRunning()); 97 bool image_pattern_is_matched = (timer_->IsRunning());
88 timer_->Stop(); 98 timer_->Stop();
89 run_loop.reset(); 99 run_loop.reset();
90 100
91 return image_pattern_is_matched; 101 return image_pattern_is_matched;
92 } 102 }
93 103
104 void AppRemotingLatencyTestFixture::HostMessageReceived(
105 const protocol::ExtensionMessage& message) {
106 DCHECK(thread_checker_.CalledOnValidThread());
107
108 if (!host_message_received_callback_.is_null()) {
109 host_message_received_callback_.Run(message);
110 }
111 }
112
94 void AppRemotingLatencyTestFixture::PressKey(uint32_t usb_keycode, 113 void AppRemotingLatencyTestFixture::PressKey(uint32_t usb_keycode,
95 bool pressed) { 114 bool pressed) {
96 remoting::protocol::KeyEvent event; 115 remoting::protocol::KeyEvent event;
97 event.set_usb_keycode(usb_keycode); 116 event.set_usb_keycode(usb_keycode);
98 event.set_pressed(pressed); 117 event.set_pressed(pressed);
99 connection_helper_->input_stub()->InjectKeyEvent(event); 118 connection_helper_->input_stub()->InjectKeyEvent(event);
100 } 119 }
101 120
102 void AppRemotingLatencyTestFixture::PressAndReleaseKey(uint32_t usb_keycode) { 121 void AppRemotingLatencyTestFixture::PressAndReleaseKey(uint32_t usb_keycode) {
103 PressKey(usb_keycode, true); 122 PressKey(usb_keycode, true);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 164
146 run_loop_.reset(new base::RunLoop()); 165 run_loop_.reset(new base::RunLoop());
147 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( 166 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
148 FROM_HERE, run_loop_->QuitClosure(), base::TimeDelta::FromSeconds(2)); 167 FROM_HERE, run_loop_->QuitClosure(), base::TimeDelta::FromSeconds(2));
149 run_loop_->Run(); 168 run_loop_->Run();
150 run_loop_.reset(); 169 run_loop_.reset();
151 } 170 }
152 171
153 } // namespace test 172 } // namespace test
154 } // namespace remoting 173 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698