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

Unified Diff: ui/events/cocoa/events_mac_unittest.mm

Issue 2439953005: Support NSFlagsChanged in ui::EventFromNative. (Closed)
Patch Set: Created 4 years, 2 months 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698