1a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// found in the LICENSE file.
4a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
5929504d64b38e05de7355e162311d6791ad6f54dBo Liu#include "ui/events/test/mock_motion_event.h"
6a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
7a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "base/logging.h"
8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
9a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)using base::TimeTicks;
10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
11a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)namespace ui {
12929504d64b38e05de7355e162311d6791ad6f54dBo Liunamespace test {
13a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
14a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)MockMotionEvent::MockMotionEvent()
15929504d64b38e05de7355e162311d6791ad6f54dBo Liu    : action(ACTION_CANCEL), pointer_count(1), touch_major(TOUCH_MAJOR), id(0),
16929504d64b38e05de7355e162311d6791ad6f54dBo Liu      button_state(0) {
17f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)MockMotionEvent::MockMotionEvent(Action action)
20929504d64b38e05de7355e162311d6791ad6f54dBo Liu    : action(action), pointer_count(1), touch_major(TOUCH_MAJOR), id(0),
21929504d64b38e05de7355e162311d6791ad6f54dBo Liu      button_state(0) {
22f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
24a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)MockMotionEvent::MockMotionEvent(Action action,
25a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                 TimeTicks time,
26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                 float x,
27a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                 float y)
28f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    : action(action),
29f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      pointer_count(1),
30f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      time(time),
31f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      touch_major(TOUCH_MAJOR),
32929504d64b38e05de7355e162311d6791ad6f54dBo Liu      id(0),
33929504d64b38e05de7355e162311d6791ad6f54dBo Liu      button_state(0) {
34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  points[0].SetPoint(x, y);
35929504d64b38e05de7355e162311d6791ad6f54dBo Liu  tool_types[0] = TOOL_TYPE_UNKNOWN;
36a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
37a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
38a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)MockMotionEvent::MockMotionEvent(Action action,
39a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                 TimeTicks time,
40a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                 float x0,
41a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                 float y0,
42a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                 float x1,
43a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                 float y1)
44f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    : action(action),
45f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      pointer_count(2),
46f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      time(time),
47f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      touch_major(TOUCH_MAJOR),
48929504d64b38e05de7355e162311d6791ad6f54dBo Liu      id(0),
49929504d64b38e05de7355e162311d6791ad6f54dBo Liu      button_state(0) {
50a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  points[0].SetPoint(x0, y0);
51929504d64b38e05de7355e162311d6791ad6f54dBo Liu  tool_types[0] = TOOL_TYPE_UNKNOWN;
52a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  points[1].SetPoint(x1, y1);
53929504d64b38e05de7355e162311d6791ad6f54dBo Liu  tool_types[1] = TOOL_TYPE_UNKNOWN;
54a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
55a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
565c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo LiuMockMotionEvent::MockMotionEvent(Action action,
575c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                                 TimeTicks time,
585c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                                 float x0,
595c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                                 float y0,
605c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                                 float x1,
615c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                                 float y1,
625c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                                 float x2,
635c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu                                 float y2)
64f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    : action(action),
65f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      pointer_count(3),
66f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      time(time),
67f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      touch_major(TOUCH_MAJOR),
68929504d64b38e05de7355e162311d6791ad6f54dBo Liu      id(0),
69929504d64b38e05de7355e162311d6791ad6f54dBo Liu      button_state(0) {
705c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  points[0].SetPoint(x0, y0);
71929504d64b38e05de7355e162311d6791ad6f54dBo Liu  tool_types[0] = TOOL_TYPE_UNKNOWN;
725c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  points[1].SetPoint(x1, y1);
73929504d64b38e05de7355e162311d6791ad6f54dBo Liu  tool_types[1] = TOOL_TYPE_UNKNOWN;
745c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  points[2].SetPoint(x2, y2);
75929504d64b38e05de7355e162311d6791ad6f54dBo Liu  tool_types[2] = TOOL_TYPE_UNKNOWN;
765c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu}
775c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
78a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)MockMotionEvent::MockMotionEvent(const MockMotionEvent& other)
79a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    : action(other.action),
80a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      pointer_count(other.pointer_count),
81c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch      time(other.time),
82f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)      touch_major(other.touch_major),
83929504d64b38e05de7355e162311d6791ad6f54dBo Liu      id(other.GetId()),
84929504d64b38e05de7355e162311d6791ad6f54dBo Liu      button_state(other.GetButtonState()) {
85929504d64b38e05de7355e162311d6791ad6f54dBo Liu  for (size_t i = 0; i < pointer_count; ++i) {
8646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    points[i] = other.points[i];
87929504d64b38e05de7355e162311d6791ad6f54dBo Liu    tool_types[i] = other.tool_types[i];
88929504d64b38e05de7355e162311d6791ad6f54dBo Liu  }
89a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
90a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
91a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)MockMotionEvent::~MockMotionEvent() {}
92a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
93a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)MotionEvent::Action MockMotionEvent::GetAction() const { return action; }
94a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
95a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)int MockMotionEvent::GetActionIndex() const {
96a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  return static_cast<int>(pointer_count) - 1;
97a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
98a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
99a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)size_t MockMotionEvent::GetPointerCount() const { return pointer_count; }
100a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
101c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochint MockMotionEvent::GetId() const {
102c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch  return id;
103c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch}
104c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch
105a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)int MockMotionEvent::GetPointerId(size_t pointer_index) const {
106c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch  DCHECK(pointer_index < pointer_count);
107a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  return static_cast<int>(pointer_index);
108a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
109a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
110a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)float MockMotionEvent::GetX(size_t pointer_index) const {
111a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  return points[pointer_index].x();
112a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
113a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
114a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)float MockMotionEvent::GetY(size_t pointer_index) const {
115a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  return points[pointer_index].y();
116a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
117a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
118f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)float MockMotionEvent::GetRawX(size_t pointer_index) const {
1196d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)  return GetX(pointer_index) + raw_offset.x();
120f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
121f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
122f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)float MockMotionEvent::GetRawY(size_t pointer_index) const {
1236d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)  return GetY(pointer_index) + raw_offset.y();
124f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
125f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
126a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)float MockMotionEvent::GetTouchMajor(size_t pointer_index) const {
127f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  return touch_major;
128a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
129a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
130a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)float MockMotionEvent::GetPressure(size_t pointer_index) const {
131a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  return 0;
132a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
133a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
134a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)TimeTicks MockMotionEvent::GetEventTime() const { return time; }
135a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
136a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)size_t MockMotionEvent::GetHistorySize() const { return 0; }
137a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
138a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)TimeTicks MockMotionEvent::GetHistoricalEventTime(
139a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    size_t historical_index) const {
140a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  return TimeTicks();
141a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
142a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
143a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)float MockMotionEvent::GetHistoricalTouchMajor(size_t pointer_index,
144a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                               size_t historical_index) const {
145a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  return 0;
146a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
147a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
148a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)float MockMotionEvent::GetHistoricalX(size_t pointer_index,
149a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                      size_t historical_index) const {
150a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  return 0;
151a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
152a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
153a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)float MockMotionEvent::GetHistoricalY(size_t pointer_index,
154a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                                      size_t historical_index) const {
155a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  return 0;
156a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
157a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
158929504d64b38e05de7355e162311d6791ad6f54dBo LiuMotionEvent::ToolType MockMotionEvent::GetToolType(size_t pointer_index) const {
159929504d64b38e05de7355e162311d6791ad6f54dBo Liu  DCHECK_LT(pointer_index, pointer_count);
160929504d64b38e05de7355e162311d6791ad6f54dBo Liu  return tool_types[pointer_index];
161929504d64b38e05de7355e162311d6791ad6f54dBo Liu}
162929504d64b38e05de7355e162311d6791ad6f54dBo Liu
163929504d64b38e05de7355e162311d6791ad6f54dBo Liuint MockMotionEvent::GetButtonState() const {
164929504d64b38e05de7355e162311d6791ad6f54dBo Liu  return button_state;
165929504d64b38e05de7355e162311d6791ad6f54dBo Liu}
166929504d64b38e05de7355e162311d6791ad6f54dBo Liu
167a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)scoped_ptr<MotionEvent> MockMotionEvent::Clone() const {
168a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  return scoped_ptr<MotionEvent>(new MockMotionEvent(*this));
169a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
170a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
171a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)scoped_ptr<MotionEvent> MockMotionEvent::Cancel() const {
172a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  scoped_ptr<MockMotionEvent> cancel_event(new MockMotionEvent(*this));
173a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  cancel_event->action = MotionEvent::ACTION_CANCEL;
174a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  return cancel_event.PassAs<MotionEvent>();
175a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
176a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
177010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)void MockMotionEvent::SetId(int new_id) {
178010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  id = new_id;
179010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}
180010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
181010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)void MockMotionEvent::SetTime(base::TimeTicks new_time) {
182010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  time = new_time;
183010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}
184010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
185a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void MockMotionEvent::PressPoint(float x, float y) {
186a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // Reset the pointer count if the previously released and/or cancelled pointer
187a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // was the last pointer in the event.
188a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  if (pointer_count == 1 && (action == ACTION_UP || action == ACTION_CANCEL))
189a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    pointer_count = 0;
190a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
1915c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu  DCHECK_LT(pointer_count, static_cast<size_t>(MAX_POINTERS));
192a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  points[pointer_count++] = gfx::PointF(x, y);
193929504d64b38e05de7355e162311d6791ad6f54dBo Liu  tool_types[pointer_count] = TOOL_TYPE_UNKNOWN;
194a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  action = pointer_count > 1 ? ACTION_POINTER_DOWN : ACTION_DOWN;
195a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
196a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
197a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void MockMotionEvent::MovePoint(size_t index, float x, float y) {
198a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  DCHECK_LT(index, pointer_count);
199a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  points[index] = gfx::PointF(x, y);
200929504d64b38e05de7355e162311d6791ad6f54dBo Liu  tool_types[index] = TOOL_TYPE_UNKNOWN;
201a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  action = ACTION_MOVE;
202a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
203a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
204a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void MockMotionEvent::ReleasePoint() {
205a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  DCHECK_GT(pointer_count, 0U);
206a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  if (pointer_count > 1) {
207a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    --pointer_count;
208a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    action = ACTION_POINTER_UP;
209a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  } else {
210a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    action = ACTION_UP;
211a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  }
212a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
213a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
214a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)void MockMotionEvent::CancelPoint() {
215a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  DCHECK_GT(pointer_count, 0U);
216a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  if (pointer_count > 1)
217a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    --pointer_count;
218a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  action = ACTION_CANCEL;
219a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}
220a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
221f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)void MockMotionEvent::SetTouchMajor(float new_touch_major) {
222f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  touch_major = new_touch_major;
223f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
224f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
2256d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)void MockMotionEvent::SetRawOffset(float raw_offset_x, float raw_offset_y) {
2266d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)  raw_offset.set_x(raw_offset_x);
2276d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)  raw_offset.set_y(raw_offset_y);
2286d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)}
2296d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)
230929504d64b38e05de7355e162311d6791ad6f54dBo Liuvoid MockMotionEvent::SetToolType(size_t pointer_index, ToolType tool_type) {
231929504d64b38e05de7355e162311d6791ad6f54dBo Liu  DCHECK_LT(pointer_index, pointer_count);
232929504d64b38e05de7355e162311d6791ad6f54dBo Liu  tool_types[pointer_index] = tool_type;
233929504d64b38e05de7355e162311d6791ad6f54dBo Liu}
234929504d64b38e05de7355e162311d6791ad6f54dBo Liu
235929504d64b38e05de7355e162311d6791ad6f54dBo Liuvoid MockMotionEvent::SetButtonState(int new_button_state) {
236929504d64b38e05de7355e162311d6791ad6f54dBo Liu  button_state = new_button_state;
237929504d64b38e05de7355e162311d6791ad6f54dBo Liu}
238929504d64b38e05de7355e162311d6791ad6f54dBo Liu
239929504d64b38e05de7355e162311d6791ad6f54dBo Liu}  // namespace test
240a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}  // namespace ui
241