summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorleonid lokhmatov, Luxoft <zaqqqqqqqq@gmail.com>2021-02-09 09:55:43 +0200
committerleonid lokhmatov, Luxoft <zaqqqqqqqq@gmail.com>2021-02-09 09:55:43 +0200
commitd734ed1dc3e130b7ec19c089efb9c67531ff5a01 (patch)
tree57387dbfce7a35d9e66bf35b48f5f877d7cc4375
parent392b96181f2cf3a3e161b92f2435ae26e311b296 (diff)
downloadsdl_ios-d734ed1dc3e130b7ec19c089efb9c67531ff5a01.tar.gz
SDL0238 'Keyboard Enhancements r2': fix SDLWindowCapability and its test.
-rw-r--r--SmartDeviceLink/public/SDLWindowCapability.h16
-rw-r--r--SmartDeviceLink/public/SDLWindowCapability.m7
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWindowCapabilitySpec.m193
3 files changed, 127 insertions, 89 deletions
diff --git a/SmartDeviceLink/public/SDLWindowCapability.h b/SmartDeviceLink/public/SDLWindowCapability.h
index efdbf72c3..6c8af50b3 100644
--- a/SmartDeviceLink/public/SDLWindowCapability.h
+++ b/SmartDeviceLink/public/SDLWindowCapability.h
@@ -67,6 +67,22 @@ NS_ASSUME_NONNULL_BEGIN
- (instancetype)initWithWindowID:(nullable NSNumber<SDLInt> *)windowID textFields:(nullable NSArray<SDLTextField *> *)textFields imageFields:(nullable NSArray<SDLImageField *> *)imageFields imageTypeSupported:(nullable NSArray<SDLImageType> *)imageTypeSupported templatesAvailable:(nullable NSArray<NSString *> *)templatesAvailable numCustomPresetsAvailable:(nullable NSNumber<SDLUInt> *)numCustomPresetsAvailable buttonCapabilities:(nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities softButtonCapabilities:(nullable NSArray<SDLSoftButtonCapabilities *> *)softButtonCapabilities menuLayoutsAvailable:(nullable NSArray<SDLMenuLayout> *)menuLayoutsAvailable dynamicUpdateCapabilities:(nullable SDLDynamicUpdateCapabilities *)dynamicUpdateCapabilities;
/**
+ * @param windowID - windowID
+ * @param textFields - textFields
+ * @param imageFields - imageFields
+ * @param imageTypeSupported - imageTypeSupported
+ * @param templatesAvailable - templatesAvailable
+ * @param numCustomPresetsAvailable - numCustomPresetsAvailable
+ * @param buttonCapabilities - buttonCapabilities
+ * @param softButtonCapabilities - softButtonCapabilities
+ * @param menuLayoutsAvailable - menuLayoutsAvailable
+ * @param dynamicUpdateCapabilities - dynamicUpdateCapabilities
+ * @param keyboardCapabilities - keyboardCapabilities
+ * @return A SDLWindowCapability object
+ */
+- (instancetype)initWithWindowID:(nullable NSNumber<SDLInt> *)windowID textFields:(nullable NSArray<SDLTextField *> *)textFields imageFields:(nullable NSArray<SDLImageField *> *)imageFields imageTypeSupported:(nullable NSArray<SDLImageType> *)imageTypeSupported templatesAvailable:(nullable NSArray<NSString *> *)templatesAvailable numCustomPresetsAvailable:(nullable NSNumber<SDLUInt> *)numCustomPresetsAvailable buttonCapabilities:(nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities softButtonCapabilities:(nullable NSArray<SDLSoftButtonCapabilities *> *)softButtonCapabilities menuLayoutsAvailable:(nullable NSArray<SDLMenuLayout> *)menuLayoutsAvailable dynamicUpdateCapabilities:(nullable SDLDynamicUpdateCapabilities *)dynamicUpdateCapabilities keyboardCapabilities:(nullable SDLKeyboardCapabilities *)keyboardCapabilities;
+
+/**
The specified ID of the window. Can be set to a predefined window, or omitted for the main window on the main display.
Size: min 1 max 100
diff --git a/SmartDeviceLink/public/SDLWindowCapability.m b/SmartDeviceLink/public/SDLWindowCapability.m
index 0a5c084da..3e81561d5 100644
--- a/SmartDeviceLink/public/SDLWindowCapability.m
+++ b/SmartDeviceLink/public/SDLWindowCapability.m
@@ -44,7 +44,11 @@
@implementation SDLWindowCapability
- (instancetype)initWithWindowID:(nullable NSNumber<SDLInt> *)windowID textFields:(nullable NSArray<SDLTextField *> *)textFields imageFields:(nullable NSArray<SDLImageField *> *)imageFields imageTypeSupported:(nullable NSArray<SDLImageType> *)imageTypeSupported templatesAvailable:(nullable NSArray<NSString *> *)templatesAvailable numCustomPresetsAvailable:(nullable NSNumber<SDLUInt> *)numCustomPresetsAvailable buttonCapabilities:(nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities softButtonCapabilities:(nullable NSArray<SDLSoftButtonCapabilities *> *)softButtonCapabilities menuLayoutsAvailable:(nullable NSArray<SDLMenuLayout> *)menuLayoutsAvailable dynamicUpdateCapabilities:(nullable SDLDynamicUpdateCapabilities *)dynamicUpdateCapabilities {
- self = [super init];
+ return [self initWithWindowID:windowID textFields:textFields imageFields:imageFields imageTypeSupported:imageTypeSupported templatesAvailable:templatesAvailable numCustomPresetsAvailable:numCustomPresetsAvailable buttonCapabilities:buttonCapabilities softButtonCapabilities:softButtonCapabilities menuLayoutsAvailable:menuLayoutsAvailable dynamicUpdateCapabilities:dynamicUpdateCapabilities keyboardCapabilities:nil];
+}
+
+- (instancetype)initWithWindowID:(nullable NSNumber<SDLInt> *)windowID textFields:(nullable NSArray<SDLTextField *> *)textFields imageFields:(nullable NSArray<SDLImageField *> *)imageFields imageTypeSupported:(nullable NSArray<SDLImageType> *)imageTypeSupported templatesAvailable:(nullable NSArray<NSString *> *)templatesAvailable numCustomPresetsAvailable:(nullable NSNumber<SDLUInt> *)numCustomPresetsAvailable buttonCapabilities:(nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities softButtonCapabilities:(nullable NSArray<SDLSoftButtonCapabilities *> *)softButtonCapabilities menuLayoutsAvailable:(nullable NSArray<SDLMenuLayout> *)menuLayoutsAvailable dynamicUpdateCapabilities:(nullable SDLDynamicUpdateCapabilities *)dynamicUpdateCapabilities keyboardCapabilities:(nullable SDLKeyboardCapabilities *)keyboardCapabilities {
+ self = [self init];
if (!self) {
return nil;
}
@@ -58,6 +62,7 @@
self.softButtonCapabilities = softButtonCapabilities;
self.menuLayoutsAvailable = menuLayoutsAvailable;
self.dynamicUpdateCapabilities = dynamicUpdateCapabilities;
+ self.keyboardCapabilities = keyboardCapabilities;
return self;
}
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWindowCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWindowCapabilitySpec.m
index e8c2514b4..ef4a193ad 100644
--- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWindowCapabilitySpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWindowCapabilitySpec.m
@@ -5,114 +5,131 @@
#import <Quick/Quick.h>
#import <Nimble/Nimble.h>
-#import "SDLWindowCapability.h"
-
#import "SDLButtonCapabilities.h"
#import "SDLDynamicUpdateCapabilities.h"
#import "SDLImageField.h"
#import "SDLImageType.h"
+#import "SDLKeyboardCapabilities.h"
#import "SDLRPCParameterNames.h"
#import "SDLSoftButtonCapabilities.h"
#import "SDLTextField.h"
#import "SDLTextFieldName.h"
+#import "SDLWindowCapability.h"
QuickSpecBegin(SDLWindowCapabilitySpec)
+NSString *testTemplateAvailable = @"myTemplate";
+SDLTextField *testTextField = [[SDLTextField alloc] init];
+NSArray<SDLTextField *> *textFields = @[testTextField];
+NSString *textFieldName = @"t.f.name";
+testTextField.name = textFieldName;
+SDLImageField *testImageField = [[SDLImageField alloc] init];
+NSArray<SDLImageField *> *imageFields = @[testImageField];
+NSString *testImageName = @"test Image field";
+testImageField.name = testImageName;
+SDLButtonCapabilities *testButtonCapabilities = [[SDLButtonCapabilities alloc] init];
+NSArray<SDLButtonCapabilities *> *buttonCapabilities = @[testButtonCapabilities];
+testButtonCapabilities.name = SDLButtonNameOk;
+testButtonCapabilities.shortPressAvailable = @YES;
+testButtonCapabilities.longPressAvailable = @YES;
+testButtonCapabilities.upDownAvailable = @YES;
+SDLSoftButtonCapabilities *testSoftButtonsCapabilities = [[SDLSoftButtonCapabilities alloc] init];
+testSoftButtonsCapabilities.imageSupported = @YES;
+SDLImageType testImageType = SDLImageTypeDynamic;
+SDLMenuLayout testMenuLayout = SDLMenuLayoutTiles;
+SDLDynamicUpdateCapabilities *testDynamicUpdates = [[SDLDynamicUpdateCapabilities alloc] initWithSupportedDynamicImageFieldNames:@[SDLImageFieldNameSubMenuIcon] supportsDynamicSubMenus:@YES];
+SDLKeyboardCapabilities *keyboardCapabilities = [[SDLKeyboardCapabilities alloc] init];
+id windowID = @444;
+id numCustomPresetsAvailable = @10;
+NSArray<SDLImageType> *imageTypeSupported = @[testImageType];
+NSArray<NSString *> *templatesAvailable = @[testTemplateAvailable];
+NSArray<SDLSoftButtonCapabilities *> *softButtonCapabilities = @[testSoftButtonsCapabilities];
+NSArray<SDLMenuLayout> *menuLayoutsAvailable = @[testMenuLayout];
__block SDLWindowCapability *testStruct = nil;
-__block SDLTextField* testTextField = nil;
-__block SDLImageField *testImageField = nil;
-__block SDLButtonCapabilities *testButtonCapabilities = nil;
-__block SDLSoftButtonCapabilities *testSoftButtonsCapabilities = nil;
-__block SDLImageType testImageType = nil;
-__block NSString *testTextName = nil;
-__block NSString *testImageName = nil;
-__block NSString *testTemplateAvailable = nil;
-__block SDLMenuLayout testMenuLayout = SDLMenuLayoutTiles;
-__block SDLDynamicUpdateCapabilities *testDynamicUpdates = nil;
+describe(@"getter/setter tests", ^{
+ afterEach(^{
+ testStruct = nil;
+ });
-describe(@"Getter/Setter Tests", ^ {
- beforeEach(^{
- testImageType = SDLImageTypeDynamic;
- testTextName = @"test Text field";
- testImageName = @"test Image field";
-
- testTextField = [[SDLTextField alloc] init];
- testTextField.name = SDLTextFieldNameTertiaryText;
- testImageField = [[SDLImageField alloc] init];
- testImageField.name = testImageName;
-
- testButtonCapabilities = [[SDLButtonCapabilities alloc] init];
- testButtonCapabilities.name = SDLButtonNameOk;
- testButtonCapabilities.shortPressAvailable = @YES;
- testButtonCapabilities.longPressAvailable = @YES;
- testButtonCapabilities.upDownAvailable = @YES;
-
- testSoftButtonsCapabilities = [[SDLSoftButtonCapabilities alloc] init];
- testSoftButtonsCapabilities.imageSupported = @YES;
+ context(@"init and assign", ^{
+ beforeEach(^{
+ testStruct = [[SDLWindowCapability alloc] init];
+ testStruct.windowID = windowID;
+ testStruct.numCustomPresetsAvailable = numCustomPresetsAvailable;
+ testStruct.textFields = @[testTextField];
+ testStruct.imageFields = @[testImageField];
+ testStruct.imageTypeSupported = @[testImageType];
+ testStruct.buttonCapabilities = @[testButtonCapabilities];
+ testStruct.softButtonCapabilities = @[testSoftButtonsCapabilities];
+ testStruct.menuLayoutsAvailable = @[testMenuLayout];
+ testStruct.templatesAvailable = @[testTemplateAvailable];
+ testStruct.dynamicUpdateCapabilities = testDynamicUpdates;
+ testStruct.keyboardCapabilities = keyboardCapabilities;
+ });
- testTemplateAvailable = @"myTemplate";
- testDynamicUpdates = [[SDLDynamicUpdateCapabilities alloc] initWithSupportedDynamicImageFieldNames:@[SDLImageFieldNameSubMenuIcon] supportsDynamicSubMenus:@YES];
+ it(@"expect to be set properly", ^{
+ expect(testStruct.windowID).to(equal(windowID));
+ expect(testStruct.textFields.firstObject.name).to(equal(textFieldName));
+ expect(testStruct.imageFields.firstObject.name).to(equal(testImageName));
+ expect(testStruct.numCustomPresetsAvailable).to(equal(numCustomPresetsAvailable));
+ expect(testStruct.buttonCapabilities.firstObject.name).to(equal(SDLButtonNameOk));
+ expect(testStruct.buttonCapabilities.firstObject.shortPressAvailable).to(equal(@YES));
+ expect(testStruct.buttonCapabilities.firstObject.longPressAvailable).to(equal(@YES));
+ expect(testStruct.buttonCapabilities.firstObject.name).to(equal(SDLButtonNameOk));
+ expect(testStruct.softButtonCapabilities.firstObject.imageSupported).to(equal(@YES));
+ expect(testStruct.menuLayoutsAvailable).to(equal(@[testMenuLayout]));
+ expect(testStruct.templatesAvailable).to(equal(@[testTemplateAvailable]));
+ expect(testStruct.dynamicUpdateCapabilities).to(equal(testDynamicUpdates));
+ expect(testStruct.imageTypeSupported).to(equal(@[testImageType]));
+ expect(testStruct.keyboardCapabilities).to(equal(keyboardCapabilities));
+ });
});
-
- it(@"Should set and get correctly", ^ {
- testStruct = [[SDLWindowCapability alloc] init];
- testStruct.windowID = @444;
- testStruct.numCustomPresetsAvailable = @10;
- testStruct.textFields = @[testTextField];
- testStruct.imageFields = @[testImageField];
- testStruct.imageTypeSupported = @[testImageType];
- testStruct.buttonCapabilities = @[testButtonCapabilities];
- testStruct.softButtonCapabilities = @[testSoftButtonsCapabilities];
- testStruct.menuLayoutsAvailable = @[testMenuLayout];
- testStruct.templatesAvailable = @[testTemplateAvailable];
- testStruct.dynamicUpdateCapabilities = testDynamicUpdates;
-
- expect(testStruct.windowID).to(equal(@444));
- expect(testStruct.textFields.firstObject.name).to(equal(SDLTextFieldNameTertiaryText));
- expect(testStruct.imageFields.firstObject.name).to(equal(testImageName));
- expect(testStruct.numCustomPresetsAvailable).to(equal(@10));
- expect(testStruct.buttonCapabilities.firstObject.name).to(equal(SDLButtonNameOk));
- expect(testStruct.buttonCapabilities.firstObject.shortPressAvailable).to(equal(@YES));
- expect(testStruct.buttonCapabilities.firstObject.longPressAvailable).to(equal(@YES));
- expect(testStruct.buttonCapabilities.firstObject.name).to(equal(SDLButtonNameOk));
- expect(testStruct.softButtonCapabilities.firstObject.imageSupported).to(equal(@YES));
- expect(testStruct.menuLayoutsAvailable).to(equal(@[testMenuLayout]));
- expect(testStruct.templatesAvailable).to(equal(@[testTemplateAvailable]));
- expect(testStruct.dynamicUpdateCapabilities).to(equal(testDynamicUpdates));
- });
-});
-describe(@"initializing with ", ^{
- beforeEach(^{
- testStruct = [[SDLWindowCapability alloc] initWithWindowID:@444 textFields:@[testTextField] imageFields:@[testImageField] imageTypeSupported:@[testImageType] templatesAvailable:@[testTemplateAvailable] numCustomPresetsAvailable:@10 buttonCapabilities:@[testButtonCapabilities] softButtonCapabilities:@[testSoftButtonsCapabilities] menuLayoutsAvailable:@[testMenuLayout] dynamicUpdateCapabilities:testDynamicUpdates];
+ context(@"initWithWindowID:textFields:imageFields:imageTypeSupported:templatesAvailable:numCustomPresetsAvailable:buttonCapabilities:softButtonCapabilities:menuLayoutsAvailable:dynamicUpdateCapabilities:", ^{
+ beforeEach(^{
+ testStruct = [[SDLWindowCapability alloc] initWithWindowID:windowID textFields:textFields imageFields:imageFields imageTypeSupported:imageTypeSupported templatesAvailable:templatesAvailable numCustomPresetsAvailable:numCustomPresetsAvailable buttonCapabilities:buttonCapabilities softButtonCapabilities:softButtonCapabilities menuLayoutsAvailable:menuLayoutsAvailable dynamicUpdateCapabilities:testDynamicUpdates];
+ });
+
+ it(@"expect to be set properly", ^{
+ expect(testStruct.windowID).to(equal(windowID));
+ expect(testStruct.textFields.firstObject.name).to(equal(textFieldName));
+ expect(testStruct.imageFields.firstObject.name).to(equal(testImageName));
+ expect(testStruct.numCustomPresetsAvailable).to(equal(numCustomPresetsAvailable));
+ expect(testStruct.buttonCapabilities.firstObject.name).to(equal(SDLButtonNameOk));
+ expect(testStruct.buttonCapabilities.firstObject.shortPressAvailable).to(equal(@YES));
+ expect(testStruct.buttonCapabilities.firstObject.longPressAvailable).to(equal(@YES));
+ expect(testStruct.buttonCapabilities.firstObject.name).to(equal(SDLButtonNameOk));
+ expect(testStruct.softButtonCapabilities.firstObject.imageSupported).to(equal(@YES));
+ expect(testStruct.menuLayoutsAvailable).to(equal(@[testMenuLayout]));
+ expect(testStruct.templatesAvailable).to(equal(@[testTemplateAvailable]));
+ expect(testStruct.dynamicUpdateCapabilities).to(equal(testDynamicUpdates));
+ expect(testStruct.imageTypeSupported).to(equal(@[testImageType]));
+ expect(testStruct.keyboardCapabilities).to(beNil());
+ });
});
- it(@"Should set and get correctly", ^ {
- testStruct = [[SDLWindowCapability alloc] init];
- testStruct.windowID = @444;
- testStruct.numCustomPresetsAvailable = @10;
- testStruct.textFields = @[testTextField];
- testStruct.imageFields = @[testImageField];
- testStruct.imageTypeSupported = @[testImageType];
- testStruct.buttonCapabilities = @[testButtonCapabilities];
- testStruct.softButtonCapabilities = @[testSoftButtonsCapabilities];
- testStruct.menuLayoutsAvailable = @[testMenuLayout];
- testStruct.templatesAvailable = @[testTemplateAvailable];
- testStruct.dynamicUpdateCapabilities = testDynamicUpdates;
+ context(@"initWithWindowID:textFields:imageFields:imageTypeSupported:templatesAvailable:numCustomPresetsAvailable:buttonCapabilities:softButtonCapabilities:menuLayoutsAvailable:dynamicUpdateCapabilities:keyboardCapabilities:", ^{
+ beforeEach(^{
+ testStruct = [[SDLWindowCapability alloc] initWithWindowID:windowID textFields:textFields imageFields:imageFields imageTypeSupported:imageTypeSupported templatesAvailable:templatesAvailable numCustomPresetsAvailable:numCustomPresetsAvailable buttonCapabilities:buttonCapabilities softButtonCapabilities:softButtonCapabilities menuLayoutsAvailable:menuLayoutsAvailable dynamicUpdateCapabilities:testDynamicUpdates keyboardCapabilities:keyboardCapabilities];
+ });
- expect(testStruct.windowID).to(equal(@444));
- expect(testStruct.textFields.firstObject.name).to(equal(SDLTextFieldNameTertiaryText));
- expect(testStruct.imageFields.firstObject.name).to(equal(testImageName));
- expect(testStruct.numCustomPresetsAvailable).to(equal(@10));
- expect(testStruct.buttonCapabilities.firstObject.name).to(equal(SDLButtonNameOk));
- expect(testStruct.buttonCapabilities.firstObject.shortPressAvailable).to(equal(@YES));
- expect(testStruct.buttonCapabilities.firstObject.longPressAvailable).to(equal(@YES));
- expect(testStruct.buttonCapabilities.firstObject.name).to(equal(SDLButtonNameOk));
- expect(testStruct.softButtonCapabilities.firstObject.imageSupported).to(equal(@YES));
- expect(testStruct.menuLayoutsAvailable).to(equal(@[testMenuLayout]));
- expect(testStruct.templatesAvailable).to(equal(@[testTemplateAvailable]));
- expect(testStruct.dynamicUpdateCapabilities).to(equal(testDynamicUpdates));
+ it(@"expect to be set properly", ^{
+ expect(testStruct.windowID).to(equal(windowID));
+ expect(testStruct.textFields.firstObject.name).to(equal(textFieldName));
+ expect(testStruct.imageFields.firstObject.name).to(equal(testImageName));
+ expect(testStruct.numCustomPresetsAvailable).to(equal(numCustomPresetsAvailable));
+ expect(testStruct.buttonCapabilities.firstObject.name).to(equal(SDLButtonNameOk));
+ expect(testStruct.buttonCapabilities.firstObject.shortPressAvailable).to(equal(@YES));
+ expect(testStruct.buttonCapabilities.firstObject.longPressAvailable).to(equal(@YES));
+ expect(testStruct.buttonCapabilities.firstObject.name).to(equal(SDLButtonNameOk));
+ expect(testStruct.softButtonCapabilities.firstObject.imageSupported).to(equal(@YES));
+ expect(testStruct.menuLayoutsAvailable).to(equal(@[testMenuLayout]));
+ expect(testStruct.templatesAvailable).to(equal(@[testTemplateAvailable]));
+ expect(testStruct.dynamicUpdateCapabilities).to(equal(testDynamicUpdates));
+ expect(testStruct.imageTypeSupported).to(equal(@[testImageType]));
+ expect(testStruct.keyboardCapabilities).to(equal(keyboardCapabilities));
+ });
});
});