| Index: ui/events/ozone/evdev/key_event_converter_evdev_unittest.cc
|
| diff --git a/ui/events/ozone/evdev/key_event_converter_evdev_unittest.cc b/ui/events/ozone/evdev/key_event_converter_evdev_unittest.cc
|
| index a144bce1ffeaafbb945a73bea93b9b647cb20d7b..fb5a90ae8ef6860cbd0016755a996ba29b98a602 100644
|
| --- a/ui/events/ozone/evdev/key_event_converter_evdev_unittest.cc
|
| +++ b/ui/events/ozone/evdev/key_event_converter_evdev_unittest.cc
|
| @@ -12,6 +12,7 @@
|
| #include "ui/events/event.h"
|
| #include "ui/events/keycodes/keyboard_codes.h"
|
| #include "ui/events/ozone/evdev/key_event_converter_evdev.h"
|
| +#include "ui/events/ozone/evdev/keyboard_evdev.h"
|
|
|
| namespace ui {
|
|
|
| @@ -19,36 +20,19 @@ const char kTestDevicePath[] = "/dev/input/test-device";
|
|
|
| class MockKeyEventConverterEvdev : public KeyEventConverterEvdev {
|
| public:
|
| - MockKeyEventConverterEvdev(int fd, EventModifiersEvdev* modifiers)
|
| - : KeyEventConverterEvdev(
|
| - fd,
|
| - base::FilePath(kTestDevicePath),
|
| - 1,
|
| - modifiers,
|
| - base::Bind(&MockKeyEventConverterEvdev::DispatchEventForTest,
|
| - base::Unretained(this))) {
|
| + MockKeyEventConverterEvdev(int fd, KeyboardEvdev* keyboard)
|
| + : KeyEventConverterEvdev(fd,
|
| + base::FilePath(kTestDevicePath),
|
| + 1,
|
| + keyboard) {
|
| Start();
|
| }
|
| virtual ~MockKeyEventConverterEvdev() {};
|
|
|
| - unsigned size() { return dispatched_events_.size(); }
|
| - KeyEvent* event(unsigned index) {
|
| - DCHECK_GT(dispatched_events_.size(), index);
|
| - return dispatched_events_[index];
|
| - }
|
| -
|
| - void DispatchEventForTest(Event* event);
|
| -
|
| private:
|
| - ScopedVector<KeyEvent> dispatched_events_;
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(MockKeyEventConverterEvdev);
|
| };
|
|
|
| -void MockKeyEventConverterEvdev::DispatchEventForTest(Event* event) {
|
| - dispatched_events_.push_back(new KeyEvent(*static_cast<KeyEvent*>(event)));
|
| -}
|
| -
|
| } // namespace ui
|
|
|
| // Test fixture.
|
| @@ -66,24 +50,44 @@ class KeyEventConverterEvdevTest : public testing::Test {
|
| events_in_ = evdev_io[0];
|
| events_out_ = evdev_io[1];
|
|
|
| - modifiers_ = new ui::EventModifiersEvdev();
|
| - device_ = new ui::MockKeyEventConverterEvdev(events_in_, modifiers_);
|
| + modifiers_.reset(new ui::EventModifiersEvdev());
|
| + keyboard_.reset(new ui::KeyboardEvdev(
|
| + modifiers_.get(),
|
| + base::Bind(&KeyEventConverterEvdevTest::DispatchEventForTest,
|
| + base::Unretained(this))));
|
| + device_.reset(
|
| + new ui::MockKeyEventConverterEvdev(events_in_, keyboard_.get()));
|
| }
|
| virtual void TearDown() override {
|
| - delete device_;
|
| - delete modifiers_;
|
| + device_.reset();
|
| + keyboard_.reset();
|
| + modifiers_.reset();
|
| close(events_in_);
|
| close(events_out_);
|
| }
|
|
|
| - ui::MockKeyEventConverterEvdev* device() { return device_; }
|
| - ui::EventModifiersEvdev* modifiers() { return modifiers_; }
|
| + ui::MockKeyEventConverterEvdev* device() { return device_.get(); }
|
| + ui::EventModifiersEvdev* modifiers() { return modifiers_.get(); }
|
| +
|
| + unsigned size() { return dispatched_events_.size(); }
|
| + ui::KeyEvent* dispatched_event(unsigned index) {
|
| + DCHECK_GT(dispatched_events_.size(), index);
|
| + return dispatched_events_[index];
|
| + }
|
|
|
| private:
|
| + void DispatchEventForTest(ui::Event* event) {
|
| + dispatched_events_.push_back(
|
| + new ui::KeyEvent(*static_cast<ui::KeyEvent*>(event)));
|
| + }
|
| +
|
| base::MessageLoopForUI ui_loop_;
|
|
|
| - ui::EventModifiersEvdev* modifiers_;
|
| - ui::MockKeyEventConverterEvdev* device_;
|
| + scoped_ptr<ui::EventModifiersEvdev> modifiers_;
|
| + scoped_ptr<ui::KeyboardEvdev> keyboard_;
|
| + scoped_ptr<ui::MockKeyEventConverterEvdev> device_;
|
| +
|
| + ScopedVector<ui::KeyEvent> dispatched_events_;
|
|
|
| int events_out_;
|
| int events_in_;
|
| @@ -105,16 +109,16 @@ TEST_F(KeyEventConverterEvdevTest, KeyPress) {
|
| };
|
|
|
| dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue));
|
| - EXPECT_EQ(2u, dev->size());
|
| + EXPECT_EQ(2u, size());
|
|
|
| ui::KeyEvent* event;
|
|
|
| - event = dev->event(0);
|
| + event = dispatched_event(0);
|
| EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
|
| EXPECT_EQ(ui::VKEY_BACK, event->key_code());
|
| EXPECT_EQ(0, event->flags());
|
|
|
| - event = dev->event(1);
|
| + event = dispatched_event(1);
|
| EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
|
| EXPECT_EQ(ui::VKEY_BACK, event->key_code());
|
| EXPECT_EQ(0, event->flags());
|
| @@ -142,26 +146,26 @@ TEST_F(KeyEventConverterEvdevTest, KeyRepeat) {
|
| };
|
|
|
| dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue));
|
| - EXPECT_EQ(4u, dev->size());
|
| + EXPECT_EQ(4u, size());
|
|
|
| ui::KeyEvent* event;
|
|
|
| - event = dev->event(0);
|
| + event = dispatched_event(0);
|
| EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
|
| EXPECT_EQ(ui::VKEY_BACK, event->key_code());
|
| EXPECT_EQ(0, event->flags());
|
|
|
| - event = dev->event(1);
|
| + event = dispatched_event(1);
|
| EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
|
| EXPECT_EQ(ui::VKEY_BACK, event->key_code());
|
| EXPECT_EQ(0, event->flags());
|
|
|
| - event = dev->event(2);
|
| + event = dispatched_event(2);
|
| EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
|
| EXPECT_EQ(ui::VKEY_BACK, event->key_code());
|
| EXPECT_EQ(0, event->flags());
|
|
|
| - event = dev->event(3);
|
| + event = dispatched_event(3);
|
| EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
|
| EXPECT_EQ(ui::VKEY_BACK, event->key_code());
|
| EXPECT_EQ(0, event->flags());
|
| @@ -170,7 +174,7 @@ TEST_F(KeyEventConverterEvdevTest, KeyRepeat) {
|
| TEST_F(KeyEventConverterEvdevTest, NoEvents) {
|
| ui::MockKeyEventConverterEvdev* dev = device();
|
| dev->ProcessEvents(NULL, 0);
|
| - EXPECT_EQ(0u, dev->size());
|
| + EXPECT_EQ(0u, size());
|
| }
|
|
|
| TEST_F(KeyEventConverterEvdevTest, KeyWithModifier) {
|
| @@ -195,26 +199,26 @@ TEST_F(KeyEventConverterEvdevTest, KeyWithModifier) {
|
| };
|
|
|
| dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue));
|
| - EXPECT_EQ(4u, dev->size());
|
| + EXPECT_EQ(4u, size());
|
|
|
| ui::KeyEvent* event;
|
|
|
| - event = dev->event(0);
|
| + event = dispatched_event(0);
|
| EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
|
| EXPECT_EQ(ui::VKEY_SHIFT, event->key_code());
|
| EXPECT_EQ(ui::EF_SHIFT_DOWN, event->flags());
|
|
|
| - event = dev->event(1);
|
| + event = dispatched_event(1);
|
| EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
|
| EXPECT_EQ(ui::VKEY_A, event->key_code());
|
| EXPECT_EQ(ui::EF_SHIFT_DOWN, event->flags());
|
|
|
| - event = dev->event(2);
|
| + event = dispatched_event(2);
|
| EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
|
| EXPECT_EQ(ui::VKEY_A, event->key_code());
|
| EXPECT_EQ(ui::EF_SHIFT_DOWN, event->flags());
|
|
|
| - event = dev->event(3);
|
| + event = dispatched_event(3);
|
| EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
|
| EXPECT_EQ(ui::VKEY_SHIFT, event->key_code());
|
| EXPECT_EQ(0, event->flags());
|
| @@ -250,36 +254,36 @@ TEST_F(KeyEventConverterEvdevTest, KeyWithDuplicateModifier) {
|
| };
|
|
|
| dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue));
|
| - EXPECT_EQ(6u, dev->size());
|
| + EXPECT_EQ(6u, size());
|
|
|
| ui::KeyEvent* event;
|
|
|
| - event = dev->event(0);
|
| + event = dispatched_event(0);
|
| EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
|
| EXPECT_EQ(ui::VKEY_CONTROL, event->key_code());
|
| EXPECT_EQ(ui::EF_CONTROL_DOWN, event->flags());
|
|
|
| - event = dev->event(1);
|
| + event = dispatched_event(1);
|
| EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
|
| EXPECT_EQ(ui::VKEY_CONTROL, event->key_code());
|
| EXPECT_EQ(ui::EF_CONTROL_DOWN, event->flags());
|
|
|
| - event = dev->event(2);
|
| + event = dispatched_event(2);
|
| EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
|
| EXPECT_EQ(ui::VKEY_Z, event->key_code());
|
| EXPECT_EQ(ui::EF_CONTROL_DOWN, event->flags());
|
|
|
| - event = dev->event(3);
|
| + event = dispatched_event(3);
|
| EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
|
| EXPECT_EQ(ui::VKEY_Z, event->key_code());
|
| EXPECT_EQ(ui::EF_CONTROL_DOWN, event->flags());
|
|
|
| - event = dev->event(4);
|
| + event = dispatched_event(4);
|
| EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
|
| EXPECT_EQ(ui::VKEY_CONTROL, event->key_code());
|
| EXPECT_EQ(ui::EF_CONTROL_DOWN, event->flags());
|
|
|
| - event = dev->event(5);
|
| + event = dispatched_event(5);
|
| EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
|
| EXPECT_EQ(ui::VKEY_CONTROL, event->key_code());
|
| EXPECT_EQ(0, event->flags());
|
| @@ -315,36 +319,36 @@ TEST_F(KeyEventConverterEvdevTest, KeyWithLock) {
|
| };
|
|
|
| dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue));
|
| - EXPECT_EQ(6u, dev->size());
|
| + EXPECT_EQ(6u, size());
|
|
|
| ui::KeyEvent* event;
|
|
|
| - event = dev->event(0);
|
| + event = dispatched_event(0);
|
| EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
|
| EXPECT_EQ(ui::VKEY_CAPITAL, event->key_code());
|
| EXPECT_EQ(ui::EF_CAPS_LOCK_DOWN, event->flags());
|
|
|
| - event = dev->event(1);
|
| + event = dispatched_event(1);
|
| EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
|
| EXPECT_EQ(ui::VKEY_CAPITAL, event->key_code());
|
| EXPECT_EQ(ui::EF_CAPS_LOCK_DOWN, event->flags());
|
|
|
| - event = dev->event(2);
|
| + event = dispatched_event(2);
|
| EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
|
| EXPECT_EQ(ui::VKEY_Q, event->key_code());
|
| EXPECT_EQ(ui::EF_CAPS_LOCK_DOWN, event->flags());
|
|
|
| - event = dev->event(3);
|
| + event = dispatched_event(3);
|
| EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
|
| EXPECT_EQ(ui::VKEY_Q, event->key_code());
|
| EXPECT_EQ(ui::EF_CAPS_LOCK_DOWN, event->flags());
|
|
|
| - event = dev->event(4);
|
| + event = dispatched_event(4);
|
| EXPECT_EQ(ui::ET_KEY_PRESSED, event->type());
|
| EXPECT_EQ(ui::VKEY_CAPITAL, event->key_code());
|
| EXPECT_EQ(0, event->flags());
|
|
|
| - event = dev->event(5);
|
| + event = dispatched_event(5);
|
| EXPECT_EQ(ui::ET_KEY_RELEASED, event->type());
|
| EXPECT_EQ(ui::VKEY_CAPITAL, event->key_code());
|
| EXPECT_EQ(0, event->flags());
|
|
|