12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- #import <XCTest/XCTest.h>
- #import <OCMock/OCMock.h>
- #import "UIViewController+LayoutProtocol.h"
- #import "UIViewController+RNNOptions.h"
- #import "RNNViewControllerPresenter.h"
- #import "RCTConvert+Modal.h"
-
- @interface UIViewController_LayoutProtocolTest : XCTestCase
-
- @property (nonatomic, retain) UIViewController* uut;
-
- @end
-
- @implementation UIViewController_LayoutProtocolTest
-
- - (void)setUp {
- [super setUp];
- self.uut = [OCMockObject partialMockForObject:[UIViewController new]];
- self.uut.layoutInfo = [[RNNLayoutInfo alloc] init];
- self.uut.layoutInfo.componentId = @"componentId";
- }
-
- - (void)testInitWithLayoutApplyDefaultOptions {
- RNNViewControllerPresenter* presenter = [[RNNViewControllerPresenter alloc] init];
- RNNNavigationOptions* options = [[RNNNavigationOptions alloc] initEmptyOptions];
- RNNNavigationOptions* defaultOptions = [[RNNNavigationOptions alloc] initEmptyOptions];
- defaultOptions.modalPresentationStyle = [[Text alloc] initWithValue:@"fullScreen"];
-
- UIViewController* uut = [[UIViewController alloc] initWithLayoutInfo:nil creator:nil options:options defaultOptions:defaultOptions presenter:presenter eventEmitter:nil childViewControllers:nil];
- XCTAssertEqual(uut.modalPresentationStyle, [RCTConvert UIModalPresentationStyle:@"fullScreen"]);
- }
-
- - (void)testInitWithLayoutInfoShouldSetChildViewControllers {
- UIViewController* child1 = [UIViewController new];
- UIViewController* child2 = [UIViewController new];
- NSArray* childViewControllers = @[child1, child2];
- UINavigationController* uut = [[UINavigationController alloc] initWithLayoutInfo:nil creator:nil options:nil defaultOptions:nil presenter:nil eventEmitter:nil childViewControllers:childViewControllers];
-
- XCTAssertEqual(uut.viewControllers[0], child1);
- XCTAssertEqual(uut.viewControllers[1], child2);
- }
-
- - (void)testSetBackButtonIcon_withColor_shouldSetColor {
- UIViewController* uut = [UIViewController new];
- [[UINavigationController alloc] initWithRootViewController:uut];
- UIColor* color = [UIColor blackColor];
-
- [uut rnn_setBackButtonIcon:nil withColor:color title:nil];
- XCTAssertEqual(color, uut.navigationItem.backBarButtonItem.tintColor);
- }
-
- - (void)testSetBackButtonIcon_withColor_shouldSetTitle {
- UIViewController* uut = [UIViewController new];
- UINavigationController* nav = [[UINavigationController alloc] initWithRootViewController:uut];
- NSString* title = @"Title";
-
- [uut rnn_setBackButtonIcon:nil withColor:nil title:title];
- XCTAssertEqual(title, uut.navigationItem.backBarButtonItem.title);
- }
-
- - (void)testSetBackButtonIcon_withColor_shouldSetIcon {
- UIViewController* uut = [UIViewController new];
- UINavigationController* nav = [[UINavigationController alloc] initWithRootViewController:uut];
- UIImage* icon = [UIImage new];
-
- [uut rnn_setBackButtonIcon:icon withColor:nil title:nil];
- XCTAssertEqual(icon, uut.navigationItem.backBarButtonItem.image);
- }
-
- - (void)testSetBackButtonIcon_shouldSetTitleOnPreviousViewControllerIfExists {
- UIViewController* uut = [UIViewController new];
- UIViewController* viewController2 = [UIViewController new];
- UINavigationController* nav = [[UINavigationController alloc] init];
- [nav setViewControllers:@[uut, viewController2]];
- NSString* title = @"Title";
-
- [uut rnn_setBackButtonIcon:nil withColor:nil title:title];
- XCTAssertEqual(title, uut.navigationItem.backBarButtonItem.title);
- }
-
- @end
|