OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <errno.h> | 5 #include <errno.h> |
6 #include <fcntl.h> | 6 #include <fcntl.h> |
7 #include <linux/input.h> | 7 #include <linux/input.h> |
8 #include <unistd.h> | 8 #include <unistd.h> |
9 | 9 |
10 #include <vector> | 10 #include <vector> |
(...skipping 23 matching lines...) Expand all Loading... |
34 } | 34 } |
35 | 35 |
36 const char kTestDevicePath[] = "/dev/input/test-device"; | 36 const char kTestDevicePath[] = "/dev/input/test-device"; |
37 | 37 |
38 } // namespace | 38 } // namespace |
39 | 39 |
40 namespace ui { | 40 namespace ui { |
41 | 41 |
42 class MockTabletEventConverterEvdev : public TabletEventConverterEvdev { | 42 class MockTabletEventConverterEvdev : public TabletEventConverterEvdev { |
43 public: | 43 public: |
44 MockTabletEventConverterEvdev( | 44 MockTabletEventConverterEvdev(int fd, |
45 int fd, | 45 base::FilePath path, |
46 base::FilePath path, | 46 CursorDelegateEvdev* cursor, |
47 CursorDelegateEvdev* cursor, | 47 DeviceEventDispatcherEvdev* dispatcher); |
48 const MouseMoveEventDispatchCallback& mouse_move_callback, | |
49 const MouseButtonEventDispatchCallback& mouse_button_callback); | |
50 ~MockTabletEventConverterEvdev() override {}; | 48 ~MockTabletEventConverterEvdev() override {}; |
51 | 49 |
52 void ConfigureReadMock(struct input_event* queue, | 50 void ConfigureReadMock(struct input_event* queue, |
53 long read_this_many, | 51 long read_this_many, |
54 long queue_index); | 52 long queue_index); |
55 | 53 |
56 // Actually dispatch the event reader code. | 54 // Actually dispatch the event reader code. |
57 void ReadNow() { | 55 void ReadNow() { |
58 OnFileCanReadWithoutBlocking(read_pipe_); | 56 OnFileCanReadWithoutBlocking(read_pipe_); |
59 base::RunLoop().RunUntilIdle(); | 57 base::RunLoop().RunUntilIdle(); |
(...skipping 29 matching lines...) Expand all Loading... |
89 private: | 87 private: |
90 gfx::PointF cursor_location_; | 88 gfx::PointF cursor_location_; |
91 gfx::Rect cursor_display_bounds_; | 89 gfx::Rect cursor_display_bounds_; |
92 DISALLOW_COPY_AND_ASSIGN(MockTabletCursorEvdev); | 90 DISALLOW_COPY_AND_ASSIGN(MockTabletCursorEvdev); |
93 }; | 91 }; |
94 | 92 |
95 MockTabletEventConverterEvdev::MockTabletEventConverterEvdev( | 93 MockTabletEventConverterEvdev::MockTabletEventConverterEvdev( |
96 int fd, | 94 int fd, |
97 base::FilePath path, | 95 base::FilePath path, |
98 CursorDelegateEvdev* cursor, | 96 CursorDelegateEvdev* cursor, |
99 const MouseMoveEventDispatchCallback& mouse_move_callback, | 97 DeviceEventDispatcherEvdev* dispatcher) |
100 const MouseButtonEventDispatchCallback& mouse_button_callback) | |
101 : TabletEventConverterEvdev(fd, | 98 : TabletEventConverterEvdev(fd, |
102 path, | 99 path, |
103 1, | 100 1, |
104 INPUT_DEVICE_UNKNOWN, | 101 INPUT_DEVICE_UNKNOWN, |
105 cursor, | 102 cursor, |
106 EventDeviceInfo(), | 103 EventDeviceInfo(), |
107 mouse_move_callback, | 104 dispatcher) { |
108 mouse_button_callback) { | |
109 // Real values taken from Wacom Intuos 4 | 105 // Real values taken from Wacom Intuos 4 |
110 x_abs_min_ = 0; | 106 x_abs_min_ = 0; |
111 x_abs_range_ = 65024; | 107 x_abs_range_ = 65024; |
112 y_abs_min_ = 0; | 108 y_abs_min_ = 0; |
113 y_abs_range_ = 40640; | 109 y_abs_range_ = 40640; |
114 | 110 |
115 int fds[2]; | 111 int fds[2]; |
116 | 112 |
117 if (pipe(fds)) | 113 if (pipe(fds)) |
118 PLOG(FATAL) << "failed pipe"; | 114 PLOG(FATAL) << "failed pipe"; |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 | 178 |
183 cursor_.reset(new ui::MockTabletCursorEvdev()); | 179 cursor_.reset(new ui::MockTabletCursorEvdev()); |
184 device_manager_.reset(new ui::MockDeviceManager); | 180 device_manager_.reset(new ui::MockDeviceManager); |
185 event_factory_.reset(new ui::TestEventFactoryEvdev( | 181 event_factory_.reset(new ui::TestEventFactoryEvdev( |
186 cursor_.get(), device_manager_.get(), | 182 cursor_.get(), device_manager_.get(), |
187 ui::KeyboardLayoutEngineManager::GetKeyboardLayoutEngine(), | 183 ui::KeyboardLayoutEngineManager::GetKeyboardLayoutEngine(), |
188 base::Bind(&TabletEventConverterEvdevTest::DispatchEventForTest, | 184 base::Bind(&TabletEventConverterEvdevTest::DispatchEventForTest, |
189 base::Unretained(this)))); | 185 base::Unretained(this)))); |
190 device_.reset(new ui::MockTabletEventConverterEvdev( | 186 device_.reset(new ui::MockTabletEventConverterEvdev( |
191 events_in_, base::FilePath(kTestDevicePath), cursor_.get(), | 187 events_in_, base::FilePath(kTestDevicePath), cursor_.get(), |
192 base::Bind(&ui::EventFactoryEvdev::PostMouseMoveEvent, | 188 event_factory_.get())); |
193 base::Unretained(event_factory_.get())), | |
194 base::Bind(&ui::EventFactoryEvdev::PostMouseButtonEvent, | |
195 base::Unretained(event_factory_.get())))); | |
196 } | 189 } |
197 | 190 |
198 void TearDown() override { | 191 void TearDown() override { |
199 cursor_.reset(); | 192 cursor_.reset(); |
200 device_.reset(); | 193 device_.reset(); |
201 } | 194 } |
202 | 195 |
203 ui::MockTabletEventConverterEvdev* device() { return device_.get(); } | 196 ui::MockTabletEventConverterEvdev* device() { return device_.get(); } |
204 ui::CursorDelegateEvdev* cursor() { return cursor_.get(); } | 197 ui::CursorDelegateEvdev* cursor() { return cursor_.get(); } |
205 | 198 |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
470 | 463 |
471 struct input_event mock_kernel_queue[] = { | 464 struct input_event mock_kernel_queue[] = { |
472 {{0, 0}, EV_ABS, ABS_X, 0}, | 465 {{0, 0}, EV_ABS, ABS_X, 0}, |
473 {{0, 0}, EV_ABS, ABS_Y, 0}, | 466 {{0, 0}, EV_ABS, ABS_Y, 0}, |
474 {{0, 0}, EV_SYN, SYN_REPORT, 0}, | 467 {{0, 0}, EV_SYN, SYN_REPORT, 0}, |
475 }; | 468 }; |
476 | 469 |
477 dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue)); | 470 dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue)); |
478 EXPECT_EQ(0u, size()); | 471 EXPECT_EQ(0u, size()); |
479 } | 472 } |
OLD | NEW |