diff options
author | lapinskijw <jlapinski.dev@gmail.com> | 2020-06-12 16:22:50 -0400 |
---|---|---|
committer | lapinskijw <jlapinski.dev@gmail.com> | 2020-06-12 16:22:50 -0400 |
commit | 7c3a96d4db9a0957a21764bb8acb72a240ce275e (patch) | |
tree | 96990da4196c5082f5fd6c5241cc96883db554b6 | |
parent | d547bbdb2080747a91cd7c3b57f317ae4e3d8f67 (diff) | |
download | sdl_ios-7c3a96d4db9a0957a21764bb8acb72a240ce275e.tar.gz |
started writing tests for parameter permission method
-rw-r--r-- | SmartDeviceLink/SDLPermissionManager.m | 2 | ||||
-rw-r--r-- | SmartDeviceLinkTests/DevAPISpecs/SDLPermissionsManagerSpec.m | 58 |
2 files changed, 59 insertions, 1 deletions
diff --git a/SmartDeviceLink/SDLPermissionManager.m b/SmartDeviceLink/SDLPermissionManager.m index 2791c2202..aca18fdce 100644 --- a/SmartDeviceLink/SDLPermissionManager.m +++ b/SmartDeviceLink/SDLPermissionManager.m @@ -413,7 +413,7 @@ NS_ASSUME_NONNULL_BEGIN - (BOOL)isPermissionParameterAllowed:(SDLRPCFunctionName)rpcName parameter:(NSString *)parameter permissionItems:(NSMutableDictionary<SDLPermissionRPCName, SDLPermissionItem *> *)permissionItems hmiLevel:(SDLHMILevel)hmiLevel { SDLPermissionItem *permissionItem = permissionItems[rpcName]; - if (permissionItem == nil || ![self isRPCAllowed:rpcName] || permissionItem.parameterPermissions == nil || permissionItem.parameterPermissions.allowed == nil) { + if (permissionItem == nil || ![self isRPCNameAllowed:rpcName] || permissionItem.parameterPermissions == nil || permissionItem.parameterPermissions.allowed == nil) { return NO; } else if (permissionItem.parameterPermissions.userDisallowed != nil) { return [permissionItem.parameterPermissions.allowed containsObject:parameter] && ![permissionItem.parameterPermissions.userDisallowed containsObject:parameter]; diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLPermissionsManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLPermissionsManagerSpec.m index bee6548c2..1a60968b8 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLPermissionsManagerSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLPermissionsManagerSpec.m @@ -33,6 +33,14 @@ describe(@"SDLPermissionsManager", ^{ __block NSString *testRPCNameAllDisallowed = nil; __block NSString *testRPCNameFullLimitedAllowed = nil; __block NSString *testRPCNameFullLimitedBackgroundAllowed = nil; + + __block NSString *testRPCParameterNameAllAllowed = nil; + __block NSString *testRPCParameterNameAllDisallowed = nil; + __block NSString *testRPCParameterNameFullLimitedAllowed = nil; + __block NSString *testRPCParameterNameFullLimitedBackgroundAllowed = nil; + + __block SDLParameterPermissions *testParameterPermissionAllowed = nil; + __block SDLParameterPermissions *testParamterPermissionUserDisallowed = nil; __block SDLPermissionItem *testPermissionAllAllowed = nil; __block SDLHMIPermissions *testHMIPermissionsAllAllowed = nil; @@ -60,6 +68,17 @@ describe(@"SDLPermissionsManager", ^{ testRPCNameAllDisallowed = @"AllDisallowed"; testRPCNameFullLimitedAllowed = @"FullAndLimitedAllowed"; testRPCNameFullLimitedBackgroundAllowed = @"FullAndLimitedAndBackgroundAllowed"; + + testRPCParameterNameAllAllowed = @"AllAllowed"; + testRPCParameterNameAllDisallowed = @"AllDisallowed"; + testRPCParameterNameFullLimitedAllowed = @"FullAndLimitedAllowed"; + testRPCParameterNameFullLimitedBackgroundAllowed = @"FullAndLimitedAndBackgroundAllowed"; + + testParameterPermissionAllowed = [[SDLParameterPermissions alloc] init]; + testParameterPermissionAllowed.allowed = @[testRPCParameterNameAllAllowed]; + + testParamterPermissionUserDisallowed = [[SDLParameterPermissions alloc] init]; + testParamterPermissionUserDisallowed.userDisallowed = @[testRPCParameterNameAllDisallowed]; // Create a manager testPermissionsManager = [[SDLPermissionManager alloc] init]; @@ -1094,6 +1113,45 @@ describe(@"SDLPermissionsManager", ^{ }); }); + describe(@"checking parameter permissions", ^{ + __block SDLRPCFunctionName someRPCFunctionName = nil; + __block NSString *someRPCParameterName = nil; + __block BOOL testResultBOOL = NO; + + context(@"when there are no permission items", ^{ + beforeEach(^{ + someRPCFunctionName = @"SomeRPCFunctionName"; + someRPCParameterName = @"SomeRPCParameterName"; + testResultBOOL = [testPermissionsManager isPermissionParameterAllowed:someRPCFunctionName parameter:someRPCParameterName]; + }); + + it(@"should not be allowed", ^{ + expect(testResultBOOL).to(beFalse()); + }); + }); + + context(@"when permissions exist but no HMI level", ^{ + beforeEach(^{ + [[NSNotificationCenter defaultCenter] postNotification:testPermissionsNotification]; + testResultBOOL = [testPermissionsManager isPermissionParameterAllowed:testRPCNameAllAllowed parameter:someRPCParameterName]; + }); + }); + + context(@"When there are permission items", ^{ + context(@"when rpc is not allowed", ^{ + + }); + + context(@"when there are no paramter permissions", ^{ + + }); + + context(@"when there are no parameter permissions allowed", ^{ + + }); + }); + }); + describe(@"removing observers", ^{ context(@"removing the only observer", ^{ __block NSInteger numberOfTimesObserverCalled = 0; |