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

Side by Side Diff: remoting/protocol/test_event_matchers.h

Issue 985863002: Move all protocol event matchers to test_event_matchers.h (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebased Created 5 years, 9 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/protocol/mouse_input_filter_unittest.cc ('k') | no next file » | 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 #ifndef REMOTING_PROTOCOL_TEST_EVENT_MATCHERS_H_ 5 #ifndef REMOTING_PROTOCOL_TEST_EVENT_MATCHERS_H_
6 #define REMOTING_PROTOCOL_TEST_EVENT_MATCHERS_H_ 6 #define REMOTING_PROTOCOL_TEST_EVENT_MATCHERS_H_
7 7
8 #include <cmath>
9
10 #include "remoting/proto/event.pb.h"
8 #include "testing/gmock/include/gmock/gmock.h" 11 #include "testing/gmock/include/gmock/gmock.h"
9 12
10 // This file contains matchers for events. 13 // This file contains matchers for protocol events.
11 namespace remoting { 14 namespace remoting {
12 namespace protocol { 15 namespace protocol {
16 namespace test {
13 17
14 MATCHER_P(TouchEventEqual, expected_event, "Expect touch events equal.") { 18 MATCHER_P2(EqualsKeyEvent, usb_keycode, pressed, "") {
19 return arg.usb_keycode() == static_cast<uint32>(usb_keycode) &&
20 arg.pressed() == pressed;
21 }
22
23 MATCHER_P2(EqualsKeyEventWithCapsLock, usb_keycode, pressed, "") {
24 return arg.usb_keycode() == static_cast<uint32>(usb_keycode) &&
25 arg.pressed() == pressed &&
26 arg.lock_states() == KeyEvent::LOCK_STATES_CAPSLOCK;
27 }
28
29 MATCHER_P2(EqualsKeyEventWithNumLock, usb_keycode, pressed, "") {
30 return arg.usb_keycode() == static_cast<uint32>(usb_keycode) &&
31 arg.pressed() == pressed &&
32 arg.lock_states() == KeyEvent::LOCK_STATES_NUMLOCK;
33 }
34
35 MATCHER_P2(EqualsKeyEventWithoutLockStates, usb_keycode, pressed, "") {
36 return arg.usb_keycode() == static_cast<uint32>(usb_keycode) &&
37 arg.pressed() == pressed &&
38 !arg.has_lock_states();
39 }
40
41 MATCHER_P(EqualsTextEvent, text, "") {
42 return arg.text() == text;
43 }
44
45 MATCHER_P2(EqualsMouseMoveEvent, x, y, "") {
46 return arg.x() == x && arg.y() == y;
47 }
48
49 MATCHER_P2(EqualsMouseButtonEvent, button, button_down, "") {
50 return arg.button() == button && arg.button_down() == button_down;
51 }
52
53 MATCHER_P4(EqualsMouseEvent, x, y, button, down, "") {
54 return arg.x() == x && arg.y() == y && arg.button() == button &&
55 arg.button_down() == down;
56 }
57
58 MATCHER_P2(EqualsClipboardEvent, mime_type, data, "") {
59 return arg.mime_type() == mime_type && arg.data() == data;
60 }
61
62 MATCHER_P(EqualsTouchEvent, expected_event, "") {
15 if (arg.event_type() != expected_event.event_type()) 63 if (arg.event_type() != expected_event.event_type())
16 return false; 64 return false;
17 65
18 if (arg.touch_points().size() != expected_event.touch_points().size()) 66 if (arg.touch_points().size() != expected_event.touch_points().size())
19 return false; 67 return false;
20 68
21 for (int i = 0; i < expected_event.touch_points().size(); ++i) { 69 for (int i = 0; i < expected_event.touch_points().size(); ++i) {
22 const protocol::TouchEventPoint& expected_point = 70 const TouchEventPoint& expected_point = expected_event.touch_points(i);
23 expected_event.touch_points(i); 71 const TouchEventPoint& actual_point = arg.touch_points(i);
24 const protocol::TouchEventPoint& actual_point = arg.touch_points(i);
25 72
26 const bool equal = expected_point.id() == actual_point.id() && 73 const bool equal = expected_point.id() == actual_point.id() &&
27 expected_point.x() == actual_point.x() && 74 expected_point.x() == actual_point.x() &&
28 expected_point.y() == actual_point.y() && 75 expected_point.y() == actual_point.y() &&
29 expected_point.radius_x() == actual_point.radius_x() && 76 expected_point.radius_x() == actual_point.radius_x() &&
30 expected_point.radius_y() == actual_point.radius_y() && 77 expected_point.radius_y() == actual_point.radius_y() &&
31 expected_point.angle() == actual_point.angle() && 78 expected_point.angle() == actual_point.angle() &&
32 expected_point.pressure() == actual_point.pressure(); 79 expected_point.pressure() == actual_point.pressure();
33 if (!equal) 80 if (!equal)
34 return false; 81 return false;
35 } 82 }
36 83
37 return true; 84 return true;
38 } 85 }
39 86
40 MATCHER(IsTouchCancelEvent, "expect touch cancel event") { 87 // If the rounding error for the coordinates checked in TouchPoint* matcher are
41 return arg.event_type() == protocol::TouchEvent::TOUCH_POINT_CANCEL; 88 // within 1 pixel diff, it is acceptable.
89 const float kTestTouchErrorEpsilon = 1.0f;
90
91 MATCHER_P(EqualsTouchPointCoordinates, expected_event, "") {
92 if (arg.touch_points().size() != expected_event.touch_points().size())
93 return false;
94
95 for (int i = 0; i < expected_event.touch_points().size(); ++i) {
96 const TouchEventPoint& arg_point = arg.touch_points(i);
97 const TouchEventPoint& expected_point = expected_event.touch_points(i);
98 if (std::abs(expected_point.x() - arg_point.x()) >= kTestTouchErrorEpsilon)
99 return false;
100
101 if (std::abs(expected_point.y() - arg_point.y()) >= kTestTouchErrorEpsilon)
102 return false;
103 }
104 return true;
42 } 105 }
43 106
107 MATCHER_P(EqualsTouchPointRadii, expected_event, "") {
108 if (arg.touch_points().size() != expected_event.touch_points().size())
109 return false;
110
111 for (int i = 0; i < expected_event.touch_points().size(); ++i) {
112 const TouchEventPoint& arg_point = arg.touch_points(i);
113 const TouchEventPoint& expected_point = expected_event.touch_points(i);
114 if (std::abs(expected_point.radius_x() - arg_point.radius_x()) >=
115 kTestTouchErrorEpsilon) {
116 return false;
117 }
118
119 if (std::abs(expected_point.radius_y() - arg_point.radius_y()) >=
120 kTestTouchErrorEpsilon) {
121 return false;
122 }
123 }
124 return true;
125 }
126
127 MATCHER_P2(EqualsTouchEventTypeAndId, type, id, "") {
128 if (arg.event_type() != type)
129 return false;
130
131 if (arg.touch_points().size() != 1)
132 return false;
133
134 return arg.touch_points(0).id() == id;
135 }
136
137 } // namespace test
44 } // namespace protocol 138 } // namespace protocol
45 } // namespace remoting 139 } // namespace remoting
46 140
47 #endif // REMOTING_PROTOCOL_TEST_EVENT_MATCHERS_H_ 141 #endif // REMOTING_PROTOCOL_TEST_EVENT_MATCHERS_H_
OLDNEW
« no previous file with comments | « remoting/protocol/mouse_input_filter_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698