1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef UI_EVENTS_TEST_COCOA_TEST_EVENT_UTILS_H_ 6 #define UI_EVENTS_TEST_COCOA_TEST_EVENT_UTILS_H_ 7 8 #include <utility> 9 10 #import <objc/objc-class.h> 11 12 #include "base/basictypes.h" 13 14 namespace cocoa_test_event_utils { 15 16 // Create synthetic mouse events for testing. Currently these are very 17 // basic, flesh out as needed. Points are all in window coordinates; 18 // where the window is not specified, coordinate system is undefined 19 // (but will be repeated when the event is queried). 20 NSEvent* MouseEventWithType(NSEventType type, NSUInteger modifiers); 21 NSEvent* MouseEventAtPoint(NSPoint point, NSEventType type, 22 NSUInteger modifiers); 23 NSEvent* LeftMouseDownAtPoint(NSPoint point); 24 NSEvent* LeftMouseDownAtPointInWindow(NSPoint point, NSWindow* window); 25 NSEvent* RightMouseDownAtPoint(NSPoint point); 26 NSEvent* RightMouseDownAtPointInWindow(NSPoint point, NSWindow* window); 27 28 // Return a mouse down and an up event with the given |clickCount| at 29 // |view|'s midpoint. 30 std::pair<NSEvent*, NSEvent*> MouseClickInView(NSView* view, 31 NSUInteger clickCount); 32 33 // Returns a key event with the given character. 34 NSEvent* KeyEventWithCharacter(unichar c); 35 36 // Returns a key event with the given type and modifier flags. 37 NSEvent* KeyEventWithType(NSEventType event_type, NSUInteger modifiers); 38 39 // Returns a key event with the given key code, type, and modifier flags. 40 NSEvent* KeyEventWithKeyCode(unsigned short key_code, 41 unichar c, 42 NSEventType event_type, 43 NSUInteger modifiers); 44 45 // Returns a mouse enter/exit event with the given type. 46 NSEvent* EnterExitEventWithType(NSEventType event_type); 47 48 // Return an "other" event with the given type. 49 NSEvent* OtherEventWithType(NSEventType event_type); 50 51 } // namespace cocoa_test_event_utils 52 53 #endif // UI_EVENTS_TEST_COCOA_TEST_EVENT_UTILS_H_ 54