Chromium Code Reviews| Index: ui/events/cocoa/events_mac_unittest.mm |
| diff --git a/ui/events/cocoa/events_mac_unittest.mm b/ui/events/cocoa/events_mac_unittest.mm |
| index 0c46a98b1b840304458c7937d275a68ec12287a3..cb0b2fbb759b107c2863e0c07bc1e37391badd43 100644 |
| --- a/ui/events/cocoa/events_mac_unittest.mm |
| +++ b/ui/events/cocoa/events_mac_unittest.mm |
| @@ -2,10 +2,12 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| +#import <Carbon/Carbon.h> |
| #import <Cocoa/Cocoa.h> |
| #include <stdint.h> |
| #include <memory> |
| +#include <utility> |
| #include "base/mac/scoped_cftyperef.h" |
| #include "base/mac/sdk_forward_declarations.h" |
| @@ -497,4 +499,43 @@ TEST_F(EventsMacTest, TrackpadScrollThenFlick) { |
| } |
| } |
| +TEST_F(EventsMacTest, NSFlagsChanged) { |
|
tapted
2016/10/25 06:55:10
test should have a comment above describing its pu
alshabalin
2016/10/28 19:58:13
Done.
|
| + struct { |
| + NSEventModifierFlags modifierFlags; |
|
tapted
2016/10/25 06:55:10
this isn't between @implementation/@end, so we sho
alshabalin
2016/10/28 19:58:13
Done.
|
| + uint16_t keyCode; |
| + EventType expectedType; |
| + KeyboardCode expectedKeyboardCode; |
| + } test_cases[] = { |
| + // CapsLock. |
|
tapted
2016/10/25 06:55:10
optional: Perhaps include a const char* member, an
alshabalin
2016/10/28 19:58:13
Good idea, thanks! Done.
|
| + {NSAlphaShiftKeyMask, kVK_CapsLock, ET_KEY_PRESSED, VKEY_CAPITAL}, |
| + {0, kVK_CapsLock, ET_KEY_RELEASED, VKEY_CAPITAL}, |
| + // Shift. |
| + {NSShiftKeyMask, kVK_Shift, ET_KEY_PRESSED, VKEY_SHIFT}, |
| + {0, kVK_Shift, ET_KEY_RELEASED, VKEY_SHIFT}, |
| + // Control. |
| + {NSControlKeyMask, kVK_Control, ET_KEY_PRESSED, VKEY_CONTROL}, |
| + {0, kVK_Control, ET_KEY_RELEASED, VKEY_CONTROL}, |
| + // Option. |
| + {NSAlternateKeyMask, kVK_Option, ET_KEY_PRESSED, VKEY_MENU}, |
| + {0, kVK_Option, ET_KEY_RELEASED, VKEY_MENU}, |
| + // Command. |
| + {NSCommandKeyMask, kVK_Command, ET_KEY_PRESSED, VKEY_LWIN}, |
| + {0, kVK_Command, ET_KEY_RELEASED, VKEY_LWIN}, |
| + // Shift + CapsLock. |
| + {NSShiftKeyMask | NSAlphaShiftKeyMask, kVK_Shift, ET_KEY_PRESSED, |
| + VKEY_SHIFT}, |
| + {NSAlphaShiftKeyMask, kVK_Shift, ET_KEY_RELEASED, VKEY_SHIFT}, |
| + }; |
| + for (size_t i = 0; i < arraysize(test_cases); ++i) { |
|
tapted
2016/10/25 06:55:10
..then here I think you can do `for (const auto& t
|
| + const auto& test_case = test_cases[i]; |
| + SCOPED_TRACE(::testing::Message() << "While checking case #" << i); |
|
tapted
2016/10/25 06:55:09
... and here output the const char*
|
| + NSEvent* nativeEvent = cocoa_test_event_utils::KeyEventWithModifierOnly( |
|
tapted
2016/10/25 06:55:10
native_event, or ns_event
alshabalin
2016/10/28 19:58:13
Done.
|
| + test_case.keyCode, test_case.modifierFlags); |
| + auto event = EventFromNative(nativeEvent); |
|
tapted
2016/10/25 06:55:10
this isn't a good use of `auto` per https://google
alshabalin
2016/10/28 19:58:14
Done.
|
| + EXPECT_TRUE(event); |
| + EXPECT_EQ(test_case.expectedType, event->type()); |
| + EXPECT_EQ(test_case.expectedKeyboardCode, event->AsKeyEvent()->key_code()); |
| + } |
| +} |
| + |
| } // namespace ui |