diff options
author | Kujtim Shala <kshala@ford.com> | 2019-08-29 18:42:02 +0200 |
---|---|---|
committer | Kujtim Shala <kshala@ford.com> | 2019-08-29 18:42:02 +0200 |
commit | 770bb996c4dc5590b62901ef49a789e07cd9c160 (patch) | |
tree | 7556745e006b839e23b377b7d64b3d964d6940be | |
parent | 7094527523dbc0d98df8a3c219f611e427852391 (diff) | |
download | sdl_ios-770bb996c4dc5590b62901ef49a789e07cd9c160.tar.gz |
All unit tests.
-rw-r--r-- | SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m | 141 |
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()); |