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

Unified Diff: ui/events/ozone/evdev/tablet_event_converter_evdev_unittest.cc

Issue 867803004: [PATCH 4/11] ozone: evdev: Move EventModifiersEvdev usage to EventFactoryEvdev (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update per comments on previous patches Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/events/ozone/evdev/tablet_event_converter_evdev.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/events/ozone/evdev/tablet_event_converter_evdev_unittest.cc
diff --git a/ui/events/ozone/evdev/tablet_event_converter_evdev_unittest.cc b/ui/events/ozone/evdev/tablet_event_converter_evdev_unittest.cc
index 8451ad24c6a0441ec214daf04d64b79d9ebca345..5e04057b3fee8ad6954acdfb1fa67ee34b687221 100644
--- a/ui/events/ozone/evdev/tablet_event_converter_evdev_unittest.cc
+++ b/ui/events/ozone/evdev/tablet_event_converter_evdev_unittest.cc
@@ -17,7 +17,10 @@
#include "base/time/time.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/events/event.h"
+#include "ui/events/ozone/device/device_manager.h"
+#include "ui/events/ozone/evdev/event_factory_evdev.h"
#include "ui/events/ozone/evdev/tablet_event_converter_evdev.h"
+#include "ui/events/ozone/layout/keyboard_layout_engine_manager.h"
#include "ui/events/platform/platform_event_dispatcher.h"
#include "ui/events/platform/platform_event_source.h"
@@ -38,34 +41,24 @@ namespace ui {
class MockTabletEventConverterEvdev : public TabletEventConverterEvdev {
public:
- MockTabletEventConverterEvdev(int fd,
- base::FilePath path,
- EventModifiersEvdev* modifiers,
- CursorDelegateEvdev* cursor);
+ MockTabletEventConverterEvdev(
+ int fd,
+ base::FilePath path,
+ CursorDelegateEvdev* cursor,
+ const MouseMoveEventDispatchCallback& mouse_move_callback,
+ const MouseButtonEventDispatchCallback& mouse_button_callback);
~MockTabletEventConverterEvdev() override {};
void ConfigureReadMock(struct input_event* queue,
long read_this_many,
long queue_index);
- unsigned size() { return dispatched_events_.size(); }
- MouseEvent* event(unsigned index) {
- DCHECK_GT(dispatched_events_.size(), index);
- Event* ev = dispatched_events_[index];
- DCHECK(ev->IsMouseEvent());
- return static_cast<MouseEvent*>(ev);
- }
-
// Actually dispatch the event reader code.
void ReadNow() {
OnFileCanReadWithoutBlocking(read_pipe_);
base::RunLoop().RunUntilIdle();
}
- void DispatchCallback(scoped_ptr<Event> event) {
- dispatched_events_.push_back(event.release());
- }
-
private:
int read_pipe_;
int write_pipe_;
@@ -102,18 +95,17 @@ class MockTabletCursorEvdev : public CursorDelegateEvdev {
MockTabletEventConverterEvdev::MockTabletEventConverterEvdev(
int fd,
base::FilePath path,
- EventModifiersEvdev* modifiers,
- CursorDelegateEvdev* cursor)
- : TabletEventConverterEvdev(
- fd,
- path,
- 1,
- INPUT_DEVICE_UNKNOWN,
- modifiers,
- cursor,
- EventDeviceInfo(),
- base::Bind(&MockTabletEventConverterEvdev::DispatchCallback,
- base::Unretained(this))) {
+ CursorDelegateEvdev* cursor,
+ const MouseMoveEventDispatchCallback& mouse_move_callback,
+ const MouseButtonEventDispatchCallback& mouse_button_callback)
+ : TabletEventConverterEvdev(fd,
+ path,
+ 1,
+ INPUT_DEVICE_UNKNOWN,
+ cursor,
+ EventDeviceInfo(),
+ mouse_move_callback,
+ mouse_button_callback) {
// Real values taken from Wacom Intuos 4
x_abs_min_ = 0;
x_abs_range_ = 65024;
@@ -143,6 +135,35 @@ void MockTabletEventConverterEvdev::ConfigureReadMock(struct input_event* queue,
<< "write() failed, errno: " << errno;
}
+class MockDeviceManager : public ui::DeviceManager {
+ public:
+ MockDeviceManager() {}
+ ~MockDeviceManager() override {}
+
+ // DeviceManager:
+ void ScanDevices(DeviceEventObserver* observer) override {}
+ void AddObserver(DeviceEventObserver* observer) override {}
+ void RemoveObserver(DeviceEventObserver* observer) override {}
+};
+
+class TestEventFactoryEvdev : public EventFactoryEvdev {
+ public:
+ TestEventFactoryEvdev(CursorDelegateEvdev* cursor,
+ DeviceManager* device_manager,
+ KeyboardLayoutEngine* keyboard_layout_engine,
+ const EventDispatchCallback& callback)
+ : EventFactoryEvdev(cursor, device_manager, keyboard_layout_engine),
+ callback_(callback) {}
+ ~TestEventFactoryEvdev() override {}
+
+ private:
+ void PostUiEvent(scoped_ptr<Event> event) override {
+ callback_.Run(event.Pass());
+ }
+
+ EventDispatchCallback callback_;
+};
+
} // namespace ui
// Test fixture.
@@ -160,26 +181,47 @@ class TabletEventConverterEvdevTest : public testing::Test {
events_out_ = evdev_io[1];
cursor_.reset(new ui::MockTabletCursorEvdev());
- modifiers_.reset(new ui::EventModifiersEvdev());
+ device_manager_.reset(new ui::MockDeviceManager);
+ event_factory_.reset(new ui::TestEventFactoryEvdev(
+ cursor_.get(), device_manager_.get(),
+ ui::KeyboardLayoutEngineManager::GetKeyboardLayoutEngine(),
+ base::Bind(&TabletEventConverterEvdevTest::DispatchEventForTest,
+ base::Unretained(this))));
device_.reset(new ui::MockTabletEventConverterEvdev(
- events_in_, base::FilePath(kTestDevicePath), modifiers_.get(),
- cursor_.get()));
+ events_in_, base::FilePath(kTestDevicePath), cursor_.get(),
+ base::Bind(&ui::EventFactoryEvdev::PostMouseMoveEvent,
+ base::Unretained(event_factory_.get())),
+ base::Bind(&ui::EventFactoryEvdev::PostMouseButtonEvent,
+ base::Unretained(event_factory_.get()))));
}
void TearDown() override {
- modifiers_.reset();
cursor_.reset();
device_.reset();
}
ui::MockTabletEventConverterEvdev* device() { return device_.get(); }
ui::CursorDelegateEvdev* cursor() { return cursor_.get(); }
- ui::EventModifiersEvdev* modifiers() { return modifiers_.get(); }
+
+ unsigned size() { return dispatched_events_.size(); }
+ ui::MouseEvent* dispatched_event(unsigned index) {
+ DCHECK_GT(dispatched_events_.size(), index);
+ ui::Event* ev = dispatched_events_[index];
+ DCHECK(ev->IsMouseEvent());
+ return static_cast<ui::MouseEvent*>(ev);
+ }
+
+ void DispatchEventForTest(scoped_ptr<ui::Event> event) {
+ dispatched_events_.push_back(event.release());
+ }
private:
- scoped_ptr<ui::MockTabletEventConverterEvdev> device_;
scoped_ptr<ui::MockTabletCursorEvdev> cursor_;
- scoped_ptr<ui::EventModifiersEvdev> modifiers_;
+ scoped_ptr<ui::DeviceManager> device_manager_;
+ scoped_ptr<ui::EventFactoryEvdev> event_factory_;
+ scoped_ptr<ui::MockTabletEventConverterEvdev> device_;
+
+ ScopedVector<ui::Event> dispatched_events_;
int events_out_;
int events_in_;
@@ -212,9 +254,9 @@ TEST_F(TabletEventConverterEvdevTest, MoveTopLeft) {
};
dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue));
- EXPECT_EQ(1u, dev->size());
+ EXPECT_EQ(1u, size());
- ui::MouseEvent* event = dev->event(0);
+ ui::MouseEvent* event = dispatched_event(0);
EXPECT_EQ(ui::ET_MOUSE_MOVED, event->type());
EXPECT_LT(cursor()->GetLocation().x(), EPSILON);
@@ -245,9 +287,9 @@ TEST_F(TabletEventConverterEvdevTest, MoveTopRight) {
};
dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue));
- EXPECT_EQ(1u, dev->size());
+ EXPECT_EQ(1u, size());
- ui::MouseEvent* event = dev->event(0);
+ ui::MouseEvent* event = dispatched_event(0);
EXPECT_EQ(ui::ET_MOUSE_MOVED, event->type());
EXPECT_GT(cursor()->GetLocation().x(),
@@ -278,9 +320,9 @@ TEST_F(TabletEventConverterEvdevTest, MoveBottomLeft) {
};
dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue));
- EXPECT_EQ(1u, dev->size());
+ EXPECT_EQ(1u, size());
- ui::MouseEvent* event = dev->event(0);
+ ui::MouseEvent* event = dispatched_event(0);
EXPECT_EQ(ui::ET_MOUSE_MOVED, event->type());
EXPECT_LT(cursor()->GetLocation().x(), EPSILON);
@@ -313,9 +355,9 @@ TEST_F(TabletEventConverterEvdevTest, MoveBottomRight) {
};
dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue));
- EXPECT_EQ(1u, dev->size());
+ EXPECT_EQ(1u, size());
- ui::MouseEvent* event = dev->event(0);
+ ui::MouseEvent* event = dispatched_event(0);
EXPECT_EQ(ui::ET_MOUSE_MOVED, event->type());
EXPECT_GT(cursor()->GetLocation().x(),
@@ -363,14 +405,14 @@ TEST_F(TabletEventConverterEvdevTest, Tap) {
};
dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue));
- EXPECT_EQ(3u, dev->size());
+ EXPECT_EQ(3u, size());
- ui::MouseEvent* event = dev->event(0);
+ ui::MouseEvent* event = dispatched_event(0);
EXPECT_EQ(ui::ET_MOUSE_MOVED, event->type());
- event = dev->event(1);
+ event = dispatched_event(1);
EXPECT_EQ(ui::ET_MOUSE_PRESSED, event->type());
EXPECT_EQ(true, event->IsLeftMouseButton());
- event = dev->event(2);
+ event = dispatched_event(2);
EXPECT_EQ(ui::ET_MOUSE_RELEASED, event->type());
EXPECT_EQ(true, event->IsLeftMouseButton());
}
@@ -410,14 +452,14 @@ TEST_F(TabletEventConverterEvdevTest, StylusButtonPress) {
};
dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue));
- EXPECT_EQ(3u, dev->size());
+ EXPECT_EQ(3u, size());
- ui::MouseEvent* event = dev->event(0);
+ ui::MouseEvent* event = dispatched_event(0);
EXPECT_EQ(ui::ET_MOUSE_MOVED, event->type());
- event = dev->event(1);
+ event = dispatched_event(1);
EXPECT_EQ(ui::ET_MOUSE_PRESSED, event->type());
EXPECT_EQ(true, event->IsRightMouseButton());
- event = dev->event(2);
+ event = dispatched_event(2);
EXPECT_EQ(ui::ET_MOUSE_RELEASED, event->type());
EXPECT_EQ(true, event->IsRightMouseButton());
}
@@ -433,5 +475,5 @@ TEST_F(TabletEventConverterEvdevTest, CheckStylusFiltering) {
};
dev->ProcessEvents(mock_kernel_queue, arraysize(mock_kernel_queue));
- EXPECT_EQ(0u, dev->size());
+ EXPECT_EQ(0u, size());
}
« no previous file with comments | « ui/events/ozone/evdev/tablet_event_converter_evdev.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698