material-components_materia.../components/AppBar/tests/unit/AppBarNavigationControllerInteractivePopGestureTests.m
featherless 53ab07d693
[AppBar] Fix swipe to go back gesture for MDCAppBarNavigationController. (#9448)
https://developer.apple.com/design/human-interface-guidelines/ios/user-interaction/gestures/

"But users can also navigate back by swiping from the side of the screen."

Closes https://github.com/material-components/material-components-ios/issues/9447

Tested manually on:

- iPhone 7, 11.2
- iPhone X, 12.2
- iPhone 8 Plus, 13.2.2

## Testing Steps
1. Set MDCAppBarNavigationController as the root view controller
2. Push a view controller.
3. Swipe from the trailing edge toward the leading edge.

Tested by running the MDCCatalog and verifying that I can swipe to dismiss pushed view controllers on the root navigation controller.
2020-01-22 12:10:58 -05:00

53 lines
1.6 KiB
Objective-C

// Copyright 2020-present the Material Components for iOS authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#import <XCTest/XCTest.h>
#import "MaterialAppBar.h"
@interface AppBarNavigationControllerInteractivePopGestureTests : XCTestCase
@property(nonatomic, strong) MDCAppBarNavigationController *appBarNavigationController;
@property(nonatomic, strong) MDCAppBarViewController *appBarViewController;
@end
@implementation AppBarNavigationControllerInteractivePopGestureTests
- (void)setUp {
[super setUp];
self.appBarNavigationController = [[MDCAppBarNavigationController alloc] init];
}
- (void)tearDown {
self.appBarNavigationController = nil;
[super tearDown];
}
- (void)testIsNilByDefault {
// Then
XCTAssertNil(self.appBarNavigationController.interactivePopGestureRecognizer.delegate);
}
- (void)testIsSelfAfterViewDidLoad {
// When
[self.appBarNavigationController loadViewIfNeeded];
// Then
XCTAssertEqualObjects(self.appBarNavigationController.interactivePopGestureRecognizer.delegate,
self.appBarNavigationController);
}
@end