| 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..4d048b4f3e702bb4d9679d91ed43150ced089fed 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
|
| @@ -93,6 +93,22 @@ namespace content {
|
|
|
| namespace {
|
|
|
| +std::string GetInputMessageTypes(MockRenderProcessHost* process) {
|
| + std::string result;
|
| + for (size_t i = 0; i < process->sink().message_count(); ++i) {
|
| + const IPC::Message* message = process->sink().GetMessageAt(i);
|
| + EXPECT_EQ(InputMsg_HandleInputEvent::ID, message->type());
|
| + InputMsg_HandleInputEvent::Param params;
|
| + EXPECT_TRUE(InputMsg_HandleInputEvent::Read(message, ¶ms));
|
| + const blink::WebInputEvent* event = base::get<0>(params);
|
| + if (i != 0)
|
| + result += " ";
|
| + result += WebInputEventTraits::GetName(event->type);
|
| + }
|
| + process->sink().ClearMessages();
|
| + return result;
|
| +}
|
| +
|
| id MockGestureEvent(NSEventType type, double magnification) {
|
| id event = [OCMockObject mockForClass:[NSEvent class]];
|
| NSPoint locationInWindow = NSMakePoint(0, 0);
|
| @@ -331,6 +347,41 @@ TEST_F(RenderWidgetHostViewMacTest, AcceleratorDestroy) {
|
| observer.Wait();
|
| }
|
|
|
| +// Test that NSEvent of private use character won't generate keypress event
|
| +// http://crbug.com/459089, ctrl+delete will be filtered in WebInputEventConversion.cpp
|
| +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+F12, will produce a private use character
|
| + process_host->sink().ClearMessages();
|
| + EXPECT_EQ(0U, process_host->sink().message_count());
|
| + [view->cocoa_view() keyEvent:
|
| + cocoa_test_event_utils::KeyEventWithKeyCode(
|
| + 111, 0xF70F, NSKeyDown, NSControlKeyMask)];
|
| + EXPECT_EQ(1U, process_host->sink().message_count());
|
| + EXPECT_EQ("RawKeyDown", GetInputMessageTypes(process_host));
|
| +
|
| + // Simulate a printable char, should generate keypress event
|
| + process_host->sink().ClearMessages();
|
| + EXPECT_EQ(0U, process_host->sink().message_count());
|
| + [view->cocoa_view() keyEvent:
|
| + cocoa_test_event_utils::KeyEventWithKeyCode(
|
| + 0x78, 'x', NSKeyDown, NSControlKeyMask)];
|
| + EXPECT_EQ(2U, process_host->sink().message_count());
|
| + EXPECT_EQ("RawKeyDown Char", GetInputMessageTypes(process_host));
|
| +
|
| + // Clean up.
|
| + host->Shutdown();
|
| +}
|
| +
|
| TEST_F(RenderWidgetHostViewMacTest, GetFirstRectForCharacterRangeCaretCase) {
|
| const base::string16 kDummyString = base::UTF8ToUTF16("hogehoge");
|
| const size_t kDummyOffset = 0;
|
|
|