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
3 // found in the LICENSE file.
4
5 #include "ui/events/ozone/evdev/event_converter_test_util.h"
6
7 #include <stdint.h>
8
9 #include "ui/events/ozone/device/device_manager.h"
10 #include "ui/events/ozone/evdev/device_event_dispatcher_evdev.h"
11 #include "ui/events/ozone/evdev/event_factory_evdev.h"
12 #include "ui/events/platform/platform_event_dispatcher.h"
13
14 namespace ui {
15
16 namespace {
17
18 class TestDeviceManager : public ui::DeviceManager {
19 public:
TestDeviceManager()20 TestDeviceManager() {}
~TestDeviceManager()21 ~TestDeviceManager() override {}
22
23 // DeviceManager:
ScanDevices(DeviceEventObserver * observer)24 void ScanDevices(DeviceEventObserver* observer) override {}
AddObserver(DeviceEventObserver * observer)25 void AddObserver(DeviceEventObserver* observer) override {}
RemoveObserver(DeviceEventObserver * observer)26 void RemoveObserver(DeviceEventObserver* observer) override {}
27 };
28
29 class TestDeviceEventDispatcherEvdev : public DeviceEventDispatcherEvdev {
30 public:
TestDeviceEventDispatcherEvdev(EventFactoryEvdev * event_factory_evdev)31 TestDeviceEventDispatcherEvdev(EventFactoryEvdev* event_factory_evdev)
32 : event_factory_evdev_(event_factory_evdev) {}
~TestDeviceEventDispatcherEvdev()33 ~TestDeviceEventDispatcherEvdev() override {}
34
35 // DeviceEventDispatcher:
36
DispatchKeyEvent(const KeyEventParams & params)37 void DispatchKeyEvent(const KeyEventParams& params) override {
38 event_factory_evdev_->DispatchKeyEvent(params);
39 }
40
DispatchMouseMoveEvent(const MouseMoveEventParams & params)41 void DispatchMouseMoveEvent(const MouseMoveEventParams& params) override {
42 event_factory_evdev_->DispatchMouseMoveEvent(params);
43 }
44
DispatchMouseButtonEvent(const MouseButtonEventParams & params)45 void DispatchMouseButtonEvent(const MouseButtonEventParams& params) override {
46 event_factory_evdev_->DispatchMouseButtonEvent(params);
47 }
48
DispatchMouseWheelEvent(const MouseWheelEventParams & params)49 void DispatchMouseWheelEvent(const MouseWheelEventParams& params) override {
50 event_factory_evdev_->DispatchMouseWheelEvent(params);
51 }
52
DispatchPinchEvent(const PinchEventParams & params)53 void DispatchPinchEvent(const PinchEventParams& params) override {
54 event_factory_evdev_->DispatchPinchEvent(params);
55 }
56
DispatchScrollEvent(const ScrollEventParams & params)57 void DispatchScrollEvent(const ScrollEventParams& params) override {
58 event_factory_evdev_->DispatchScrollEvent(params);
59 }
60
DispatchTouchEvent(const TouchEventParams & params)61 void DispatchTouchEvent(const TouchEventParams& params) override {
62 event_factory_evdev_->DispatchTouchEvent(params);
63 }
64
DispatchKeyboardDevicesUpdated(const std::vector<InputDevice> & devices)65 void DispatchKeyboardDevicesUpdated(
66 const std::vector<InputDevice>& devices) override {
67 event_factory_evdev_->DispatchKeyboardDevicesUpdated(devices);
68 }
DispatchTouchscreenDevicesUpdated(const std::vector<TouchscreenDevice> & devices)69 void DispatchTouchscreenDevicesUpdated(
70 const std::vector<TouchscreenDevice>& devices) override {
71 event_factory_evdev_->DispatchTouchscreenDevicesUpdated(devices);
72 }
DispatchMouseDevicesUpdated(const std::vector<InputDevice> & devices)73 void DispatchMouseDevicesUpdated(
74 const std::vector<InputDevice>& devices) override {
75 event_factory_evdev_->DispatchMouseDevicesUpdated(devices);
76 }
DispatchTouchpadDevicesUpdated(const std::vector<InputDevice> & devices)77 void DispatchTouchpadDevicesUpdated(
78 const std::vector<InputDevice>& devices) override {
79 event_factory_evdev_->DispatchTouchpadDevicesUpdated(devices);
80 }
DispatchUncategorizedDevicesUpdated(const std::vector<InputDevice> & devices)81 void DispatchUncategorizedDevicesUpdated(
82 const std::vector<InputDevice>& devices) override {
83 event_factory_evdev_->DispatchUncategorizedDevicesUpdated(devices);
84 }
DispatchDeviceListsComplete()85 void DispatchDeviceListsComplete() override {
86 event_factory_evdev_->DispatchDeviceListsComplete();
87 }
DispatchStylusStateChanged(StylusState stylus_state)88 void DispatchStylusStateChanged(StylusState stylus_state) override {
89 event_factory_evdev_->DispatchStylusStateChanged(stylus_state);
90 }
91
DispatchGamepadEvent(const GamepadEvent & event)92 void DispatchGamepadEvent(const GamepadEvent& event) override {
93 event_factory_evdev_->DispatchGamepadEvent(event);
94 }
95
DispatchGamepadDevicesUpdated(const std::vector<GamepadDevice> & devices)96 void DispatchGamepadDevicesUpdated(
97 const std::vector<GamepadDevice>& devices) override {
98 event_factory_evdev_->DispatchGamepadDevicesUpdated(devices);
99 }
100
101 private:
102 EventFactoryEvdev* event_factory_evdev_;
103 };
104
105 class TestEventFactoryEvdev : public EventFactoryEvdev {
106 public:
TestEventFactoryEvdev(CursorDelegateEvdev * cursor,DeviceManager * device_manager,KeyboardLayoutEngine * keyboard_layout_engine,const EventDispatchCallback & callback)107 TestEventFactoryEvdev(CursorDelegateEvdev* cursor,
108 DeviceManager* device_manager,
109 KeyboardLayoutEngine* keyboard_layout_engine,
110 const EventDispatchCallback& callback)
111 : EventFactoryEvdev(cursor, device_manager, keyboard_layout_engine),
112 callback_(callback) {}
~TestEventFactoryEvdev()113 ~TestEventFactoryEvdev() override {}
114
115 private:
DispatchEvent(PlatformEvent event)116 uint32_t DispatchEvent(PlatformEvent event) override {
117 callback_.Run(event);
118 return POST_DISPATCH_NONE;
119 }
120
121 const EventDispatchCallback callback_;
122 };
123
124 } // namespace
125
126 std::unique_ptr<DeviceEventDispatcherEvdev>
CreateDeviceEventDispatcherEvdevForTest(EventFactoryEvdev * event_factory)127 CreateDeviceEventDispatcherEvdevForTest(EventFactoryEvdev* event_factory) {
128 return std::make_unique<TestDeviceEventDispatcherEvdev>(event_factory);
129 }
130
CreateDeviceManagerForTest()131 std::unique_ptr<DeviceManager> CreateDeviceManagerForTest() {
132 return std::make_unique<TestDeviceManager>();
133 }
134
CreateEventFactoryEvdevForTest(CursorDelegateEvdev * cursor,DeviceManager * device_manager,KeyboardLayoutEngine * keyboard_layout_engine,const EventDispatchCallback & callback)135 std::unique_ptr<EventFactoryEvdev> CreateEventFactoryEvdevForTest(
136 CursorDelegateEvdev* cursor,
137 DeviceManager* device_manager,
138 KeyboardLayoutEngine* keyboard_layout_engine,
139 const EventDispatchCallback& callback) {
140 return std::make_unique<TestEventFactoryEvdev>(
141 cursor, device_manager, keyboard_layout_engine, callback);
142 }
143
144 } // namespace ui
145