From a0012d90c2f6111cfdcb1b5536b4ef0636fa286d Mon Sep 17 00:00:00 2001 From: Eric Scheers Date: Wed, 6 Mar 2019 19:02:50 +0100 Subject: [PATCH] Add forwarding of UIAccessibilityAction methods (#1344) * Add forwarding of UIAccessibilityAction methods * Use OCMock for testing UIAccessibilityAction method forwarding --- Source/Details/_ASDisplayViewAccessiblity.mm | 28 ++++++++++++++++++ Tests/ASDisplayViewAccessibilityTests.mm | 31 ++++++++++++++++++++ 2 files changed, 59 insertions(+) diff --git a/Source/Details/_ASDisplayViewAccessiblity.mm b/Source/Details/_ASDisplayViewAccessiblity.mm index 74016e786..711be0294 100644 --- a/Source/Details/_ASDisplayViewAccessiblity.mm +++ b/Source/Details/_ASDisplayViewAccessiblity.mm @@ -297,4 +297,32 @@ - (NSArray *)accessibilityElements @end +@implementation _ASDisplayView (UIAccessibilityAction) + +- (BOOL)accessibilityActivate { + return [self.asyncdisplaykit_node accessibilityActivate]; +} + +- (void)accessibilityIncrement { + [self.asyncdisplaykit_node accessibilityIncrement]; +} + +- (void)accessibilityDecrement { + [self.asyncdisplaykit_node accessibilityDecrement]; +} + +- (BOOL)accessibilityScroll:(UIAccessibilityScrollDirection)direction { + return [self.asyncdisplaykit_node accessibilityScroll:direction]; +} + +- (BOOL)accessibilityPerformEscape { + return [self.asyncdisplaykit_node accessibilityPerformEscape]; +} + +- (BOOL)accessibilityPerformMagicTap { + return [self.asyncdisplaykit_node accessibilityPerformMagicTap]; +} + +@end + #endif diff --git a/Tests/ASDisplayViewAccessibilityTests.mm b/Tests/ASDisplayViewAccessibilityTests.mm index fd518c582..bbc28cf0b 100644 --- a/Tests/ASDisplayViewAccessibilityTests.mm +++ b/Tests/ASDisplayViewAccessibilityTests.mm @@ -17,6 +17,7 @@ #import #import #import +#import @interface ASDisplayViewAccessibilityTests : XCTestCase @end @@ -269,4 +270,34 @@ - (void)testAccessibilityUpdatesWithElementsChanges XCTAssertTrue([[elements2.firstObject accessibilityLabel] isEqualToString:@"greeting"]); } +#pragma mark - +#pragma mark UIAccessibilityAction Forwarding + +- (void)testActionForwarding { + ASDisplayNode *node = [ASDisplayNode new]; + UIView *view = node.view; + + id mockNode = OCMPartialMock(node); + + OCMExpect([mockNode accessibilityActivate]); + [view accessibilityActivate]; + + OCMExpect([mockNode accessibilityIncrement]); + [view accessibilityIncrement]; + + OCMExpect([mockNode accessibilityDecrement]); + [view accessibilityDecrement]; + + OCMExpect([mockNode accessibilityScroll:UIAccessibilityScrollDirectionDown]); + [view accessibilityScroll:UIAccessibilityScrollDirectionDown]; + + OCMExpect([mockNode accessibilityPerformEscape]); + [view accessibilityPerformEscape]; + + OCMExpect([mockNode accessibilityPerformMagicTap]); + [view accessibilityPerformMagicTap]; + + OCMVerifyAll(mockNode); +} + @end