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 312227668bab06a4a24bcb9cd6e18c8e55d7b867..3fa4d3bc963396ee0b6f2ce8cca8bee64e20b26d 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 |
@@ -418,6 +418,31 @@ TEST_F(RenderWidgetHostViewMacTest, FilterNonPrintableCharacter) { |
host->ShutdownAndDestroyWidget(true); |
} |
+// Test that invalid |keyCode| shouldn't generate key events. |
+// https://crbug.com/601964 |
+TEST_F(RenderWidgetHostViewMacTest, InvalidKeyCode) { |
+ TestBrowserContext browser_context; |
+ MockRenderProcessHost* process_host = |
+ new MockRenderProcessHost(&browser_context); |
+ process_host->Init(); |
+ MockRenderWidgetHostDelegate delegate; |
+ int32_t routing_id = process_host->GetNextRoutingID(); |
+ MockRenderWidgetHostImpl* host = |
+ new MockRenderWidgetHostImpl(&delegate, process_host, routing_id); |
+ RenderWidgetHostViewMac* view = new RenderWidgetHostViewMac(host, false); |
+ |
+ // Simulate "Convert" key on JIS PC keyboard, will generate a |NSFlagsChanged| |
+ // NSEvent with |keyCode| == 0xFF. |
+ process_host->sink().ClearMessages(); |
+ EXPECT_EQ(0U, process_host->sink().message_count()); |
+ [view->cocoa_view() keyEvent:cocoa_test_event_utils::KeyEventWithKeyCode( |
+ 0xFF, 0, NSFlagsChanged, 0)]; |
+ EXPECT_EQ(0U, process_host->sink().message_count()); |
+ |
+ // Clean up. |
+ host->ShutdownAndDestroyWidget(true); |
+} |
+ |
TEST_F(RenderWidgetHostViewMacTest, GetFirstRectForCharacterRangeCaretCase) { |
const base::string16 kDummyString = base::UTF8ToUTF16("hogehoge"); |
const size_t kDummyOffset = 0; |