| Index: ui/views/widget/native_widget_mac_accessibility_unittest.mm
|
| diff --git a/ui/views/widget/native_widget_mac_accessibility_unittest.mm b/ui/views/widget/native_widget_mac_accessibility_unittest.mm
|
| index 9ae4b70ed71060136ffcf936e08b3cf93a4393b4..1b37e4bcd9d3a921159c6615337e12ad66a1cba6 100644
|
| --- a/ui/views/widget/native_widget_mac_accessibility_unittest.mm
|
| +++ b/ui/views/widget/native_widget_mac_accessibility_unittest.mm
|
| @@ -27,6 +27,7 @@ namespace views {
|
|
|
| namespace {
|
|
|
| +NSString* const kTestPlaceholderText = @"Test placeholder text";
|
| NSString* const kTestStringValue = @"Test string value";
|
| NSString* const kTestTitle = @"Test textfield";
|
|
|
| @@ -170,9 +171,24 @@ TEST_F(NativeWidgetMacAccessibilityTest, PositionAttribute) {
|
| // Tests for accessibility attributes on a views::Textfield.
|
| // TODO(patricialor): Test against Cocoa-provided attributes as well to ensure
|
| // consistency between Cocoa and toolkit-views.
|
| -TEST_F(NativeWidgetMacAccessibilityTest, TextfieldAccessibility) {
|
| +TEST_F(NativeWidgetMacAccessibilityTest, TextfieldGenericAttributes) {
|
| Textfield* textfield = AddChildTextfield(GetWidgetBounds().size());
|
|
|
| + // NSAccessibilityEnabledAttribute.
|
| + textfield->SetEnabled(false);
|
| + EXPECT_EQ(NO, [AttributeValueAtMidpoint(NSAccessibilityEnabledAttribute)
|
| + boolValue]);
|
| + textfield->SetEnabled(true);
|
| + EXPECT_EQ(YES, [AttributeValueAtMidpoint(NSAccessibilityEnabledAttribute)
|
| + boolValue]);
|
| +
|
| + // NSAccessibilityFocusedAttribute.
|
| + EXPECT_EQ(NO, [AttributeValueAtMidpoint(NSAccessibilityFocusedAttribute)
|
| + boolValue]);
|
| + textfield->RequestFocus();
|
| + EXPECT_EQ(YES, [AttributeValueAtMidpoint(NSAccessibilityFocusedAttribute)
|
| + boolValue]);
|
| +
|
| // NSAccessibilityTitleAttribute.
|
| EXPECT_NSEQ(kTestTitle,
|
| AttributeValueAtMidpoint(NSAccessibilityTitleAttribute));
|
| @@ -216,4 +232,48 @@ TEST_F(NativeWidgetMacAccessibilityTest, TextfieldAccessibility) {
|
| NSAccessibilitySizeAttribute) sizeValue]));
|
| }
|
|
|
| +TEST_F(NativeWidgetMacAccessibilityTest, TextfieldEditableAttributes) {
|
| + Textfield* textfield = AddChildTextfield(GetWidgetBounds().size());
|
| + textfield->set_placeholder_text(
|
| + base::SysNSStringToUTF16(kTestPlaceholderText));
|
| +
|
| + // NSAccessibilityInsertionPointLineNumberAttribute.
|
| + EXPECT_EQ(0, [AttributeValueAtMidpoint(
|
| + NSAccessibilityInsertionPointLineNumberAttribute) intValue]);
|
| +
|
| + // NSAccessibilityNumberOfCharactersAttribute.
|
| + EXPECT_EQ(
|
| + kTestStringValue.length,
|
| + [AttributeValueAtMidpoint(NSAccessibilityNumberOfCharactersAttribute)
|
| + unsignedIntegerValue]);
|
| +
|
| + // NSAccessibilityPlaceholderAttribute.
|
| + EXPECT_NSEQ(
|
| + kTestPlaceholderText,
|
| + AttributeValueAtMidpoint(NSAccessibilityPlaceholderValueAttribute));
|
| +
|
| + // NSAccessibilitySelectedTextAttribute and
|
| + // NSAccessibilitySelectedTextRangeAttribute.
|
| + EXPECT_NSEQ(@"",
|
| + AttributeValueAtMidpoint(NSAccessibilitySelectedTextAttribute));
|
| + // The cursor will be at the end of the textfield, so the selection range will
|
| + // span 0 characters and be located at the index after the last character.
|
| + EXPECT_EQ(gfx::Range(kTestStringValue.length, kTestStringValue.length),
|
| + gfx::Range([AttributeValueAtMidpoint(
|
| + NSAccessibilitySelectedTextRangeAttribute) rangeValue]));
|
| + // Select some text in the middle of the textfield.
|
| + gfx::Range selection_range(2, 6);
|
| + textfield->SelectRange(selection_range);
|
| + EXPECT_NSEQ([kTestStringValue substringWithRange:selection_range.ToNSRange()],
|
| + AttributeValueAtMidpoint(NSAccessibilitySelectedTextAttribute));
|
| + EXPECT_EQ(selection_range,
|
| + gfx::Range([AttributeValueAtMidpoint(
|
| + NSAccessibilitySelectedTextRangeAttribute) rangeValue]));
|
| +
|
| + // NSAccessibilityVisibleCharacterRangeAttribute.
|
| + EXPECT_EQ(gfx::Range(0, kTestStringValue.length),
|
| + gfx::Range([AttributeValueAtMidpoint(
|
| + NSAccessibilityVisibleCharacterRangeAttribute) rangeValue]));
|
| +}
|
| +
|
| } // namespace views
|
|
|