| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef UI_EVENTS_TEST_MOTION_EVENT_TEST_UTILS_H_ |
| #define UI_EVENTS_TEST_MOTION_EVENT_TEST_UTILS_H_ |
| |
| #include <stddef.h> |
| |
| #include <string> |
| #include <vector> |
| |
| #include "base/time/time.h" |
| #include "ui/events/gesture_detection/motion_event_generic.h" |
| #include "ui/gfx/geometry/point_f.h" |
| |
| namespace ui { |
| namespace test { |
| |
| struct MockMotionEvent : public MotionEventGeneric { |
| enum { TOUCH_MAJOR = 10 }; |
| |
| MockMotionEvent(); |
| explicit MockMotionEvent(Action action); |
| MockMotionEvent(Action action, base::TimeTicks time, float x, float y); |
| MockMotionEvent(Action action, |
| base::TimeTicks time, |
| float x0, |
| float y0, |
| float x1, |
| float y1); |
| MockMotionEvent(Action action, |
| base::TimeTicks time, |
| float x0, |
| float y0, |
| float x1, |
| float y1, |
| float x2, |
| float y2); |
| MockMotionEvent(Action action, |
| base::TimeTicks time, |
| const std::vector<gfx::PointF>& positions); |
| MockMotionEvent(const MockMotionEvent& other); |
| |
| ~MockMotionEvent() override; |
| |
| // Utility methods. |
| MockMotionEvent& PressPoint(float x, float y); |
| MockMotionEvent& MovePoint(size_t index, float x, float y); |
| MockMotionEvent& ReleasePoint(); |
| MockMotionEvent& CancelPoint(); |
| MockMotionEvent& SetTouchMajor(float new_touch_major); |
| MockMotionEvent& SetRawOffset(float raw_offset_x, float raw_offset_y); |
| MockMotionEvent& SetToolType(size_t index, ToolType tool_type); |
| MockMotionEvent& SetPrimaryPointerId(int id); |
| |
| private: |
| void PushPointer(float x, float y); |
| void UpdatePointersAndID(); |
| }; |
| |
| std::string ToString(const MotionEvent& event); |
| |
| } // namespace test |
| } // namespace ui |
| |
| #endif // UI_EVENTS_TEST_MOTION_EVENT_TEST_UTILS_H_ |