summaryrefslogtreecommitdiffstats
path: root/ash
diff options
context:
space:
mode:
authorsadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-26 06:08:55 +0000
committersadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-26 06:08:55 +0000
commit1011af0da7cc096a55b3175b927ebd113eb81994 (patch)
tree9114b24df26465a6e9c0105951f06884400bc136 /ash
parentb09106fc163bf0933f072b543ab6f2e2f52e988a (diff)
downloadchromium_src-1011af0da7cc096a55b3175b927ebd113eb81994.zip
chromium_src-1011af0da7cc096a55b3175b927ebd113eb81994.tar.gz
chromium_src-1011af0da7cc096a55b3175b927ebd113eb81994.tar.bz2
x11: Clean up XEvent construction code for tests.
There were subtle differences between the event construction code for various types. So put them all in one place to avoid confusion. The main changes in this patch are in events_x_utils, where various Init*EventForTest() functions get replaced by corresponding ScopedXI2Event::Init*Event() methods. This makes it easier to manage the lifetime of the created events. BUG=none R=jochen@chromium.org, sky@chromium.org Previously committed in 237199, and reverted in 237246 because it introduced an uninitialized memory read. Review URL: https://codereview.chromium.org/82763010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237275 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r--ash/accelerators/accelerator_controller_unittest.cc18
-rw-r--r--ash/accelerators/nested_dispatcher_controller_unittest.cc16
-rw-r--r--ash/wm/sticky_keys_unittest.cc53
3 files changed, 29 insertions, 58 deletions
diff --git a/ash/accelerators/accelerator_controller_unittest.cc b/ash/accelerators/accelerator_controller_unittest.cc
index 37ab713..ce3476b 100644
--- a/ash/accelerators/accelerator_controller_unittest.cc
+++ b/ash/accelerators/accelerator_controller_unittest.cc
@@ -665,24 +665,18 @@ TEST_F(AcceleratorControllerTest, MAYBE_ProcessOnce) {
EXPECT_FALSE(dispatcher->AsRootWindowHostDelegate()->OnHostKeyEvent(
&key_event3));
#elif defined(USE_X11)
- XEvent key_event;
- ui::InitXKeyEventForTesting(ui::ET_KEY_PRESSED,
- ui::VKEY_A,
- 0,
- &key_event);
- ui::TranslatedKeyEvent key_event1(&key_event, false);
+ ui::ScopedXI2Event key_event;
+ key_event.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_A, 0);
+ ui::TranslatedKeyEvent key_event1(key_event, false);
EXPECT_TRUE(dispatcher->AsRootWindowHostDelegate()->OnHostKeyEvent(
&key_event1));
- ui::TranslatedKeyEvent key_event2(&key_event, true);
+ ui::TranslatedKeyEvent key_event2(key_event, true);
EXPECT_FALSE(dispatcher->AsRootWindowHostDelegate()->OnHostKeyEvent(
&key_event2));
- ui::InitXKeyEventForTesting(ui::ET_KEY_RELEASED,
- ui::VKEY_A,
- 0,
- &key_event);
- ui::TranslatedKeyEvent key_event3(&key_event, false);
+ key_event.InitKeyEvent(ui::ET_KEY_RELEASED, ui::VKEY_A, 0);
+ ui::TranslatedKeyEvent key_event3(key_event, false);
EXPECT_FALSE(dispatcher->AsRootWindowHostDelegate()->OnHostKeyEvent(
&key_event3));
#endif
diff --git a/ash/accelerators/nested_dispatcher_controller_unittest.cc b/ash/accelerators/nested_dispatcher_controller_unittest.cc
index 56440ee..445c29c 100644
--- a/ash/accelerators/nested_dispatcher_controller_unittest.cc
+++ b/ash/accelerators/nested_dispatcher_controller_unittest.cc
@@ -84,19 +84,13 @@ void DispatchKeyReleaseA() {
MSG native_event_up = { NULL, WM_KEYUP, ui::VKEY_A, 0 };
ash::Shell::GetPrimaryRootWindow()->host()->PostNativeEvent(native_event_up);
#elif defined(USE_X11)
- XEvent native_event;
- ui::InitXKeyEventForTesting(ui::ET_KEY_PRESSED,
- ui::VKEY_A,
- 0,
- &native_event);
+ ui::ScopedXI2Event native_event;
+ native_event.InitKeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_A, 0);
aura::WindowEventDispatcher* dispatcher =
ash::Shell::GetPrimaryRootWindow()->GetDispatcher();
- dispatcher->host()->PostNativeEvent(&native_event);
- ui::InitXKeyEventForTesting(ui::ET_KEY_RELEASED,
- ui::VKEY_A,
- 0,
- &native_event);
- dispatcher->host()->PostNativeEvent(&native_event);
+ dispatcher->host()->PostNativeEvent(native_event);
+ native_event.InitKeyEvent(ui::ET_KEY_RELEASED, ui::VKEY_A, 0);
+ dispatcher->host()->PostNativeEvent(native_event);
#endif
// Send noop event to signal dispatcher to exit.
diff --git a/ash/wm/sticky_keys_unittest.cc b/ash/wm/sticky_keys_unittest.cc
index e05b05e..e8e8975 100644
--- a/ash/wm/sticky_keys_unittest.cc
+++ b/ash/wm/sticky_keys_unittest.cc
@@ -161,57 +161,43 @@ class StickyKeysTest : public test::AshTestBase,
}
}
- // Generates keyboard event.
ui::KeyEvent* GenerateKey(bool is_key_press, ui::KeyboardCode code) {
- XEvent* xev = new XEvent();
- ui::InitXKeyEventForTesting(
+ scoped_xevent_.InitKeyEvent(
is_key_press ? ui::ET_KEY_PRESSED : ui::ET_KEY_RELEASED,
code,
- 0,
- xev);
- xevs_.push_back(xev);
- ui::KeyEvent* event = new ui::KeyEvent(xev, false);
+ 0);
+ ui::KeyEvent* event = new ui::KeyEvent(scoped_xevent_, false);
ui::Event::DispatcherApi dispatcher(event);
dispatcher.set_target(target_);
return event;
}
ui::MouseEvent* GenerateMouseEvent(bool is_button_press) {
- XEvent* xev = new XEvent();
- ui::InitXButtonEventForTesting(
- is_button_press ? ui::ET_MOUSE_PRESSED : ui::ET_MOUSE_RELEASED,
- 0,
- xev);
- xevs_.push_back(xev);
- ui::MouseEvent* event = new ui::MouseEvent(xev);
+ scoped_xevent_.InitButtonEvent(
+ is_button_press ? ui::ET_MOUSE_PRESSED : ui::ET_MOUSE_RELEASED, 0);
+ ui::MouseEvent* event = new ui::MouseEvent(scoped_xevent_);
ui::Event::DispatcherApi dispatcher(event);
dispatcher.set_target(target_);
return event;
}
ui::MouseWheelEvent* GenerateMouseWheelEvent(int wheel_delta) {
- EXPECT_FALSE(wheel_delta == 0);
- XEvent* xev = new XEvent();
- ui::InitXMouseWheelEventForTesting(wheel_delta, 0, xev);
- xevs_.push_back(xev);
- ui::MouseWheelEvent* event = new ui::MouseWheelEvent(xev);
+ EXPECT_NE(0, wheel_delta);
+ scoped_xevent_.InitMouseWheelEvent(wheel_delta, 0);
+ ui::MouseWheelEvent* event = new ui::MouseWheelEvent(scoped_xevent_);
ui::Event::DispatcherApi dispatcher(event);
dispatcher.set_target(target_);
return event;
}
ui::ScrollEvent* GenerateScrollEvent(int scroll_delta) {
- EXPECT_FALSE(scroll_delta == 0);
- XEvent* xev = ui::CreateScrollEventForTest(
- kScrollDeviceId, // deviceid
- 0, // x_offset
- scroll_delta, // y_offset
- 0, // x_offset_ordinal
- scroll_delta, // y_offset_ordinal
- 2); // finger_count
- xi2_evs_.push_back(new ui::ScopedXI2Event(xev));
-
- ui::ScrollEvent* event = new ui::ScrollEvent(xev);
+ scoped_xevent_.InitScrollEvent(kScrollDeviceId, // deviceid
+ 0, // x_offset
+ scroll_delta, // y_offset
+ 0, // x_offset_ordinal
+ scroll_delta, // y_offset_ordinal
+ 2); // finger_count
+ ui::ScrollEvent* event = new ui::ScrollEvent(scoped_xevent_);
ui::Event::DispatcherApi dispatcher(event);
dispatcher.set_target(target_);
return event;
@@ -265,12 +251,9 @@ class StickyKeysTest : public test::AshTestBase,
aura::Window* target_;
// The root window of |target_|. Not owned.
aura::Window* root_window_;
- // Stores all generated XEvents.
- ScopedVector<XEvent> xevs_;
- // Stores all generated XInput2 XEvents. We use a scoped wrapper class here
- // to properly delete these events.
- ScopedVector<ui::ScopedXI2Event> xi2_evs_;
+ // Used to construct the various X events.
+ ui::ScopedXI2Event scoped_xevent_;
DISALLOW_COPY_AND_ASSIGN(StickyKeysTest);
};