diff options
author | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-26 06:08:55 +0000 |
---|---|---|
committer | sadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-26 06:08:55 +0000 |
commit | 1011af0da7cc096a55b3175b927ebd113eb81994 (patch) | |
tree | 9114b24df26465a6e9c0105951f06884400bc136 /ash | |
parent | b09106fc163bf0933f072b543ab6f2e2f52e988a (diff) | |
download | chromium_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.cc | 18 | ||||
-rw-r--r-- | ash/accelerators/nested_dispatcher_controller_unittest.cc | 16 | ||||
-rw-r--r-- | ash/wm/sticky_keys_unittest.cc | 53 |
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); }; |