Upstream version 7.35.144.0
[platform/framework/web/crosswalk.git] / src / ui / events / cocoa / cocoa_event_utils_unittest.mm
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 #include "ui/events/cocoa/cocoa_event_utils.h"
6
7 #import <objc/objc-class.h>
8
9 #include "testing/gtest/include/gtest/gtest.h"
10 #include "testing/platform_test.h"
11 #include "ui/events/event_constants.h"
12 #include "ui/events/event_utils.h"
13 #import "ui/events/test/cocoa_test_event_utils.h"
14 #import "ui/gfx/test/ui_cocoa_test_helper.h"
15
16 namespace ui {
17
18 namespace {
19
20 class CocoaEventUtilsTest : public CocoaTest {
21 };
22
23 TEST_F(CocoaEventUtilsTest, EventFlagsFromNative) {
24   // Left click.
25   NSEvent* left = cocoa_test_event_utils::MouseEventWithType(NSLeftMouseUp, 0);
26   EXPECT_EQ(EF_LEFT_MOUSE_BUTTON, EventFlagsFromNative(left));
27
28   // Right click.
29   NSEvent* right = cocoa_test_event_utils::MouseEventWithType(NSRightMouseUp,
30                                                               0);
31   EXPECT_EQ(EF_RIGHT_MOUSE_BUTTON, EventFlagsFromNative(right));
32
33   // Middle click.
34   NSEvent* middle = cocoa_test_event_utils::MouseEventWithType(NSOtherMouseUp,
35                                                                0);
36   EXPECT_EQ(EF_MIDDLE_MOUSE_BUTTON, EventFlagsFromNative(middle));
37
38   // Caps + Left
39   NSEvent* caps = cocoa_test_event_utils::MouseEventWithType(
40       NSLeftMouseUp, NSAlphaShiftKeyMask);
41   EXPECT_EQ(EF_LEFT_MOUSE_BUTTON | EF_CAPS_LOCK_DOWN,
42             EventFlagsFromNative(caps));
43
44   // Shift + Left
45   NSEvent* shift = cocoa_test_event_utils::MouseEventWithType(NSLeftMouseUp,
46                                                               NSShiftKeyMask);
47   EXPECT_EQ(EF_LEFT_MOUSE_BUTTON | EF_SHIFT_DOWN, EventFlagsFromNative(shift));
48
49   // Ctrl + Left
50   NSEvent* ctrl = cocoa_test_event_utils::MouseEventWithType(NSLeftMouseUp,
51                                                              NSControlKeyMask);
52   EXPECT_EQ(EF_LEFT_MOUSE_BUTTON | EF_CONTROL_DOWN, EventFlagsFromNative(ctrl));
53
54   // Alt + Left
55   NSEvent* alt = cocoa_test_event_utils::MouseEventWithType(NSLeftMouseUp,
56                                                             NSAlternateKeyMask);
57   EXPECT_EQ(EF_LEFT_MOUSE_BUTTON | EF_ALT_DOWN, EventFlagsFromNative(alt));
58
59   // Cmd + Left
60   NSEvent* cmd = cocoa_test_event_utils::MouseEventWithType(NSLeftMouseUp,
61                                                             NSCommandKeyMask);
62   EXPECT_EQ(EF_LEFT_MOUSE_BUTTON | EF_COMMAND_DOWN, EventFlagsFromNative(cmd));
63
64   // Shift + Ctrl + Left
65   NSEvent* shiftctrl = cocoa_test_event_utils::MouseEventWithType(
66       NSLeftMouseUp, NSShiftKeyMask | NSControlKeyMask);
67   EXPECT_EQ(EF_LEFT_MOUSE_BUTTON | EF_SHIFT_DOWN | EF_CONTROL_DOWN,
68             EventFlagsFromNative(shiftctrl));
69
70   // Cmd + Alt + Right
71   NSEvent* cmdalt = cocoa_test_event_utils::MouseEventWithType(
72       NSLeftMouseUp, NSCommandKeyMask | NSAlternateKeyMask);
73   EXPECT_EQ(EF_LEFT_MOUSE_BUTTON | EF_COMMAND_DOWN | EF_ALT_DOWN,
74             EventFlagsFromNative(cmdalt));
75 }
76
77 }  // namespace
78
79 }  // namespace ui