| 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..fd014c3328a023c5f49dad80393434a93d9a21ec 100644
|
| --- a/ui/views/cocoa/bridged_native_widget_unittest.mm
|
| +++ b/ui/views/cocoa/bridged_native_widget_unittest.mm
|
| @@ -261,11 +261,11 @@ class BridgedNativeWidgetTest : public BridgedNativeWidgetTestBase {
|
|
|
| // Test editing commands in |selectors| against the expectations set by
|
| // |dummy_text_view_|. This is done by selecting every substring within a set
|
| - // of test strings (both RTL and non-RTL) and performing every selector on
|
| - // both the NSTextView and the BridgedContentView hosting a focused
|
| - // views::TextField to ensure the resulting text and selection ranges match.
|
| - // |selectors| is an NSArray of NSStrings.
|
| - void TestEditingCommands(NSArray* selectors);
|
| + // of test strings and performing every selector on both the NSTextView and
|
| + // the BridgedContentView hosting a focused views::TextField to ensure the
|
| + // resulting text and selection ranges match. |selectors| is an NSArray of
|
| + // NSStrings. If |test_rtl| is false, no RTL test string is used for testing.
|
| + void TestEditingCommands(NSArray* selectors, bool test_rtl);
|
|
|
| std::unique_ptr<views::View> view_;
|
|
|
| @@ -453,12 +453,15 @@ void BridgedNativeWidgetTest::TestDeleteEnd(SEL sel) {
|
| GetActualSelectionRange());
|
| }
|
|
|
| -void BridgedNativeWidgetTest::TestEditingCommands(NSArray* selectors) {
|
| - const base::string16 test_strings[] = {
|
| +void BridgedNativeWidgetTest::TestEditingCommands(NSArray* selectors,
|
| + bool test_rtl) {
|
| + std::vector<base::string16> test_strings = {
|
| base::WideToUTF16(L"ab c"),
|
| - base::WideToUTF16(L"\x0634\x0632 \x064A") // RTL string.
|
| };
|
|
|
| + if (test_rtl)
|
| + test_strings.push_back(base::WideToUTF16(L"\x0634\x0632 \x064A"));
|
| +
|
| for (const base::string16& test_string : test_strings) {
|
| for (NSString* selector_string in selectors) {
|
| SEL sel = NSSelectorFromString(selector_string);
|
| @@ -966,14 +969,11 @@ TEST_F(BridgedNativeWidgetTest, TextInput_MoveEditingCommands) {
|
| @"moveToLeftEndOfLine:",
|
| @"moveToRightEndOfLine:"
|
| ];
|
| - TestEditingCommands(selectors);
|
| + TestEditingCommands(selectors, true);
|
| }
|
|
|
| -// Todo(karandeepb): Enable this test once the behavior of all move and select
|
| -// commands are fixed.
|
| // Test move and select commands against expectations set by |dummy_text_view_|.
|
| -TEST_F(BridgedNativeWidgetTest,
|
| - TextInput_MoveAndSelectEditingCommands_DISABLED) {
|
| +TEST_F(BridgedNativeWidgetTest, TextInput_MoveAndSelectEditingCommands_1) {
|
| NSArray* selectors = @[
|
| @"moveBackwardAndModifySelection:",
|
| @"moveForwardAndModifySelection:",
|
| @@ -991,14 +991,23 @@ TEST_F(BridgedNativeWidgetTest,
|
| @"pageUpAndModifySelection:",
|
| @"moveParagraphForwardAndModifySelection:",
|
| @"moveParagraphBackwardAndModifySelection:",
|
| - @"moveRightAndModifySelection:",
|
| - @"moveLeftAndModifySelection:",
|
| - @"moveWordRightAndModifySelection:",
|
| - @"moveWordLeftAndModifySelection:",
|
| + ];
|
| + TestEditingCommands(selectors, true);
|
| +}
|
| +
|
| +// Test move and select commands against expectations set by |dummy_text_view_|.
|
| +TEST_F(BridgedNativeWidgetTest, TextInput_MoveAndSelectEditingCommands_2) {
|
| + NSArray* selectors = @[
|
| + @"moveRightAndModifySelection:", @"moveLeftAndModifySelection:",
|
| + @"moveWordRightAndModifySelection:", @"moveWordLeftAndModifySelection:",
|
| @"moveToLeftEndOfLineAndModifySelection:",
|
| @"moveToRightEndOfLineAndModifySelection:"
|
| ];
|
| - TestEditingCommands(selectors);
|
| +
|
| + // The behavior of move and select commands with visual direction on
|
| + // NSTextView is a bit buggy for RTL text and is not consistent with LTR
|
| + // behavior Hence don't test RTL string.
|
| + TestEditingCommands(selectors, false);
|
| }
|
|
|
| // Test delete commands against expectations set by |dummy_text_view_|.
|
| @@ -1008,7 +1017,7 @@ TEST_F(BridgedNativeWidgetTest, TextInput_DeleteCommands) {
|
| @"deleteWordBackward:", @"deleteToBeginningOfLine:", @"deleteToEndOfLine:",
|
| @"deleteToBeginningOfParagraph:", @"deleteToEndOfParagraph:"
|
| ];
|
| - TestEditingCommands(selectors);
|
| + TestEditingCommands(selectors, true);
|
| }
|
|
|
| // Test firstRectForCharacterRange:actualRange for cases where query range is
|
|
|