mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Forward a11y methods from FlutterSwitchSemanticsObject (flutter/engine#25465)
This commit is contained in:
parent
69dc6c9a56
commit
26dc5f91eb
@ -66,6 +66,10 @@ flutter::SemanticsAction GetSemanticsActionForScrollDirection(
|
||||
[anInvocation invoke];
|
||||
}
|
||||
|
||||
// The following methods are explicitly forwarded to the wrapped SemanticsObject because the
|
||||
// forwarding logic above doesn't apply to them since they are also implemented in the UISwitch
|
||||
// class, the base class.
|
||||
|
||||
- (CGRect)accessibilityFrame {
|
||||
return [_semanticsObject accessibilityFrame];
|
||||
}
|
||||
@ -97,6 +101,34 @@ flutter::SemanticsAction GetSemanticsActionForScrollDirection(
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)accessibilityActivate {
|
||||
return [_semanticsObject accessibilityActivate];
|
||||
}
|
||||
|
||||
- (void)accessibilityIncrement {
|
||||
[_semanticsObject accessibilityIncrement];
|
||||
}
|
||||
|
||||
- (void)accessibilityDecrement {
|
||||
[_semanticsObject accessibilityDecrement];
|
||||
}
|
||||
|
||||
- (BOOL)accessibilityScroll:(UIAccessibilityScrollDirection)direction {
|
||||
return [_semanticsObject accessibilityScroll:direction];
|
||||
}
|
||||
|
||||
- (BOOL)accessibilityPerformEscape {
|
||||
return [_semanticsObject accessibilityPerformEscape];
|
||||
}
|
||||
|
||||
- (void)accessibilityElementDidBecomeFocused {
|
||||
[_semanticsObject accessibilityElementDidBecomeFocused];
|
||||
}
|
||||
|
||||
- (void)accessibilityElementDidLoseFocus {
|
||||
[_semanticsObject accessibilityElementDidLoseFocus];
|
||||
}
|
||||
|
||||
@end // FlutterSwitchSemanticsObject
|
||||
|
||||
@implementation FlutterCustomAccessibilityAction {
|
||||
|
||||
@ -229,4 +229,35 @@ class MockAccessibilityBridge : public AccessibilityBridgeIos {
|
||||
XCTAssertNil(weakObject);
|
||||
}
|
||||
|
||||
- (void)testFlutterSwitchSemanticsObjectForwardsCalls {
|
||||
SemanticsObject* mockSemanticsObject = OCMClassMock([SemanticsObject class]);
|
||||
FlutterSwitchSemanticsObject* switchObj =
|
||||
[[FlutterSwitchSemanticsObject alloc] initWithSemanticsObject:mockSemanticsObject];
|
||||
OCMStub([mockSemanticsObject accessibilityActivate]).andReturn(YES);
|
||||
OCMStub([mockSemanticsObject accessibilityScroll:UIAccessibilityScrollDirectionRight])
|
||||
.andReturn(NO);
|
||||
OCMStub([mockSemanticsObject accessibilityPerformEscape]).andReturn(YES);
|
||||
|
||||
XCTAssertTrue([switchObj accessibilityActivate]);
|
||||
OCMVerify([mockSemanticsObject accessibilityActivate]);
|
||||
|
||||
[switchObj accessibilityIncrement];
|
||||
OCMVerify([mockSemanticsObject accessibilityIncrement]);
|
||||
|
||||
[switchObj accessibilityDecrement];
|
||||
OCMVerify([mockSemanticsObject accessibilityDecrement]);
|
||||
|
||||
XCTAssertFalse([switchObj accessibilityScroll:UIAccessibilityScrollDirectionRight]);
|
||||
OCMVerify([mockSemanticsObject accessibilityScroll:UIAccessibilityScrollDirectionRight]);
|
||||
|
||||
XCTAssertTrue([switchObj accessibilityPerformEscape]);
|
||||
OCMVerify([mockSemanticsObject accessibilityPerformEscape]);
|
||||
|
||||
[switchObj accessibilityElementDidBecomeFocused];
|
||||
OCMVerify([mockSemanticsObject accessibilityElementDidBecomeFocused]);
|
||||
|
||||
[switchObj accessibilityElementDidLoseFocus];
|
||||
OCMVerify([mockSemanticsObject accessibilityElementDidLoseFocus]);
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user