summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlapinskijw <jlapinski.dev@gmail.com>2020-06-12 16:22:50 -0400
committerlapinskijw <jlapinski.dev@gmail.com>2020-06-12 16:22:50 -0400
commit7c3a96d4db9a0957a21764bb8acb72a240ce275e (patch)
tree96990da4196c5082f5fd6c5241cc96883db554b6
parentd547bbdb2080747a91cd7c3b57f317ae4e3d8f67 (diff)
downloadsdl_ios-7c3a96d4db9a0957a21764bb8acb72a240ce275e.tar.gz
started writing tests for parameter permission method
-rw-r--r--SmartDeviceLink/SDLPermissionManager.m2
-rw-r--r--SmartDeviceLinkTests/DevAPISpecs/SDLPermissionsManagerSpec.m58
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;