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

Side by Side Diff: remoting/host/touch_injector_win_unittest.cc

Issue 1864213002: Convert //remoting to use std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Mac IWYU Created 4 years, 8 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
« no previous file with comments | « remoting/host/touch_injector_win.cc ('k') | remoting/host/usage_stats_consent_mac.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/host/touch_injector_win.h" 5 #include "remoting/host/touch_injector_win.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 MOCK_METHOD2(InitializeTouchInjection, BOOL(UINT32 max_count, DWORD dw_mode)); 81 MOCK_METHOD2(InitializeTouchInjection, BOOL(UINT32 max_count, DWORD dw_mode));
82 MOCK_METHOD2(InjectTouchInput, 82 MOCK_METHOD2(InjectTouchInput,
83 DWORD(UINT32 count, const POINTER_TOUCH_INFO* contacts)); 83 DWORD(UINT32 count, const POINTER_TOUCH_INFO* contacts));
84 }; 84 };
85 85
86 } // namespace 86 } // namespace
87 87
88 // A test to make sure that the touch event is converted correctly to 88 // A test to make sure that the touch event is converted correctly to
89 // POINTER_TOUCH_INFO. 89 // POINTER_TOUCH_INFO.
90 TEST(TouchInjectorWinTest, CheckConversionWithPressure) { 90 TEST(TouchInjectorWinTest, CheckConversionWithPressure) {
91 scoped_ptr<TouchInjectorWinDelegateMock> delegate_mock( 91 std::unique_ptr<TouchInjectorWinDelegateMock> delegate_mock(
92 new ::testing::StrictMock<TouchInjectorWinDelegateMock>()); 92 new ::testing::StrictMock<TouchInjectorWinDelegateMock>());
93 93
94 TouchEvent event; 94 TouchEvent event;
95 event.set_event_type(TouchEvent::TOUCH_POINT_START); 95 event.set_event_type(TouchEvent::TOUCH_POINT_START);
96 TouchEventPoint* point = event.add_touch_points(); 96 TouchEventPoint* point = event.add_touch_points();
97 point->set_id(1234u); 97 point->set_id(1234u);
98 point->set_x(321.0f); 98 point->set_x(321.0f);
99 point->set_y(123.0f); 99 point->set_y(123.0f);
100 point->set_radius_x(10.0f); 100 point->set_radius_x(10.0f);
101 point->set_radius_y(20.0f); 101 point->set_radius_y(20.0f);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 point->set_pressure(2.0f); 149 point->set_pressure(2.0f);
150 injector.InjectTouchEvent(event); 150 injector.InjectTouchEvent(event);
151 151
152 point->set_pressure(-3.0f); 152 point->set_pressure(-3.0f);
153 injector.InjectTouchEvent(event); 153 injector.InjectTouchEvent(event);
154 } 154 }
155 155
156 // Some devices don't detect pressure. This test is a conversion check for 156 // Some devices don't detect pressure. This test is a conversion check for
157 // such devices. 157 // such devices.
158 TEST(TouchInjectorWinTest, CheckConversionNoPressure) { 158 TEST(TouchInjectorWinTest, CheckConversionNoPressure) {
159 scoped_ptr<TouchInjectorWinDelegateMock> delegate_mock( 159 std::unique_ptr<TouchInjectorWinDelegateMock> delegate_mock(
160 new ::testing::StrictMock<TouchInjectorWinDelegateMock>()); 160 new ::testing::StrictMock<TouchInjectorWinDelegateMock>());
161 161
162 TouchEvent event; 162 TouchEvent event;
163 event.set_event_type(TouchEvent::TOUCH_POINT_START); 163 event.set_event_type(TouchEvent::TOUCH_POINT_START);
164 TouchEventPoint* point = event.add_touch_points(); 164 TouchEventPoint* point = event.add_touch_points();
165 point->set_id(1234u); 165 point->set_id(1234u);
166 point->set_x(321.0f); 166 point->set_x(321.0f);
167 point->set_y(123.0f); 167 point->set_y(123.0f);
168 point->set_radius_x(10.0f); 168 point->set_radius_x(10.0f);
169 point->set_radius_y(20.0f); 169 point->set_radius_y(20.0f);
(...skipping 24 matching lines...) Expand all
194 .WillOnce(Return(1)); 194 .WillOnce(Return(1));
195 195
196 TouchInjectorWin injector; 196 TouchInjectorWin injector;
197 injector.SetInjectorDelegateForTest(std::move(delegate_mock)); 197 injector.SetInjectorDelegateForTest(std::move(delegate_mock));
198 EXPECT_TRUE(injector.Init()); 198 EXPECT_TRUE(injector.Init());
199 injector.InjectTouchEvent(event); 199 injector.InjectTouchEvent(event);
200 } 200 }
201 201
202 // If initialization fails, it should not call any touch injection functions. 202 // If initialization fails, it should not call any touch injection functions.
203 TEST(TouchInjectorWinTest, InitFailed) { 203 TEST(TouchInjectorWinTest, InitFailed) {
204 scoped_ptr<TouchInjectorWinDelegateMock> delegate_mock( 204 std::unique_ptr<TouchInjectorWinDelegateMock> delegate_mock(
205 new ::testing::StrictMock<TouchInjectorWinDelegateMock>()); 205 new ::testing::StrictMock<TouchInjectorWinDelegateMock>());
206 206
207 TouchEvent event; 207 TouchEvent event;
208 event.set_event_type(TouchEvent::TOUCH_POINT_START); 208 event.set_event_type(TouchEvent::TOUCH_POINT_START);
209 209
210 InSequence s; 210 InSequence s;
211 EXPECT_CALL(*delegate_mock, InitializeTouchInjection(_, _)) 211 EXPECT_CALL(*delegate_mock, InitializeTouchInjection(_, _))
212 .WillOnce(Return(0)); 212 .WillOnce(Return(0));
213 EXPECT_CALL(*delegate_mock, InjectTouchInput(_, _)).Times(0); 213 EXPECT_CALL(*delegate_mock, InjectTouchInput(_, _)).Times(0);
214 214
215 TouchInjectorWin injector; 215 TouchInjectorWin injector;
216 injector.SetInjectorDelegateForTest(std::move(delegate_mock)); 216 injector.SetInjectorDelegateForTest(std::move(delegate_mock));
217 EXPECT_FALSE(injector.Init()); 217 EXPECT_FALSE(injector.Init());
218 injector.InjectTouchEvent(event); 218 injector.InjectTouchEvent(event);
219 } 219 }
220 220
221 // Deinitialize and initialize should clean the state. 221 // Deinitialize and initialize should clean the state.
222 TEST(TouchInjectorWinTest, Reinitialize) { 222 TEST(TouchInjectorWinTest, Reinitialize) {
223 scoped_ptr<TouchInjectorWinDelegateMock> delegate_mock_before_deinitialize( 223 std::unique_ptr<TouchInjectorWinDelegateMock>
224 new ::testing::StrictMock<TouchInjectorWinDelegateMock>()); 224 delegate_mock_before_deinitialize(
225 scoped_ptr<TouchInjectorWinDelegateMock> delegate_mock_after_deinitialize( 225 new ::testing::StrictMock<TouchInjectorWinDelegateMock>());
226 new ::testing::StrictMock<TouchInjectorWinDelegateMock>()); 226 std::unique_ptr<TouchInjectorWinDelegateMock>
227 delegate_mock_after_deinitialize(
228 new ::testing::StrictMock<TouchInjectorWinDelegateMock>());
227 229
228 TouchEvent first_event; 230 TouchEvent first_event;
229 first_event.set_event_type(TouchEvent::TOUCH_POINT_START); 231 first_event.set_event_type(TouchEvent::TOUCH_POINT_START);
230 TouchEventPoint* point0 = first_event.add_touch_points(); 232 TouchEventPoint* point0 = first_event.add_touch_points();
231 point0->set_id(0u); 233 point0->set_id(0u);
232 234
233 TouchEvent second_event; 235 TouchEvent second_event;
234 second_event.set_event_type(TouchEvent::TOUCH_POINT_START); 236 second_event.set_event_type(TouchEvent::TOUCH_POINT_START);
235 TouchEventPoint* point1 = second_event.add_touch_points(); 237 TouchEventPoint* point1 = second_event.add_touch_points();
236 point1->set_id(1u); 238 point1->set_id(1u);
(...skipping 30 matching lines...) Expand all
267 injector.Deinitialize(); 269 injector.Deinitialize();
268 270
269 injector.SetInjectorDelegateForTest( 271 injector.SetInjectorDelegateForTest(
270 std::move(delegate_mock_after_deinitialize)); 272 std::move(delegate_mock_after_deinitialize));
271 EXPECT_TRUE(injector.Init()); 273 EXPECT_TRUE(injector.Init());
272 injector.InjectTouchEvent(second_event); 274 injector.InjectTouchEvent(second_event);
273 } 275 }
274 276
275 // Make sure that the flag is set to kStartFlag. 277 // Make sure that the flag is set to kStartFlag.
276 TEST(TouchInjectorWinTest, StartTouchPoint) { 278 TEST(TouchInjectorWinTest, StartTouchPoint) {
277 scoped_ptr<TouchInjectorWinDelegateMock> delegate_mock( 279 std::unique_ptr<TouchInjectorWinDelegateMock> delegate_mock(
278 new ::testing::StrictMock<TouchInjectorWinDelegateMock>()); 280 new ::testing::StrictMock<TouchInjectorWinDelegateMock>());
279 281
280 TouchEvent event; 282 TouchEvent event;
281 event.set_event_type(TouchEvent::TOUCH_POINT_START); 283 event.set_event_type(TouchEvent::TOUCH_POINT_START);
282 TouchEventPoint* point = event.add_touch_points(); 284 TouchEventPoint* point = event.add_touch_points();
283 point->set_id(0u); 285 point->set_id(0u);
284 286
285 InSequence s; 287 InSequence s;
286 EXPECT_CALL(*delegate_mock, InitializeTouchInjection(_, _)) 288 EXPECT_CALL(*delegate_mock, InitializeTouchInjection(_, _))
287 .WillOnce(Return(1)); 289 .WillOnce(Return(1));
288 290
289 IdFlagMap id_to_flags; 291 IdFlagMap id_to_flags;
290 id_to_flags[0u] = kStartFlag; 292 id_to_flags[0u] = kStartFlag;
291 EXPECT_CALL( 293 EXPECT_CALL(
292 *delegate_mock, 294 *delegate_mock,
293 InjectTouchInput(1, EqualsPointerTouchInfoFlag(id_to_flags))) 295 InjectTouchInput(1, EqualsPointerTouchInfoFlag(id_to_flags)))
294 .WillOnce(Return(1)); 296 .WillOnce(Return(1));
295 297
296 TouchInjectorWin injector; 298 TouchInjectorWin injector;
297 injector.SetInjectorDelegateForTest(std::move(delegate_mock)); 299 injector.SetInjectorDelegateForTest(std::move(delegate_mock));
298 EXPECT_TRUE(injector.Init()); 300 EXPECT_TRUE(injector.Init());
299 injector.InjectTouchEvent(event); 301 injector.InjectTouchEvent(event);
300 } 302 }
301 303
302 // Start a point and then move, make sure the flag is set to kMoveFlag. 304 // Start a point and then move, make sure the flag is set to kMoveFlag.
303 TEST(TouchInjectorWinTest, MoveTouchPoint) { 305 TEST(TouchInjectorWinTest, MoveTouchPoint) {
304 scoped_ptr<TouchInjectorWinDelegateMock> delegate_mock( 306 std::unique_ptr<TouchInjectorWinDelegateMock> delegate_mock(
305 new ::testing::StrictMock<TouchInjectorWinDelegateMock>()); 307 new ::testing::StrictMock<TouchInjectorWinDelegateMock>());
306 308
307 TouchEvent event; 309 TouchEvent event;
308 event.set_event_type(TouchEvent::TOUCH_POINT_START); 310 event.set_event_type(TouchEvent::TOUCH_POINT_START);
309 TouchEventPoint* point = event.add_touch_points(); 311 TouchEventPoint* point = event.add_touch_points();
310 point->set_id(0u); 312 point->set_id(0u);
311 313
312 314
313 InSequence s; 315 InSequence s;
314 EXPECT_CALL(*delegate_mock, InitializeTouchInjection(_, _)) 316 EXPECT_CALL(*delegate_mock, InitializeTouchInjection(_, _))
(...skipping 15 matching lines...) Expand all
330 TouchInjectorWin injector; 332 TouchInjectorWin injector;
331 injector.SetInjectorDelegateForTest(std::move(delegate_mock)); 333 injector.SetInjectorDelegateForTest(std::move(delegate_mock));
332 EXPECT_TRUE(injector.Init()); 334 EXPECT_TRUE(injector.Init());
333 injector.InjectTouchEvent(event); 335 injector.InjectTouchEvent(event);
334 event.set_event_type(TouchEvent::TOUCH_POINT_MOVE); 336 event.set_event_type(TouchEvent::TOUCH_POINT_MOVE);
335 injector.InjectTouchEvent(event); 337 injector.InjectTouchEvent(event);
336 } 338 }
337 339
338 // Start a point and then move, make sure the flag is set to kEndFlag. 340 // Start a point and then move, make sure the flag is set to kEndFlag.
339 TEST(TouchInjectorWinTest, EndTouchPoint) { 341 TEST(TouchInjectorWinTest, EndTouchPoint) {
340 scoped_ptr<TouchInjectorWinDelegateMock> delegate_mock( 342 std::unique_ptr<TouchInjectorWinDelegateMock> delegate_mock(
341 new ::testing::StrictMock<TouchInjectorWinDelegateMock>()); 343 new ::testing::StrictMock<TouchInjectorWinDelegateMock>());
342 344
343 TouchEvent event; 345 TouchEvent event;
344 event.set_event_type(TouchEvent::TOUCH_POINT_START); 346 event.set_event_type(TouchEvent::TOUCH_POINT_START);
345 TouchEventPoint* point = event.add_touch_points(); 347 TouchEventPoint* point = event.add_touch_points();
346 point->set_id(0u); 348 point->set_id(0u);
347 349
348 InSequence s; 350 InSequence s;
349 EXPECT_CALL(*delegate_mock, InitializeTouchInjection(_, _)) 351 EXPECT_CALL(*delegate_mock, InitializeTouchInjection(_, _))
350 .WillOnce(Return(1)); 352 .WillOnce(Return(1));
(...skipping 14 matching lines...) Expand all
365 TouchInjectorWin injector; 367 TouchInjectorWin injector;
366 injector.SetInjectorDelegateForTest(std::move(delegate_mock)); 368 injector.SetInjectorDelegateForTest(std::move(delegate_mock));
367 EXPECT_TRUE(injector.Init()); 369 EXPECT_TRUE(injector.Init());
368 injector.InjectTouchEvent(event); 370 injector.InjectTouchEvent(event);
369 event.set_event_type(TouchEvent::TOUCH_POINT_END); 371 event.set_event_type(TouchEvent::TOUCH_POINT_END);
370 injector.InjectTouchEvent(event); 372 injector.InjectTouchEvent(event);
371 } 373 }
372 374
373 // Start a point and then move, make sure the flag is set to kCancelFlag. 375 // Start a point and then move, make sure the flag is set to kCancelFlag.
374 TEST(TouchInjectorWinTest, CancelTouchPoint) { 376 TEST(TouchInjectorWinTest, CancelTouchPoint) {
375 scoped_ptr<TouchInjectorWinDelegateMock> delegate_mock( 377 std::unique_ptr<TouchInjectorWinDelegateMock> delegate_mock(
376 new ::testing::StrictMock<TouchInjectorWinDelegateMock>()); 378 new ::testing::StrictMock<TouchInjectorWinDelegateMock>());
377 379
378 TouchEvent event; 380 TouchEvent event;
379 event.set_event_type(TouchEvent::TOUCH_POINT_START); 381 event.set_event_type(TouchEvent::TOUCH_POINT_START);
380 TouchEventPoint* point = event.add_touch_points(); 382 TouchEventPoint* point = event.add_touch_points();
381 point->set_id(0u); 383 point->set_id(0u);
382 384
383 InSequence s; 385 InSequence s;
384 EXPECT_CALL(*delegate_mock, InitializeTouchInjection(_, _)) 386 EXPECT_CALL(*delegate_mock, InitializeTouchInjection(_, _))
385 .WillOnce(Return(1)); 387 .WillOnce(Return(1));
(...skipping 21 matching lines...) Expand all
407 409
408 // Note that points that haven't changed should be injected as MOVE. 410 // Note that points that haven't changed should be injected as MOVE.
409 // This tests: 411 // This tests:
410 // 1. Start first touch point. 412 // 1. Start first touch point.
411 // 2. Start second touch point. 413 // 2. Start second touch point.
412 // 3. Move both touch points. 414 // 3. Move both touch points.
413 // 4. Start third touch point. 415 // 4. Start third touch point.
414 // 5. End second touch point. 416 // 5. End second touch point.
415 // 6. Cancel remaining (first and third) touch points. 417 // 6. Cancel remaining (first and third) touch points.
416 TEST(TouchInjectorWinTest, MultiTouch) { 418 TEST(TouchInjectorWinTest, MultiTouch) {
417 scoped_ptr<TouchInjectorWinDelegateMock> delegate_mock( 419 std::unique_ptr<TouchInjectorWinDelegateMock> delegate_mock(
418 new ::testing::StrictMock<TouchInjectorWinDelegateMock>()); 420 new ::testing::StrictMock<TouchInjectorWinDelegateMock>());
419 421
420 InSequence s; 422 InSequence s;
421 EXPECT_CALL(*delegate_mock, InitializeTouchInjection(_, _)) 423 EXPECT_CALL(*delegate_mock, InitializeTouchInjection(_, _))
422 .WillOnce(Return(1)); 424 .WillOnce(Return(1));
423 425
424 IdFlagMap id_to_flags; 426 IdFlagMap id_to_flags;
425 id_to_flags[0u] = kStartFlag; 427 id_to_flags[0u] = kStartFlag;
426 EXPECT_CALL( 428 EXPECT_CALL(
427 *delegate_mock, 429 *delegate_mock,
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 TouchEvent cancel_rest; 513 TouchEvent cancel_rest;
512 cancel_rest.set_event_type(TouchEvent::TOUCH_POINT_CANCEL); 514 cancel_rest.set_event_type(TouchEvent::TOUCH_POINT_CANCEL);
513 point0 = cancel_rest.add_touch_points(); 515 point0 = cancel_rest.add_touch_points();
514 point0->set_id(0u); 516 point0->set_id(0u);
515 point2 = cancel_rest.add_touch_points(); 517 point2 = cancel_rest.add_touch_points();
516 point2->set_id(2u); 518 point2->set_id(2u);
517 injector.InjectTouchEvent(cancel_rest); 519 injector.InjectTouchEvent(cancel_rest);
518 } 520 }
519 521
520 } // namespace remoting 522 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/touch_injector_win.cc ('k') | remoting/host/usage_stats_consent_mac.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698