| 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 ce019f5b6af639c242684518bb00f0f1d51dec0a..14c66dacebc98e3baca1dfa0f7f649877108b654 100644
|
| --- a/ui/views/widget/native_widget_mac_accessibility_unittest.mm
|
| +++ b/ui/views/widget/native_widget_mac_accessibility_unittest.mm
|
| @@ -536,6 +536,74 @@ TEST_F(NativeWidgetMacAccessibilityTest, TextfieldWritableAttributes) {
|
| EXPECT_EQ(gfx::Range(5, 5), textfield->GetSelectedRange());
|
| }
|
|
|
| +// Test parameterized text attributes.
|
| +TEST_F(NativeWidgetMacAccessibilityTest, TextParameterizedAttributes) {
|
| + AddChildTextfield(GetWidgetBounds().size());
|
| + id ax_node = A11yElementAtMidpoint();
|
| + EXPECT_TRUE(ax_node);
|
| +
|
| + NSArray* attributes = [ax_node accessibilityParameterizedAttributeNames];
|
| + ASSERT_TRUE(attributes);
|
| +
|
| + // Ensure the method names match.
|
| + for (NSString* attribute in attributes) {
|
| + SEL sel = NSSelectorFromString([attribute stringByAppendingString:@":"]);
|
| + EXPECT_TRUE([ax_node respondsToSelector:sel]);
|
| + }
|
| +
|
| + NSNumber* line =
|
| + [ax_node accessibilityAttributeValue:
|
| + NSAccessibilityLineForIndexParameterizedAttribute
|
| + forParameter:@5];
|
| + EXPECT_TRUE(line);
|
| + EXPECT_EQ(0, [line intValue]);
|
| +
|
| + EXPECT_NSEQ([NSValue valueWithRange:NSMakeRange(0, kTestStringLength)],
|
| + [ax_node accessibilityAttributeValue:
|
| + NSAccessibilityRangeForLineParameterizedAttribute
|
| + forParameter:line]);
|
| +
|
| + // The substring "est st" of kTestStringValue.
|
| + NSValue* test_range = [NSValue valueWithRange:NSMakeRange(1, 6)];
|
| + EXPECT_NSEQ(@"est st",
|
| + [ax_node accessibilityAttributeValue:
|
| + NSAccessibilityStringForRangeParameterizedAttribute
|
| + forParameter:test_range]);
|
| + EXPECT_NSEQ(
|
| + @"est st",
|
| + [[ax_node
|
| + accessibilityAttributeValue:
|
| + NSAccessibilityAttributedStringForRangeParameterizedAttribute
|
| + forParameter:test_range] string]);
|
| +
|
| + // Not implemented yet. Update these tests when they are.
|
| + EXPECT_NSEQ(nil,
|
| + [ax_node accessibilityAttributeValue:
|
| + NSAccessibilityRangeForPositionParameterizedAttribute
|
| + forParameter:@4]);
|
| + EXPECT_NSEQ(nil,
|
| + [ax_node accessibilityAttributeValue:
|
| + NSAccessibilityRangeForIndexParameterizedAttribute
|
| + forParameter:@4]);
|
| + EXPECT_NSEQ(nil,
|
| + [ax_node accessibilityAttributeValue:
|
| + NSAccessibilityBoundsForRangeParameterizedAttribute
|
| + forParameter:test_range]);
|
| + EXPECT_NSEQ(nil, [ax_node accessibilityAttributeValue:
|
| + NSAccessibilityRTFForRangeParameterizedAttribute
|
| + forParameter:test_range]);
|
| + EXPECT_NSEQ(
|
| + nil, [ax_node accessibilityAttributeValue:
|
| + NSAccessibilityStyleRangeForIndexParameterizedAttribute
|
| + forParameter:@4]);
|
| +
|
| + // Non-text shouldn't have any parameterized attributes.
|
| + id ax_parent =
|
| + [ax_node accessibilityAttributeValue:NSAccessibilityParentAttribute];
|
| + EXPECT_TRUE(ax_parent);
|
| + EXPECT_FALSE([ax_parent accessibilityParameterizedAttributeNames]);
|
| +}
|
| +
|
| // Test performing a 'click' on Views with clickable roles work.
|
| TEST_F(NativeWidgetMacAccessibilityTest, PressAction) {
|
| FlexibleRoleTestView* view = new FlexibleRoleTestView(ui::AX_ROLE_BUTTON);
|
|
|