Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1115)

Side by Side Diff: ui/events/ozone/evdev/key_event_converter_unittest.cc

Issue 133233008: evdev: Move EventConverterOzone ownership from EventFactoryOzone to subclass (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: unbreak events_unittests Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <linux/input.h> 5 #include <linux/input.h>
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/memory/scoped_vector.h" 8 #include "base/memory/scoped_vector.h"
9 #include "base/message_loop/message_loop.h"
9 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
10 #include "ui/events/event.h" 11 #include "ui/events/event.h"
11 #include "ui/events/keycodes/keyboard_codes.h" 12 #include "ui/events/keycodes/keyboard_codes.h"
12 #include "ui/events/ozone/evdev/key_event_converter.h" 13 #include "ui/events/ozone/evdev/key_event_converter.h"
13 14
14 namespace ui { 15 namespace ui {
15 16
16 const int kInvalidFileDescriptor = -1;
17 const char kTestDevicePath[] = "/dev/input/test-device"; 17 const char kTestDevicePath[] = "/dev/input/test-device";
18 18
19 class MockKeyEventConverterEvdev : public KeyEventConverterEvdev { 19 class MockKeyEventConverterEvdev : public KeyEventConverterEvdev {
20 public: 20 public:
21 MockKeyEventConverterEvdev(EventModifiersEvdev* modifiers) 21 MockKeyEventConverterEvdev(int fd, EventModifiersEvdev* modifiers)
22 : KeyEventConverterEvdev(kInvalidFileDescriptor, 22 : KeyEventConverterEvdev(fd, base::FilePath(kTestDevicePath), modifiers) {
23 base::FilePath(kTestDevicePath), 23 }
24 modifiers) {}
25 virtual ~MockKeyEventConverterEvdev() {}; 24 virtual ~MockKeyEventConverterEvdev() {};
26 25
27 unsigned size() { return dispatched_events_.size(); } 26 unsigned size() { return dispatched_events_.size(); }
28 KeyEvent* event(unsigned index) { return dispatched_events_[index]; } 27 KeyEvent* event(unsigned index) {
28 CHECK_GT(dispatched_events_.size(), index);
29 return dispatched_events_[index];
30 }
29 31
30 virtual void DispatchEvent(scoped_ptr<Event> event) OVERRIDE; 32 virtual void DispatchEvent(scoped_ptr<Event> event) OVERRIDE;
31 33
32 private: 34 private:
33 ScopedVector<KeyEvent> dispatched_events_; 35 ScopedVector<KeyEvent> dispatched_events_;
34 36
35 DISALLOW_COPY_AND_ASSIGN(MockKeyEventConverterEvdev); 37 DISALLOW_COPY_AND_ASSIGN(MockKeyEventConverterEvdev);
36 }; 38 };
37 39
38 void MockKeyEventConverterEvdev::DispatchEvent(scoped_ptr<Event> event) { 40 void MockKeyEventConverterEvdev::DispatchEvent(scoped_ptr<Event> event) {
39 dispatched_events_.push_back(static_cast<KeyEvent*>(event.release())); 41 dispatched_events_.push_back(static_cast<KeyEvent*>(event.release()));
40 } 42 }
41 43
42 } // namespace ui 44 } // namespace ui
43 45
44 // Test fixture. 46 // Test fixture.
45 class KeyEventConverterEvdevTest : public testing::Test { 47 class KeyEventConverterEvdevTest : public testing::Test {
46 public: 48 public:
47 KeyEventConverterEvdevTest() {} 49 KeyEventConverterEvdevTest() {}
48 50
49 // Overridden from testing::Test: 51 // Overridden from testing::Test:
50 virtual void SetUp() OVERRIDE { 52 virtual void SetUp() OVERRIDE {
53
54 // Set up pipe to satisfy message pump (unused).
55 int evdev_io[2];
56 if (pipe(evdev_io))
57 PLOG(FATAL) << "failed pipe";
58 events_in_ = evdev_io[0];
59 events_out_ = evdev_io[1];
60
51 modifiers_ = new ui::EventModifiersEvdev(); 61 modifiers_ = new ui::EventModifiersEvdev();
52 device_ = new ui::MockKeyEventConverterEvdev(modifiers_); 62 device_ = new ui::MockKeyEventConverterEvdev(events_in_, modifiers_);
53 } 63 }
54 virtual void TearDown() OVERRIDE { 64 virtual void TearDown() OVERRIDE {
55 delete device_; 65 delete device_;
56 delete modifiers_; 66 delete modifiers_;
67 close(events_in_);
68 close(events_out_);
57 } 69 }
58 70
59 ui::MockKeyEventConverterEvdev* device() { return device_; } 71 ui::MockKeyEventConverterEvdev* device() { return device_; }
60 ui::EventModifiersEvdev* modifiers() { return modifiers_; } 72 ui::EventModifiersEvdev* modifiers() { return modifiers_; }
61 73
62 private: 74 private:
75 base::MessageLoopForUI ui_loop_;
76
63 ui::EventModifiersEvdev* modifiers_; 77 ui::EventModifiersEvdev* modifiers_;
64 ui::MockKeyEventConverterEvdev* device_; 78 ui::MockKeyEventConverterEvdev* device_;
79
80 int events_out_;
81 int events_in_;
82
65 DISALLOW_COPY_AND_ASSIGN(KeyEventConverterEvdevTest); 83 DISALLOW_COPY_AND_ASSIGN(KeyEventConverterEvdevTest);
66 }; 84 };
67 85
68 TEST_F(KeyEventConverterEvdevTest, KeyPress) { 86 TEST_F(KeyEventConverterEvdevTest, KeyPress) {
69 ui::MockKeyEventConverterEvdev* dev = device(); 87 ui::MockKeyEventConverterEvdev* dev = device();
70 88
71 struct input_event mock_kernel_queue[] = { 89 struct input_event mock_kernel_queue[] = {
72 {{0, 0}, EV_MSC, MSC_SCAN, 0x7002a}, 90 {{0, 0}, EV_MSC, MSC_SCAN, 0x7002a},
73 {{0, 0}, EV_KEY, KEY_BACKSPACE, 1}, 91 {{0, 0}, EV_KEY, KEY_BACKSPACE, 1},
74 {{0, 0}, EV_SYN, SYN_REPORT, 0}, 92 {{0, 0}, EV_SYN, SYN_REPORT, 0},
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 event = dev->event(4); 334 event = dev->event(4);
317 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type()); 335 EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
318 EXPECT_EQ(ui::VKEY_CAPITAL, event->key_code()); 336 EXPECT_EQ(ui::VKEY_CAPITAL, event->key_code());
319 EXPECT_EQ(0, event->flags()); 337 EXPECT_EQ(0, event->flags());
320 338
321 event = dev->event(5); 339 event = dev->event(5);
322 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type()); 340 EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
323 EXPECT_EQ(ui::VKEY_CAPITAL, event->key_code()); 341 EXPECT_EQ(ui::VKEY_CAPITAL, event->key_code());
324 EXPECT_EQ(0, event->flags()); 342 EXPECT_EQ(0, event->flags());
325 } 343 }
OLDNEW
« no previous file with comments | « ui/events/ozone/evdev/key_event_converter.cc ('k') | ui/events/ozone/evdev/touch_event_converter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698