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 28 matching lines...) Expand all Loading... |
39 class MockTouchEventConverterEvdev : public TouchEventConverterEvdev { | 39 class MockTouchEventConverterEvdev : public TouchEventConverterEvdev { |
40 public: | 40 public: |
41 MockTouchEventConverterEvdev(int fd, base::FilePath path); | 41 MockTouchEventConverterEvdev(int fd, base::FilePath path); |
42 virtual ~MockTouchEventConverterEvdev() {}; | 42 virtual ~MockTouchEventConverterEvdev() {}; |
43 | 43 |
44 void ConfigureReadMock(struct input_event* queue, | 44 void ConfigureReadMock(struct input_event* queue, |
45 long read_this_many, | 45 long read_this_many, |
46 long queue_index); | 46 long queue_index); |
47 | 47 |
48 unsigned size() { return dispatched_events_.size(); } | 48 unsigned size() { return dispatched_events_.size(); } |
49 TouchEvent* event(unsigned index) { return dispatched_events_[index]; } | 49 TouchEvent* event(unsigned index) { |
| 50 DCHECK_GT(dispatched_events_.size(), index); |
| 51 Event* ev = dispatched_events_[index]; |
| 52 DCHECK(ev->IsTouchEvent()); |
| 53 return static_cast<TouchEvent*>(ev); |
| 54 } |
50 | 55 |
51 // Actually dispatch the event reader code. | 56 // Actually dispatch the event reader code. |
52 void ReadNow() { | 57 void ReadNow() { |
53 OnFileCanReadWithoutBlocking(read_pipe_); | 58 OnFileCanReadWithoutBlocking(read_pipe_); |
54 base::RunLoop().RunUntilIdle(); | 59 base::RunLoop().RunUntilIdle(); |
55 } | 60 } |
56 | 61 |
57 void DispatchCallback(Event* event) { | 62 void DispatchCallback(scoped_ptr<Event> event) { |
58 dispatched_events_.push_back( | 63 dispatched_events_.push_back(event.release()); |
59 new TouchEvent(*static_cast<TouchEvent*>(event))); | |
60 } | 64 } |
61 | 65 |
62 virtual bool Reinitialize() override { return true; } | 66 virtual bool Reinitialize() override { return true; } |
63 | 67 |
64 private: | 68 private: |
65 int read_pipe_; | 69 int read_pipe_; |
66 int write_pipe_; | 70 int write_pipe_; |
67 | 71 |
68 ScopedVector<TouchEvent> dispatched_events_; | 72 ScopedVector<Event> dispatched_events_; |
69 | 73 |
70 DISALLOW_COPY_AND_ASSIGN(MockTouchEventConverterEvdev); | 74 DISALLOW_COPY_AND_ASSIGN(MockTouchEventConverterEvdev); |
71 }; | 75 }; |
72 | 76 |
73 MockTouchEventConverterEvdev::MockTouchEventConverterEvdev(int fd, | 77 MockTouchEventConverterEvdev::MockTouchEventConverterEvdev(int fd, |
74 base::FilePath path) | 78 base::FilePath path) |
75 : TouchEventConverterEvdev( | 79 : TouchEventConverterEvdev( |
76 fd, | 80 fd, |
77 path, | 81 path, |
78 1, | 82 1, |
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
520 EXPECT_EQ(0, ev0->touch_id()); | 524 EXPECT_EQ(0, ev0->touch_id()); |
521 EXPECT_EQ(999, ev0->x()); | 525 EXPECT_EQ(999, ev0->x()); |
522 EXPECT_EQ(888, ev0->y()); | 526 EXPECT_EQ(888, ev0->y()); |
523 EXPECT_FLOAT_EQ(0.8333333f, ev0->force()); | 527 EXPECT_FLOAT_EQ(0.8333333f, ev0->force()); |
524 | 528 |
525 EXPECT_EQ(1, ev1->touch_id()); | 529 EXPECT_EQ(1, ev1->touch_id()); |
526 EXPECT_EQ(777, ev1->x()); | 530 EXPECT_EQ(777, ev1->x()); |
527 EXPECT_EQ(666, ev1->y()); | 531 EXPECT_EQ(666, ev1->y()); |
528 EXPECT_FLOAT_EQ(0.4666666f, ev1->force()); | 532 EXPECT_FLOAT_EQ(0.4666666f, ev1->force()); |
529 } | 533 } |
OLD | NEW |