summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Fischer <joeljfischer@gmail.com>2021-08-05 13:48:25 -0400
committerJoel Fischer <joeljfischer@gmail.com>2021-08-05 13:48:25 -0400
commitbc30d8065918e9ae563105bee57d9ecedb8f68b1 (patch)
tree7a1704cfaa7440a98863e59b4c5f32172e745cb2
parent51b020db50e28bb3fd174df088fd97d17c0618b9 (diff)
downloadsdl_ios-bc30d8065918e9ae563105bee57d9ecedb8f68b1.tar.gz
Fix menu config not calling back in some cases
-rw-r--r--SmartDeviceLink/private/SDLMenuConfigurationUpdateOperation.m5
-rw-r--r--SmartDeviceLinkTests/DevAPISpecs/SDLMenuConfigurationUpdateOperationSpec.m27
2 files changed, 25 insertions, 7 deletions
diff --git a/SmartDeviceLink/private/SDLMenuConfigurationUpdateOperation.m b/SmartDeviceLink/private/SDLMenuConfigurationUpdateOperation.m
index e9bcc76b2..262e55198 100644
--- a/SmartDeviceLink/private/SDLMenuConfigurationUpdateOperation.m
+++ b/SmartDeviceLink/private/SDLMenuConfigurationUpdateOperation.m
@@ -76,10 +76,7 @@ NS_ASSUME_NONNULL_BEGIN
if (self.isCancelled) {
self.internalError = [NSError sdl_menuManager_configurationOperationCancelled];
}
-
- if (self.internalError == nil) {
- self.menuConfigurationUpdatedBlock(self.updatedMenuConfiguration, self.internalError);
- }
+ self.menuConfigurationUpdatedBlock(self.updatedMenuConfiguration, self.internalError);
[super finishOperation];
}
diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLMenuConfigurationUpdateOperationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLMenuConfigurationUpdateOperationSpec.m
index 78bb19aeb..919d1aeb0 100644
--- a/SmartDeviceLinkTests/DevAPISpecs/SDLMenuConfigurationUpdateOperationSpec.m
+++ b/SmartDeviceLinkTests/DevAPISpecs/SDLMenuConfigurationUpdateOperationSpec.m
@@ -49,10 +49,11 @@ describe(@"a menu configuration update operation", ^{
testOp = [[SDLMenuConfigurationUpdateOperation alloc] initWithConnectionManager:testConnectionManager windowCapability:testWindowCapability newMenuConfiguration:testMenuConfiguration configurationUpdatedHandler:testUpdatedBlock];
[testOp start];
- expect(testOp.error).toNot(beNil());
expect(testConnectionManager.receivedRequests).to(beEmpty());
expect(testOp.isFinished).to(beTrue());
expect(resultMenuConfiguration).to(beNil());
+ expect(resultError).toNot(beNil());
+ expect(testOp.error).toNot(beNil());
});
});
@@ -66,10 +67,11 @@ describe(@"a menu configuration update operation", ^{
testOp = [[SDLMenuConfigurationUpdateOperation alloc] initWithConnectionManager:testConnectionManager windowCapability:testWindowCapability newMenuConfiguration:testMenuConfiguration configurationUpdatedHandler:testUpdatedBlock];
[testOp start];
- expect(testOp.error).toNot(beNil());
expect(testConnectionManager.receivedRequests).to(beEmpty());
expect(testOp.isFinished).to(beTrue());
expect(resultMenuConfiguration).to(beNil());
+ expect(resultError).toNot(beNil());
+ expect(testOp.error).toNot(beNil());
});
});
@@ -83,10 +85,11 @@ describe(@"a menu configuration update operation", ^{
testOp = [[SDLMenuConfigurationUpdateOperation alloc] initWithConnectionManager:testConnectionManager windowCapability:testWindowCapability newMenuConfiguration:testMenuConfiguration configurationUpdatedHandler:testUpdatedBlock];
[testOp start];
- expect(testOp.error).toNot(beNil());
expect(testConnectionManager.receivedRequests).to(beEmpty());
expect(testOp.isFinished).to(beTrue());
expect(resultMenuConfiguration).to(beNil());
+ expect(resultError).toNot(beNil());
+ expect(testOp.error).toNot(beNil());
});
});
});
@@ -145,9 +148,27 @@ describe(@"a menu configuration update operation", ^{
expect(testConnectionManager.receivedRequests).toNot(beEmpty());
expect(testOp.isFinished).to(beTrue());
expect(resultMenuConfiguration).to(equal(testMenuConfiguration));
+ expect(resultError).to(beNil());
});
});
});
+
+ describe(@"cancelling the operation", ^{
+ testOp = [[SDLMenuConfigurationUpdateOperation alloc] initWithConnectionManager:testConnectionManager windowCapability:testWindowCapability newMenuConfiguration:testMenuConfiguration configurationUpdatedHandler:testUpdatedBlock];
+
+ beforeEach(^{
+ [testOp cancel];
+ [testOp start];
+ });
+
+ it(@"should finish with an error", ^{
+ expect(testOp.error).toNot(beNil());
+ expect(testConnectionManager.receivedRequests).to(beEmpty());
+ expect(testOp.isFinished).to(beTrue());
+ expect(resultMenuConfiguration).to(beNil());
+ expect(resultError).toNot(beNil());
+ });
+ });
});
QuickSpecEnd