summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicoleYarroch <nicole@livio.io>2018-04-18 09:42:42 -0400
committerNicoleYarroch <nicole@livio.io>2018-04-18 09:42:42 -0400
commit0f188aead995a6cba0f7bfc63ee85b470f57dd45 (patch)
tree516d5722037633fd30ce1773603d0663902f0ed0
parent163cbf3741642ee9d40d756d6c06de78935b68fe (diff)
downloadsdl_ios-0f188aead995a6cba0f7bfc63ee85b470f57dd45.tar.gz
Fixed stop() method of the system capability managerfeature/issue_720_system_capability_manager
Signed-off-by: NicoleYarroch <nicole@livio.io>
-rw-r--r--SmartDeviceLink/SDLSystemCapabilityManager.h2
-rw-r--r--SmartDeviceLink/SDLSystemCapabilityManager.m18
-rw-r--r--SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m42
3 files changed, 58 insertions, 4 deletions
diff --git a/SmartDeviceLink/SDLSystemCapabilityManager.h b/SmartDeviceLink/SDLSystemCapabilityManager.h
index 6a17b115d..36f58a735 100644
--- a/SmartDeviceLink/SDLSystemCapabilityManager.h
+++ b/SmartDeviceLink/SDLSystemCapabilityManager.h
@@ -107,7 +107,7 @@ typedef void (^SDLUpdateCapabilityHandler)(NSError * _Nullable error, SDLSystemC
*
* True if the head unit supports voice recognition; false if not.
*/
-@property (nonatomic, readonly) BOOL vrCapability;
+@property (nonatomic, assign, readonly) BOOL vrCapability;
/**
* @see SDLAudioPassThruCapabilities
diff --git a/SmartDeviceLink/SDLSystemCapabilityManager.m b/SmartDeviceLink/SDLSystemCapabilityManager.m
index 28f7bf262..9168fd81e 100644
--- a/SmartDeviceLink/SDLSystemCapabilityManager.m
+++ b/SmartDeviceLink/SDLSystemCapabilityManager.m
@@ -35,7 +35,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (nullable, copy, nonatomic, readwrite) NSArray<SDLHMIZoneCapabilities> *hmiZoneCapabilities;
@property (nullable, copy, nonatomic, readwrite) NSArray<SDLSpeechCapabilities> *speechCapabilities;
@property (nullable, copy, nonatomic, readwrite) NSArray<SDLPrerecordedSpeech> *prerecordedSpeechCapabilities;
-@property (nonatomic, readwrite) BOOL vrCapability;
+@property (nonatomic, assign, readwrite) BOOL vrCapability;
@property (nullable, copy, nonatomic, readwrite) NSArray<SDLAudioPassThruCapabilities *> *audioPassThruCapabilities;
@property (nullable, strong, nonatomic, readwrite) SDLAudioPassThruCapabilities *pcmStreamCapability;
@property (nullable, strong, nonatomic, readwrite) SDLNavigationCapability *navigationCapability;
@@ -63,7 +63,21 @@ NS_ASSUME_NONNULL_BEGIN
- (void)stop {
SDLLogD(@"System Capability manager stopped");
- [[NSNotificationCenter defaultCenter] removeObserver:self];
+ _displayCapabilities = nil;
+ _hmiCapabilities = nil;
+ _softButtonCapabilities = nil;
+ _buttonCapabilities = nil;
+ _presetBankCapabilities = nil;
+ _hmiZoneCapabilities = nil;
+ _speechCapabilities = nil;
+ _prerecordedSpeechCapabilities = nil;
+ _vrCapability = NO;
+ _audioPassThruCapabilities = nil;
+ _pcmStreamCapability = nil;
+ _navigationCapability = nil;
+ _phoneCapability = nil;
+ _videoStreamingCapability = nil;
+ _remoteControlCapability = nil;
}
diff --git a/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m b/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m
index 0b33ec7a7..ae6ba1ca9 100644
--- a/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m
+++ b/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m
@@ -253,7 +253,7 @@ describe(@"System capability manager", ^{
});
});
- context(@"When notified of a Get System Capability Response ", ^{
+ context(@"When notified of a Get System Capability Response", ^{
__block SDLGetSystemCapabilityResponse *testGetSystemCapabilityResponse;
__block SDLPhoneCapability *testPhoneCapability = nil;
@@ -351,6 +351,46 @@ describe(@"System capability manager", ^{
expect(testSystemCapabilityManager.remoteControlCapability).to(beNil());
});
});
+
+ context(@"When the system capability manager is stopped after being started", ^{
+ beforeEach(^{
+ SDLDisplayCapabilities *testDisplayCapabilities = [[SDLDisplayCapabilities alloc] init];
+ testDisplayCapabilities.graphicSupported = @NO;
+
+ SDLRegisterAppInterfaceResponse *testRegisterAppInterfaceResponse = [[SDLRegisterAppInterfaceResponse alloc] init];
+ testRegisterAppInterfaceResponse.displayCapabilities = testDisplayCapabilities;
+ testRegisterAppInterfaceResponse.success = @YES;
+
+ SDLRPCResponseNotification *notification = [[SDLRPCResponseNotification alloc] initWithName:SDLDidReceiveRegisterAppInterfaceResponse object:self rpcResponse:testRegisterAppInterfaceResponse];
+ [[NSNotificationCenter defaultCenter] postNotification:notification];
+
+ expect(testSystemCapabilityManager.displayCapabilities).to(equal(testDisplayCapabilities));
+ });
+
+ describe(@"When stopped", ^{
+ beforeEach(^{
+ [testSystemCapabilityManager stop];
+ });
+
+ it(@"It should reset the system capability manager properties correctly", ^{
+ expect(testSystemCapabilityManager.displayCapabilities).to(beNil());
+ expect(testSystemCapabilityManager.hmiCapabilities).to(beNil());
+ expect(testSystemCapabilityManager.softButtonCapabilities).to(beNil());
+ expect(testSystemCapabilityManager.buttonCapabilities).to(beNil());
+ expect(testSystemCapabilityManager.presetBankCapabilities).to(beNil());
+ expect(testSystemCapabilityManager.hmiZoneCapabilities).to(beNil());
+ expect(testSystemCapabilityManager.speechCapabilities).to(beNil());
+ expect(testSystemCapabilityManager.prerecordedSpeechCapabilities).to(beNil());
+ expect(testSystemCapabilityManager.vrCapability).to(beFalse());
+ expect(testSystemCapabilityManager.audioPassThruCapabilities).to(beNil());
+ expect(testSystemCapabilityManager.pcmStreamCapability).to(beNil());
+ expect(testSystemCapabilityManager.phoneCapability).to(beNil());
+ expect(testSystemCapabilityManager.navigationCapability).to(beNil());
+ expect(testSystemCapabilityManager.videoStreamingCapability).to(beNil());
+ expect(testSystemCapabilityManager.remoteControlCapability).to(beNil());
+ });
+ });
+ });
});
QuickSpecEnd