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

Unified Diff: content/browser/renderer_host/render_widget_host_view_mac_unittest.mm

Issue 1458203003: MacKeyboard: Don't generate keypress for non-printable char (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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: content/browser/renderer_host/render_widget_host_view_mac_unittest.mm
diff --git a/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm b/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm
index c3575b9ff14ee7e7fc55ab0c048bc8f3a5f3363a..0f694e3fe98076d0a332f697a809ac5e7bc9aaad 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm
@@ -331,6 +331,38 @@ TEST_F(RenderWidgetHostViewMacTest, AcceleratorDestroy) {
observer.Wait();
}
+// Test that NSEvent of non-printable character won't generate keypress event
+// http://crbug.com/459089
+TEST_F(RenderWidgetHostViewMacTest, FilterNonPrintableCharacter) {
+ TestBrowserContext browser_context;
+ MockRenderProcessHost* process_host =
+ new MockRenderProcessHost(&browser_context);
+ process_host->Init();
+ MockRenderWidgetHostDelegate delegate;
+ int32 routing_id = process_host->GetNextRoutingID();
+ MockRenderWidgetHostImpl* host =
+ new MockRenderWidgetHostImpl(&delegate, process_host, routing_id);
+ RenderWidgetHostViewMac* view = new RenderWidgetHostViewMac(host, false);
+
+ // Simulate ctrl+delete (fn+ctrl+backspace), will produce a non-printable
+ // private use character
+ process_host->sink().ClearMessages();
+ [view->cocoa_view() keyEvent:
+ cocoa_test_event_utils::KeyEventWithKeyCode(
+ 117, 0xf728, NSKeyDown, NSControlKeyMask)];
+ EXPECT_EQ(1U, process_host->sink().message_count());
dtapuska 2015/11/23 14:42:08 It's unclear to me how this message_count increase
+
+ // Simulate a printable char, should generate keypress event
+ process_host->sink().ClearMessages();
+ [view->cocoa_view() keyEvent:
+ cocoa_test_event_utils::KeyEventWithKeyCode(
+ 0x78, 'x', NSKeyDown, NSControlKeyMask)];
+ EXPECT_EQ(2U, process_host->sink().message_count());
+
+ // Clean up.
+ host->Shutdown();
+}
+
TEST_F(RenderWidgetHostViewMacTest, GetFirstRectForCharacterRangeCaretCase) {
const base::string16 kDummyString = base::UTF8ToUTF16("hogehoge");
const size_t kDummyOffset = 0;
« base/mac/mac_util.h ('K') | « content/browser/renderer_host/render_widget_host_view_mac.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698