// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_EVENTS_TEST_COCOA_TEST_EVENT_UTILS_H_ #define UI_EVENTS_TEST_COCOA_TEST_EVENT_UTILS_H_ #include #import #include "ui/events/keycodes/dom/dom_key.h" #include "ui/events/keycodes/keyboard_codes.h" namespace cocoa_test_event_utils { // Create synthetic mouse events for testing. Currently these are very // basic, flesh out as needed. Points are all in window coordinates; // where the window is not specified, coordinate system is undefined // (but will be repeated when the event is queried). NSEvent* MouseEventAtPoint(NSPoint point, NSEventType type, NSUInteger modifiers); NSEvent* MouseEventWithType(NSEventType type, NSUInteger modifiers); NSEvent* MouseEventAtPointInWindow(NSPoint point, NSEventType type, NSWindow* window, NSUInteger clickCount); NSEvent* RightMouseDownAtPoint(NSPoint point); NSEvent* RightMouseDownAtPointInWindow(NSPoint point, NSWindow* window); NSEvent* LeftMouseDownAtPoint(NSPoint point); NSEvent* LeftMouseDownAtPointInWindow(NSPoint point, NSWindow* window); // Return a mouse down and an up event with the given |clickCount| at // |view|'s midpoint. std::pair MouseClickInView(NSView* view, NSUInteger clickCount); // Return a right mouse down and an up event with the given |clickCount| at // |view|'s midpoint. std::pair RightMouseClickInView(NSView* view, NSUInteger clickCount); // Returns a key event with the given character. NSEvent* KeyEventWithCharacter(unichar c); // Returns a key event with the given type and modifier flags. NSEvent* KeyEventWithType(NSEventType event_type, NSUInteger modifiers); // Returns a key event with the given key code, type, and modifier flags. NSEvent* KeyEventWithKeyCode(unsigned short key_code, unichar c, NSEventType event_type, NSUInteger modifiers); // Returns a mouse enter event. NSEvent* EnterEvent(); // Returns a mouse exit event. NSEvent* ExitEvent(); // Return an "other" event with the given type. NSEvent* OtherEventWithType(NSEventType event_type); // Time interval since system startup. Tests shouldn't rely on this. NSTimeInterval TimeIntervalSinceSystemStartup(); // Creates a key event in a particular window. NSEvent* SynthesizeKeyEvent(NSWindow* window, bool keyDown, ui::KeyboardCode keycode, NSUInteger flags, ui::DomKey dom_key = ui::DomKey::NONE); } // namespace cocoa_test_event_utils #endif // UI_EVENTS_TEST_COCOA_TEST_EVENT_UTILS_H_