summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKujtim Shala <kshala@ford.com>2019-08-29 18:42:02 +0200
committerKujtim Shala <kshala@ford.com>2019-08-29 18:42:02 +0200
commit770bb996c4dc5590b62901ef49a789e07cd9c160 (patch)
tree7556745e006b839e23b377b7d64b3d964d6940be
parent7094527523dbc0d98df8a3c219f611e427852391 (diff)
downloadsdl_ios-770bb996c4dc5590b62901ef49a789e07cd9c160.tar.gz
All unit tests.
-rw-r--r--SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m141
1 files changed, 93 insertions, 48 deletions
diff --git a/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m b/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m
index 2354e8f29..40a7637e8 100644
--- a/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m
+++ b/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m
@@ -8,15 +8,19 @@
#import "SDLAudioPassThruCapabilities.h"
#import "SDLButtonCapabilities.h"
#import "SDLDisplayCapabilities.h"
+#import "SDLDisplayCapability.h"
#import "SDLGetSystemCapability.h"
#import "SDLGetSystemCapabilityResponse.h"
#import "SDLHMICapabilities.h"
+#import "SDLImageField.h"
+#import "SDLImageResolution.h"
#import "SDLMediaServiceManifest.h"
#import "SDLNavigationCapability.h"
#import "SDLNotificationConstants.h"
#import "SDLOnHMIStatus.h"
#import "SDLOnSystemCapabilityUpdated.h"
#import "SDLPhoneCapability.h"
+#import "SDLPredefinedWindows.h"
#import "SDLPresetBankCapabilities.h"
#import "SDLRegisterAppInterfaceResponse.h"
#import "SDLRemoteControlCapabilities.h"
@@ -27,7 +31,10 @@
#import "SDLSoftButtonCapabilities.h"
#import "SDLSystemCapability.h"
#import "SDLSystemCapabilityManager.h"
+#import "SDLTextField.h"
#import "SDLVideoStreamingCapability.h"
+#import "SDLWindowCapability.h"
+#import "SDLWindowTypeCapabilities.h"
#import "TestConnectionManager.h"
#import "TestSystemCapabilityObserver.h"
@@ -45,12 +52,70 @@ describe(@"System capability manager", ^{
__block SDLSystemCapabilityManager *testSystemCapabilityManager = nil;
__block TestConnectionManager *testConnectionManager = nil;
+ __block NSArray<SDLDisplayCapability *> *testDisplayCapabilityList = nil;
+ __block SDLDisplayCapabilities *testDisplayCapabilities = nil;
+ __block NSArray<SDLSoftButtonCapabilities *> *testSoftButtonCapabilities = nil;
+ __block NSArray<SDLButtonCapabilities *> *testButtonCapabilities = nil;
+ __block SDLPresetBankCapabilities *testPresetBankCapabilities = nil;
+
beforeEach(^{
testConnectionManager = [[TestConnectionManager alloc] init];
testSystemCapabilityManager = [[SDLSystemCapabilityManager alloc] initWithConnectionManager:testConnectionManager];
+
+ testDisplayCapabilities = [[SDLDisplayCapabilities alloc] init];
+ testDisplayCapabilities.graphicSupported = @NO;
+ testDisplayCapabilities.displayType = SDLDisplayTypeGeneric;
+ testDisplayCapabilities.displayName = @"TEST_NAME";
+ SDLTextField *textField = [[SDLTextField alloc] init];
+ textField.name = SDLTextFieldNameMainField1;
+ textField.characterSet = SDLCharacterSetCID1;
+ textField.width = @(123);
+ textField.rows = @(1);
+ testDisplayCapabilities.textFields = @[textField];
+ SDLImageField *imageField = [[SDLImageField alloc] init];
+ imageField.name = SDLImageFieldNameAppIcon;
+ imageField.imageTypeSupported = @[SDLFileTypePNG];
+ imageField.imageResolution = [[SDLImageResolution alloc] initWithWidth:42 height:4711];
+ testDisplayCapabilities.imageFields = @[imageField];
+ testDisplayCapabilities.mediaClockFormats = @[SDLMediaClockFormatClock3];
+ testDisplayCapabilities.templatesAvailable = @[@"DEFAULT", @"MEDIA"];
+ testDisplayCapabilities.numCustomPresetsAvailable = @(8);
+
+ SDLSoftButtonCapabilities *softButtonCapability = [[SDLSoftButtonCapabilities alloc] init];
+ softButtonCapability.shortPressAvailable = @YES;
+ softButtonCapability.longPressAvailable = @NO;
+ softButtonCapability.upDownAvailable = @NO;
+ softButtonCapability.imageSupported = @YES;
+ testSoftButtonCapabilities = @[softButtonCapability];
+
+ SDLButtonCapabilities *buttonCapabilities = [[SDLButtonCapabilities alloc] init];
+ buttonCapabilities.name = SDLButtonNameOk;
+ buttonCapabilities.shortPressAvailable = @YES;
+ buttonCapabilities.longPressAvailable = @YES;
+ buttonCapabilities.upDownAvailable = @YES;
+ testButtonCapabilities = @[buttonCapabilities];
+
+ testPresetBankCapabilities = [[SDLPresetBankCapabilities alloc] init];
+ testPresetBankCapabilities.onScreenPresetsAvailable = @NO;
+
+ SDLWindowTypeCapabilities *windowTypeCapabilities = [[SDLWindowTypeCapabilities alloc] initWithType:SDLWindowTypeMain maximumNumberOfWindows:1];
+ SDLDisplayCapability *displayCapability = [[SDLDisplayCapability alloc] initWithDisplayName:testDisplayCapabilities.displayName];
+ displayCapability.windowTypeSupported = @[windowTypeCapabilities];
+ SDLWindowCapability *defaultWindowCapability = [[SDLWindowCapability alloc] init];
+ defaultWindowCapability.windowID = @(SDLPredefinedWindowsDefaultWindow);
+ defaultWindowCapability.buttonCapabilities = testButtonCapabilities.copy;
+ defaultWindowCapability.softButtonCapabilities = testSoftButtonCapabilities.copy;
+ defaultWindowCapability.templatesAvailable = testDisplayCapabilities.templatesAvailable.copy;
+ defaultWindowCapability.numCustomPresetsAvailable = testDisplayCapabilities.numCustomPresetsAvailable.copy;
+ defaultWindowCapability.textFields = testDisplayCapabilities.textFields.copy;
+ defaultWindowCapability.imageFields = testDisplayCapabilities.imageFields.copy;
+ defaultWindowCapability.imageTypeSupported = @[SDLImageTypeStatic];
+ displayCapability.windowCapabilities = @[defaultWindowCapability];
+ testDisplayCapabilityList = @[displayCapability];
});
it(@"should initialize the system capability manager properties correctly", ^{
+ expect(testSystemCapabilityManager.displays).to(beNil());
expect(testSystemCapabilityManager.displayCapabilities).to(beNil());
expect(testSystemCapabilityManager.hmiCapabilities).to(beNil());
expect(testSystemCapabilityManager.softButtonCapabilities).to(beNil());
@@ -71,11 +136,7 @@ describe(@"System capability manager", ^{
context(@"When notified of a register app interface response", ^{
__block SDLRegisterAppInterfaceResponse *testRegisterAppInterfaceResponse = nil;
- __block SDLDisplayCapabilities *testDisplayCapabilities = nil;
__block SDLHMICapabilities *testHMICapabilities = nil;
- __block NSArray<SDLSoftButtonCapabilities *> *testSoftButtonCapabilities = nil;
- __block NSArray<SDLButtonCapabilities *> *testButtonCapabilities = nil;
- __block SDLPresetBankCapabilities *testPresetBankCapabilities = nil;
__block NSArray<SDLHMIZoneCapabilities> *testHMIZoneCapabilities = nil;
__block NSArray<SDLSpeechCapabilities> *testSpeechCapabilities = nil;
__block NSArray<SDLPrerecordedSpeech> *testPrerecordedSpeechCapabilities = nil;
@@ -84,31 +145,11 @@ describe(@"System capability manager", ^{
__block SDLAudioPassThruCapabilities *testPCMStreamCapability = nil;
beforeEach(^{
- testDisplayCapabilities = [[SDLDisplayCapabilities alloc] init];
- testDisplayCapabilities.graphicSupported = @NO;
-
testHMICapabilities = [[SDLHMICapabilities alloc] init];
testHMICapabilities.navigation = @NO;
testHMICapabilities.phoneCall = @YES;
testHMICapabilities.videoStreaming = @YES;
- SDLSoftButtonCapabilities *softButtonCapability = [[SDLSoftButtonCapabilities alloc] init];
- softButtonCapability.shortPressAvailable = @YES;
- softButtonCapability.longPressAvailable = @NO;
- softButtonCapability.upDownAvailable = @NO;
- softButtonCapability.imageSupported = @YES;
- testSoftButtonCapabilities = @[softButtonCapability];
-
- SDLButtonCapabilities *buttonCapabilities = [[SDLButtonCapabilities alloc] init];
- buttonCapabilities.name = SDLButtonNameOk;
- buttonCapabilities.shortPressAvailable = @YES;
- buttonCapabilities.longPressAvailable = @YES;
- buttonCapabilities.upDownAvailable = @YES;
- testButtonCapabilities = @[buttonCapabilities];
-
- testPresetBankCapabilities = [[SDLPresetBankCapabilities alloc] init];
- testPresetBankCapabilities.onScreenPresetsAvailable = @NO;
-
testHMIZoneCapabilities = @[SDLHMIZoneCapabilitiesFront, SDLHMIZoneCapabilitiesBack];
testSpeechCapabilities = @[SDLSpeechCapabilitiesText, SDLSpeechCapabilitiesSilence];
testPrerecordedSpeechCapabilities = @[SDLPrerecordedSpeechHelp, SDLPrerecordedSpeechInitial];
@@ -143,6 +184,7 @@ describe(@"System capability manager", ^{
});
it(@"should not save any of the RAIR capabilities", ^{
+ expect(testSystemCapabilityManager.displays).to(beNil());
expect(testSystemCapabilityManager.displayCapabilities).to(beNil());
expect(testSystemCapabilityManager.hmiCapabilities).to(beNil());
expect(testSystemCapabilityManager.softButtonCapabilities).to(beNil());
@@ -165,6 +207,7 @@ describe(@"System capability manager", ^{
});
it(@"should should save the RAIR capabilities", ^{
+ expect(testSystemCapabilityManager.displays).to(equal(testDisplayCapabilityList));
expect(testSystemCapabilityManager.displayCapabilities).to(equal(testDisplayCapabilities));
expect(testSystemCapabilityManager.hmiCapabilities).to(equal(testHMICapabilities));
expect(testSystemCapabilityManager.softButtonCapabilities).to(equal(testSoftButtonCapabilities));
@@ -191,32 +234,8 @@ describe(@"System capability manager", ^{
context(@"When notified of a SetDisplayLayout Response", ^ {
__block SDLSetDisplayLayoutResponse *testSetDisplayLayoutResponse = nil;
- __block SDLDisplayCapabilities *testDisplayCapabilities = nil;
- __block NSArray<SDLSoftButtonCapabilities *> *testSoftButtonCapabilities = nil;
- __block NSArray<SDLButtonCapabilities *> *testButtonCapabilities = nil;
- __block SDLPresetBankCapabilities *testPresetBankCapabilities = nil;
beforeEach(^{
- testDisplayCapabilities = [[SDLDisplayCapabilities alloc] init];
- testDisplayCapabilities.graphicSupported = @NO;
-
- SDLSoftButtonCapabilities *softButtonCapability = [[SDLSoftButtonCapabilities alloc] init];
- softButtonCapability.shortPressAvailable = @NO;
- softButtonCapability.longPressAvailable = @NO;
- softButtonCapability.upDownAvailable = @NO;
- softButtonCapability.imageSupported = @NO;
- testSoftButtonCapabilities = @[softButtonCapability];
-
- SDLButtonCapabilities *buttonCapabilities = [[SDLButtonCapabilities alloc] init];
- buttonCapabilities.name = SDLButtonNameOk;
- buttonCapabilities.shortPressAvailable = @NO;
- buttonCapabilities.longPressAvailable = @NO;
- buttonCapabilities.upDownAvailable = @NO;
- testButtonCapabilities = @[buttonCapabilities];
-
- testPresetBankCapabilities = [[SDLPresetBankCapabilities alloc] init];
- testPresetBankCapabilities.onScreenPresetsAvailable = @NO;
-
testSetDisplayLayoutResponse = [[SDLSetDisplayLayoutResponse alloc] init];
testSetDisplayLayoutResponse.displayCapabilities = testDisplayCapabilities;
testSetDisplayLayoutResponse.buttonCapabilities = testButtonCapabilities;
@@ -232,6 +251,7 @@ describe(@"System capability manager", ^{
});
it(@"should not save any capabilities", ^{
+ expect(testSystemCapabilityManager.displays).to(beNil());
expect(testSystemCapabilityManager.displayCapabilities).to(beNil());
expect(testSystemCapabilityManager.softButtonCapabilities).to(beNil());
expect(testSystemCapabilityManager.buttonCapabilities).to(beNil());
@@ -247,6 +267,7 @@ describe(@"System capability manager", ^{
});
it(@"should should save the capabilities", ^{
+ expect(testSystemCapabilityManager.displays).to(equal(testDisplayCapabilityList));
expect(testSystemCapabilityManager.displayCapabilities).to(equal(testDisplayCapabilities));
expect(testSystemCapabilityManager.softButtonCapabilities).to(equal(testSoftButtonCapabilities));
expect(testSystemCapabilityManager.buttonCapabilities).to(equal(testButtonCapabilities));
@@ -270,6 +291,29 @@ describe(@"System capability manager", ^{
expect(testSystemCapabilityManager.appServicesCapabilities).to(beNil());
});
});
+
+ context(@"when updating display capabilities with OnSystemCapabilityUpdated", ^{
+ __block SDLOnSystemCapabilityUpdated *testUpdateNotification = nil;
+ beforeEach(^{
+ SDLSystemCapability *newCapability = [[SDLSystemCapability alloc] initWithDisplayCapabilities:testDisplayCapabilityList];
+ testUpdateNotification = [[SDLOnSystemCapabilityUpdated alloc] initWithSystemCapability:newCapability];
+
+ });
+
+ it(@"should properly update display capability including conversion two times", ^{
+ // two times because capabilities are just saved in first run but merged/updated in subsequent runs
+ for (int i = 0; i < 2; i++) {
+ SDLRPCNotificationNotification *notification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidReceiveSystemCapabilityUpdatedNotification object:nil rpcNotification:testUpdateNotification];
+ [[NSNotificationCenter defaultCenter] postNotification:notification];
+
+ expect(testSystemCapabilityManager.displays).to(equal(testDisplayCapabilityList));
+ expect(testSystemCapabilityManager.displayCapabilities).to(equal(testDisplayCapabilities));
+ expect(testSystemCapabilityManager.buttonCapabilities).to(equal(testButtonCapabilities));
+ expect(testSystemCapabilityManager.softButtonCapabilities).to(equal(testSoftButtonCapabilities));
+ expect(testSystemCapabilityManager.presetBankCapabilities).to(beNil());
+ }
+ });
+ });
context(@"When sending a GetSystemCapability request", ^{
__block SDLGetSystemCapabilityResponse *testGetSystemCapabilityResponse = nil;
@@ -329,6 +373,7 @@ describe(@"System capability manager", ^{
afterEach(^{
// Make sure the RAIR properties and other system capabilities were not inadverdently set
+ expect(testSystemCapabilityManager.displays).to(beNil());
expect(testSystemCapabilityManager.displayCapabilities).to(beNil());
expect(testSystemCapabilityManager.hmiCapabilities).to(beNil());
expect(testSystemCapabilityManager.softButtonCapabilities).to(beNil());