diff options
author | Joel Fischer <joeljfischer@gmail.com> | 2021-08-05 13:48:25 -0400 |
---|---|---|
committer | Joel Fischer <joeljfischer@gmail.com> | 2021-08-05 13:48:25 -0400 |
commit | bc30d8065918e9ae563105bee57d9ecedb8f68b1 (patch) | |
tree | 7a1704cfaa7440a98863e59b4c5f32172e745cb2 | |
parent | 51b020db50e28bb3fd174df088fd97d17c0618b9 (diff) | |
download | sdl_ios-bc30d8065918e9ae563105bee57d9ecedb8f68b1.tar.gz |
Fix menu config not calling back in some cases
-rw-r--r-- | SmartDeviceLink/private/SDLMenuConfigurationUpdateOperation.m | 5 | ||||
-rw-r--r-- | SmartDeviceLinkTests/DevAPISpecs/SDLMenuConfigurationUpdateOperationSpec.m | 27 |
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 |