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

Side by Side Diff: chrome/browser/ui/cocoa/event_utils_unittest.mm

Issue 8953037: Aura needs event translation for Mac (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address Nico's comment #5. Created 9 years 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import <objc/objc-class.h> 5 #import <objc/objc-class.h>
6 6
7 #import "chrome/browser/ui/cocoa/cocoa_test_helper.h" 7 #import "chrome/browser/ui/cocoa/cocoa_test_helper.h"
8 #include "chrome/browser/ui/cocoa/event_utils.h" 8 #include "chrome/browser/ui/cocoa/event_utils.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "testing/platform_test.h" 10 #include "testing/platform_test.h"
11 #include "ui/base/events.h" 11 #include "ui/base/events.h"
12 #include "ui/base/test/cocoa_test_event_utils.h" 12 #include "ui/base/test/cocoa_test_event_utils.h"
13 13
14 // We provide a donor class with a specially modified |modifierFlags| 14 // We provide a donor class with a specially modified |modifierFlags|
15 // implementation that we swap with NSEvent's. This is because we can't create a 15 // implementation that we swap with NSEvent's. This is because we can't create a
16 // NSEvent that represents a middle click with modifiers. 16 // NSEvent that represents a middle click with modifiers.
17 @interface TestEvent : NSObject 17 @interface TestEvent : NSObject
18 @end 18 @end
19 @implementation TestEvent 19 @implementation TestEvent
20 - (NSUInteger)modifierFlags { return NSShiftKeyMask; } 20 - (NSUInteger)modifierFlags { return NSShiftKeyMask; }
21 @end 21 @end
22 22
23 namespace { 23 namespace {
24 24
25 class EventUtilsTest : public CocoaTest { 25 class EventUtilsTest : public CocoaTest {
26 }; 26 };
27 27
28 TEST_F(EventUtilsTest, TestWindowOpenDispositionFromNSEvent) { 28 TEST_F(EventUtilsTest, TestWindowOpenDispositionFromNSEvent) {
29 // Left Click = same tab. 29 // Left Click = same tab.
30 NSEvent* me = cocoa_test_event_utils::MakeMouseEvent(NSLeftMouseUp, 0); 30 NSEvent* me = cocoa_test_event_utils::MouseEventWithType(NSLeftMouseUp, 0);
31 EXPECT_EQ(CURRENT_TAB, event_utils::WindowOpenDispositionFromNSEvent(me)); 31 EXPECT_EQ(CURRENT_TAB, event_utils::WindowOpenDispositionFromNSEvent(me));
32 32
33 // Middle Click = new background tab. 33 // Middle Click = new background tab.
34 me = cocoa_test_event_utils::MakeMouseEvent(NSOtherMouseUp, 0); 34 me = cocoa_test_event_utils::MouseEventWithType(NSOtherMouseUp, 0);
35 EXPECT_EQ(NEW_BACKGROUND_TAB, 35 EXPECT_EQ(NEW_BACKGROUND_TAB,
36 event_utils::WindowOpenDispositionFromNSEvent(me)); 36 event_utils::WindowOpenDispositionFromNSEvent(me));
37 37
38 // Shift+Middle Click = new foreground tab. 38 // Shift+Middle Click = new foreground tab.
39 { 39 {
40 ScopedClassSwizzler swizzler([NSEvent class], [TestEvent class], 40 ScopedClassSwizzler swizzler([NSEvent class], [TestEvent class],
41 @selector(modifierFlags)); 41 @selector(modifierFlags));
42 me = cocoa_test_event_utils::MakeMouseEvent(NSOtherMouseUp, NSShiftKeyMask); 42 me = cocoa_test_event_utils::MouseEventWithType(NSOtherMouseUp,
43 NSShiftKeyMask);
43 EXPECT_EQ(NEW_FOREGROUND_TAB, 44 EXPECT_EQ(NEW_FOREGROUND_TAB,
44 event_utils::WindowOpenDispositionFromNSEvent(me)); 45 event_utils::WindowOpenDispositionFromNSEvent(me));
45 } 46 }
46 47
47 // Cmd+Left Click = new background tab. 48 // Cmd+Left Click = new background tab.
48 me = cocoa_test_event_utils::MakeMouseEvent(NSLeftMouseUp, NSCommandKeyMask); 49 me = cocoa_test_event_utils::MouseEventWithType(NSLeftMouseUp,
50 NSCommandKeyMask);
49 EXPECT_EQ(NEW_BACKGROUND_TAB, 51 EXPECT_EQ(NEW_BACKGROUND_TAB,
50 event_utils::WindowOpenDispositionFromNSEvent(me)); 52 event_utils::WindowOpenDispositionFromNSEvent(me));
51 53
52 // Cmd+Shift+Left Click = new foreground tab. 54 // Cmd+Shift+Left Click = new foreground tab.
53 me = cocoa_test_event_utils::MakeMouseEvent(NSLeftMouseUp, 55 me = cocoa_test_event_utils::MouseEventWithType(NSLeftMouseUp,
54 NSCommandKeyMask | 56 NSCommandKeyMask |
55 NSShiftKeyMask); 57 NSShiftKeyMask);
56 EXPECT_EQ(NEW_FOREGROUND_TAB, 58 EXPECT_EQ(NEW_FOREGROUND_TAB,
57 event_utils::WindowOpenDispositionFromNSEvent(me)); 59 event_utils::WindowOpenDispositionFromNSEvent(me));
58 60
59 // Shift+Left Click = new window 61 // Shift+Left Click = new window
60 me = cocoa_test_event_utils::MakeMouseEvent(NSLeftMouseUp, NSShiftKeyMask); 62 me = cocoa_test_event_utils::MouseEventWithType(NSLeftMouseUp,
63 NSShiftKeyMask);
61 EXPECT_EQ(NEW_WINDOW, event_utils::WindowOpenDispositionFromNSEvent(me)); 64 EXPECT_EQ(NEW_WINDOW, event_utils::WindowOpenDispositionFromNSEvent(me));
62 } 65 }
63 66
64 67
65 TEST_F(EventUtilsTest, TestEventFlagsFromNSEvent) { 68 TEST_F(EventUtilsTest, TestEventFlagsFromNSEvent) {
66 // Left click. 69 // Left click.
67 NSEvent* left = cocoa_test_event_utils::MakeMouseEvent(NSLeftMouseUp, 0); 70 NSEvent* left = cocoa_test_event_utils::MouseEventWithType(NSLeftMouseUp, 0);
68 EXPECT_EQ(ui::EF_LEFT_BUTTON_DOWN, 71 EXPECT_EQ(ui::EF_LEFT_BUTTON_DOWN,
69 event_utils::EventFlagsFromNSEvent(left)); 72 event_utils::EventFlagsFromNSEvent(left));
70 73
71 // Right click. 74 // Right click.
72 NSEvent* right = cocoa_test_event_utils::MakeMouseEvent(NSRightMouseUp, 0); 75 NSEvent* right = cocoa_test_event_utils::MouseEventWithType(NSRightMouseUp,
76 0);
73 EXPECT_EQ(ui::EF_RIGHT_BUTTON_DOWN, 77 EXPECT_EQ(ui::EF_RIGHT_BUTTON_DOWN,
74 event_utils::EventFlagsFromNSEvent(right)); 78 event_utils::EventFlagsFromNSEvent(right));
75 79
76 // Middle click. 80 // Middle click.
77 NSEvent* middle = cocoa_test_event_utils::MakeMouseEvent(NSOtherMouseUp, 0); 81 NSEvent* middle = cocoa_test_event_utils::MouseEventWithType(NSOtherMouseUp,
82 0);
78 EXPECT_EQ(ui::EF_MIDDLE_BUTTON_DOWN, 83 EXPECT_EQ(ui::EF_MIDDLE_BUTTON_DOWN,
79 event_utils::EventFlagsFromNSEvent(middle)); 84 event_utils::EventFlagsFromNSEvent(middle));
80 85
81 // Caps + Left 86 // Caps + Left
82 NSEvent* caps = cocoa_test_event_utils::MakeMouseEvent(NSLeftMouseUp, 87 NSEvent* caps =
83 NSAlphaShiftKeyMask); 88 cocoa_test_event_utils::MouseEventWithType(NSLeftMouseUp,
89 NSAlphaShiftKeyMask);
84 EXPECT_EQ(ui::EF_LEFT_BUTTON_DOWN | ui::EF_CAPS_LOCK_DOWN, 90 EXPECT_EQ(ui::EF_LEFT_BUTTON_DOWN | ui::EF_CAPS_LOCK_DOWN,
85 event_utils::EventFlagsFromNSEvent(caps)); 91 event_utils::EventFlagsFromNSEvent(caps));
86 92
87 // Shift + Left 93 // Shift + Left
88 NSEvent* shift = cocoa_test_event_utils::MakeMouseEvent(NSLeftMouseUp, 94 NSEvent* shift = cocoa_test_event_utils::MouseEventWithType(NSLeftMouseUp,
89 NSShiftKeyMask); 95 NSShiftKeyMask);
90 EXPECT_EQ(ui::EF_LEFT_BUTTON_DOWN | ui::EF_SHIFT_DOWN, 96 EXPECT_EQ(ui::EF_LEFT_BUTTON_DOWN | ui::EF_SHIFT_DOWN,
91 event_utils::EventFlagsFromNSEvent(shift)); 97 event_utils::EventFlagsFromNSEvent(shift));
92 98
93 // Ctrl + Left 99 // Ctrl + Left
94 NSEvent* ctrl = cocoa_test_event_utils::MakeMouseEvent(NSLeftMouseUp, 100 NSEvent* ctrl = cocoa_test_event_utils::MouseEventWithType(NSLeftMouseUp,
95 NSControlKeyMask); 101 NSControlKeyMask);
96 EXPECT_EQ(ui::EF_LEFT_BUTTON_DOWN | ui::EF_CONTROL_DOWN, 102 EXPECT_EQ(ui::EF_LEFT_BUTTON_DOWN | ui::EF_CONTROL_DOWN,
97 event_utils::EventFlagsFromNSEvent(ctrl)); 103 event_utils::EventFlagsFromNSEvent(ctrl));
98 104
99 // Alt + Left 105 // Alt + Left
100 NSEvent* alt = cocoa_test_event_utils::MakeMouseEvent(NSLeftMouseUp, 106 NSEvent* alt = cocoa_test_event_utils::MouseEventWithType(NSLeftMouseUp,
101 NSAlternateKeyMask); 107 NSAlternateKeyMask);
102 EXPECT_EQ(ui::EF_LEFT_BUTTON_DOWN | ui::EF_ALT_DOWN, 108 EXPECT_EQ(ui::EF_LEFT_BUTTON_DOWN | ui::EF_ALT_DOWN,
103 event_utils::EventFlagsFromNSEvent(alt)); 109 event_utils::EventFlagsFromNSEvent(alt));
104 110
105 // Cmd + Left 111 // Cmd + Left
106 NSEvent* cmd = cocoa_test_event_utils::MakeMouseEvent(NSLeftMouseUp, 112 NSEvent* cmd = cocoa_test_event_utils::MouseEventWithType(NSLeftMouseUp,
107 NSCommandKeyMask); 113 NSCommandKeyMask);
108 EXPECT_EQ(ui::EF_LEFT_BUTTON_DOWN | ui::EF_COMMAND_DOWN, 114 EXPECT_EQ(ui::EF_LEFT_BUTTON_DOWN | ui::EF_COMMAND_DOWN,
109 event_utils::EventFlagsFromNSEvent(cmd)); 115 event_utils::EventFlagsFromNSEvent(cmd));
110 116
111 // Shift + Ctrl + Left 117 // Shift + Ctrl + Left
112 NSEvent* shiftctrl = cocoa_test_event_utils::MakeMouseEvent(NSLeftMouseUp, 118 NSEvent* shiftctrl =
113 NSShiftKeyMask | 119 cocoa_test_event_utils::MouseEventWithType(NSLeftMouseUp,
114 NSControlKeyMask); 120 NSShiftKeyMask |
121 NSControlKeyMask);
115 EXPECT_EQ(ui::EF_LEFT_BUTTON_DOWN | ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN, 122 EXPECT_EQ(ui::EF_LEFT_BUTTON_DOWN | ui::EF_SHIFT_DOWN | ui::EF_CONTROL_DOWN,
116 event_utils::EventFlagsFromNSEvent(shiftctrl)); 123 event_utils::EventFlagsFromNSEvent(shiftctrl));
117 124
118 // Cmd + Alt + Right 125 // Cmd + Alt + Right
119 NSEvent* cmdalt = cocoa_test_event_utils::MakeMouseEvent(NSLeftMouseUp, 126 NSEvent* cmdalt =
120 NSCommandKeyMask | 127 cocoa_test_event_utils::MouseEventWithType(NSLeftMouseUp,
121 NSAlternateKeyMask); 128 NSCommandKeyMask |
129 NSAlternateKeyMask);
122 EXPECT_EQ(ui::EF_LEFT_BUTTON_DOWN | ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN, 130 EXPECT_EQ(ui::EF_LEFT_BUTTON_DOWN | ui::EF_COMMAND_DOWN | ui::EF_ALT_DOWN,
123 event_utils::EventFlagsFromNSEvent(cmdalt)); 131 event_utils::EventFlagsFromNSEvent(cmdalt));
124 } 132 }
125 133
126 } // namespace 134 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller_unittest.mm ('k') | ui/base/cocoa/events_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698