Chromium Code Reviews| Index: ui/views/cocoa/bridged_native_widget_unittest.mm |
| diff --git a/ui/views/cocoa/bridged_native_widget_unittest.mm b/ui/views/cocoa/bridged_native_widget_unittest.mm |
| index 1faee145fec4433b886cf07b9ce726cf1dc50e9d..f01010230ed09c2b669e63c4c8e86376909bc4fe 100644 |
| --- a/ui/views/cocoa/bridged_native_widget_unittest.mm |
| +++ b/ui/views/cocoa/bridged_native_widget_unittest.mm |
| @@ -110,6 +110,63 @@ gfx::Rect GetExpectedBoundsForRange(ui::TextInputClient* client, |
| right_caret.x() - left_caret.x(), left_caret.height()); |
| } |
| +// Implemented NSResponder action messages for use in tests. |
|
tapted
2016/05/31 01:49:14
nit: constants should come before functions in eac
karandeepb
2016/05/31 01:57:33
Done.
|
| +NSArray* kMoveActions = @[ |
|
tapted
2016/05/31 01:49:14
nit: NSArray* const kMoveActions - same below (it'
karandeepb
2016/05/31 01:57:33
Done.
|
| + @"moveForward:", |
| + @"moveRight:", |
| + @"moveBackward:", |
| + @"moveLeft:", |
| + @"moveUp:", |
| + @"moveDown:", |
| + @"moveWordForward:", |
| + @"moveWordBackward:", |
| + @"moveToBeginningOfLine:", |
| + @"moveToEndOfLine:", |
| + @"moveToBeginningOfParagraph:", |
| + @"moveToEndOfParagraph:", |
| + @"moveToEndOfDocument:", |
| + @"moveToBeginningOfDocument:", |
| + @"pageDown:", |
| + @"pageUp:", |
| + @"moveWordRight:", |
| + @"moveWordLeft:", |
| + @"moveToLeftEndOfLine:", |
| + @"moveToRightEndOfLine:" |
| +]; |
| + |
| +NSArray* kSelectActions = @[ |
| + @"moveBackwardAndModifySelection:", |
| + @"moveForwardAndModifySelection:", |
| + @"moveWordForwardAndModifySelection:", |
| + @"moveWordBackwardAndModifySelection:", |
| + @"moveUpAndModifySelection:", |
| + @"moveDownAndModifySelection:", |
| + @"moveToBeginningOfLineAndModifySelection:", |
| + @"moveToEndOfLineAndModifySelection:", |
| + @"moveToBeginningOfParagraphAndModifySelection:", |
| + @"moveToEndOfParagraphAndModifySelection:", |
| + @"moveToEndOfDocumentAndModifySelection:", |
| + @"moveToBeginningOfDocumentAndModifySelection:", |
| + @"pageDownAndModifySelection:", |
| + @"pageUpAndModifySelection:", |
| + @"moveParagraphForwardAndModifySelection:", |
| + @"moveParagraphBackwardAndModifySelection:", |
| + @"moveRightAndModifySelection:", |
| + @"moveLeftAndModifySelection:", |
| + @"moveWordRightAndModifySelection:", |
| + @"moveWordLeftAndModifySelection:", |
| + @"moveToLeftEndOfLineAndModifySelection:", |
| + @"moveToRightEndOfLineAndModifySelection:" |
| +]; |
| + |
| +NSArray* kDeleteActions = @[ |
| + @"deleteForward:", @"deleteBackward:", @"deleteWordForward:", |
| + @"deleteWordBackward:", @"deleteToBeginningOfLine:", @"deleteToEndOfLine:", |
| + @"deleteToBeginningOfParagraph:", @"deleteToEndOfParagraph:" |
| +]; |
| + |
| +NSArray* kMiscActions = @[ @"insertText:", @"cancelOperation:" ]; |
| + |
| } // namespace |
| // Class to override -[NSWindow toggleFullScreen:] to a no-op. This simulates |
| @@ -944,29 +1001,7 @@ TEST_F(BridgedNativeWidgetTest, TextInput_DeleteToEndOfParagraph) { |
| // Test move commands against expectations set by |dummy_text_view_|. |
| TEST_F(BridgedNativeWidgetTest, TextInput_MoveEditingCommands) { |
| - NSArray* selectors = @[ |
| - @"moveForward:", |
| - @"moveRight:", |
| - @"moveBackward:", |
| - @"moveLeft:", |
| - @"moveUp:", |
| - @"moveDown:", |
| - @"moveWordForward:", |
| - @"moveWordBackward:", |
| - @"moveToBeginningOfLine:", |
| - @"moveToEndOfLine:", |
| - @"moveToBeginningOfParagraph:", |
| - @"moveToEndOfParagraph:", |
| - @"moveToEndOfDocument:", |
| - @"moveToBeginningOfDocument:", |
| - @"pageDown:", |
| - @"pageUp:", |
| - @"moveWordRight:", |
| - @"moveWordLeft:", |
| - @"moveToLeftEndOfLine:", |
| - @"moveToRightEndOfLine:" |
| - ]; |
| - TestEditingCommands(selectors); |
| + TestEditingCommands(kMoveActions); |
| } |
| // Todo(karandeepb): Enable this test once the behavior of all move and select |
| @@ -974,41 +1009,26 @@ TEST_F(BridgedNativeWidgetTest, TextInput_MoveEditingCommands) { |
| // Test move and select commands against expectations set by |dummy_text_view_|. |
| TEST_F(BridgedNativeWidgetTest, |
| TextInput_MoveAndSelectEditingCommands_DISABLED) { |
| - NSArray* selectors = @[ |
| - @"moveBackwardAndModifySelection:", |
| - @"moveForwardAndModifySelection:", |
| - @"moveWordForwardAndModifySelection:", |
| - @"moveWordBackwardAndModifySelection:", |
| - @"moveUpAndModifySelection:", |
| - @"moveDownAndModifySelection:", |
| - @"moveToBeginningOfLineAndModifySelection:", |
| - @"moveToEndOfLineAndModifySelection:", |
| - @"moveToBeginningOfParagraphAndModifySelection:", |
| - @"moveToEndOfParagraphAndModifySelection:", |
| - @"moveToEndOfDocumentAndModifySelection:", |
| - @"moveToBeginningOfDocumentAndModifySelection:", |
| - @"pageDownAndModifySelection:", |
| - @"pageUpAndModifySelection:", |
| - @"moveParagraphForwardAndModifySelection:", |
| - @"moveParagraphBackwardAndModifySelection:", |
| - @"moveRightAndModifySelection:", |
| - @"moveLeftAndModifySelection:", |
| - @"moveWordRightAndModifySelection:", |
| - @"moveWordLeftAndModifySelection:", |
| - @"moveToLeftEndOfLineAndModifySelection:", |
| - @"moveToRightEndOfLineAndModifySelection:" |
| - ]; |
| - TestEditingCommands(selectors); |
| + TestEditingCommands(kSelectActions); |
| } |
| // Test delete commands against expectations set by |dummy_text_view_|. |
| TEST_F(BridgedNativeWidgetTest, TextInput_DeleteCommands) { |
| - NSArray* selectors = @[ |
| - @"deleteForward:", @"deleteBackward:", @"deleteWordForward:", |
| - @"deleteWordBackward:", @"deleteToBeginningOfLine:", @"deleteToEndOfLine:", |
| - @"deleteToBeginningOfParagraph:", @"deleteToEndOfParagraph:" |
| - ]; |
| - TestEditingCommands(selectors); |
| + TestEditingCommands(kDeleteActions); |
| +} |
| + |
| +// Test that we don't crash during an action message even if the TextInputClient |
| +// is nil. Regression test for crbug.com/615745. |
| +TEST_F(BridgedNativeWidgetTest, NilTextInputClient) { |
| + [ns_view_ setTextInputClient:nil]; |
| + NSMutableArray* selectors = [NSMutableArray array]; |
| + [selectors addObjectsFromArray:kMoveActions]; |
| + [selectors addObjectsFromArray:kSelectActions]; |
| + [selectors addObjectsFromArray:kDeleteActions]; |
| + [selectors addObjectsFromArray:kMiscActions]; |
| + |
| + for (NSString* selector in selectors) |
| + [ns_view_ doCommandBySelector:NSSelectorFromString(selector)]; |
| } |
| // Test firstRectForCharacterRange:actualRange for cases where query range is |