diff options
author | Shobhit Adlakha <ShobhitAd@users.noreply.github.com> | 2020-03-11 14:25:07 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-11 14:25:07 -0400 |
commit | de574b1336e2e06f2e4af4ded9060a5fcc9a2137 (patch) | |
tree | 7afd631b26c068e2fdb562aaac7b6c8929c584ae | |
parent | 94f92bb7eb440c0ee878896b6281f38009d64094 (diff) | |
download | sdl_core-de574b1336e2e06f2e4af4ded9060a5fcc9a2137.tar.gz |
Fix/SDL does not send BC.PolicyUpdate to HMI if no apps are registered (#3280)
* Temporary fix for allowing core to send the policyupdate rpc
* Remove CanUpdate call in PolicyManagerImpl::StartPTExchange and restore CanUpdate behavior
* Fix regular policy unit tests
* Fix extern policy unit tests
7 files changed, 34 insertions, 2 deletions
diff --git a/src/components/policy/policy_external/src/policy_manager_impl.cc b/src/components/policy/policy_external/src/policy_manager_impl.cc index 5c1d8b0b01..41ebbca759 100644 --- a/src/components/policy/policy_external/src/policy_manager_impl.cc +++ b/src/components/policy/policy_external/src/policy_manager_impl.cc @@ -755,7 +755,7 @@ void PolicyManagerImpl::StartPTExchange() { return; } LOG4CXX_INFO(logger_, "Policy want to call RequestPTUpdate"); - if (listener_ && listener_->CanUpdate()) { + if (listener_) { LOG4CXX_INFO(logger_, "Listener CanUpdate"); if (update_status_manager_.IsUpdateRequired()) { update_status_manager_.PendingUpdate(); diff --git a/src/components/policy/policy_external/test/include/policy/policy_manager_impl_test_base.h b/src/components/policy/policy_external/test/include/policy/policy_manager_impl_test_base.h index 816b99cc2f..40b57f9ed3 100644 --- a/src/components/policy/policy_external/test/include/policy/policy_manager_impl_test_base.h +++ b/src/components/policy/policy_external/test/include/policy/policy_manager_impl_test_base.h @@ -117,6 +117,7 @@ class PolicyManagerImplTest : public ::testing::Test { MockUpdateStatusManager update_manager_; NiceMock<MockPolicyListener> listener_; NiceMock<MockPTURetryHandler> ptu_retry_handler_; + PolicyTableSPtr default_pt_snapshot_; void SetUp() OVERRIDE; diff --git a/src/components/policy/policy_external/test/policy_manager_impl_ptu_test.cc b/src/components/policy/policy_external/test/policy_manager_impl_ptu_test.cc index 920d2e1272..d5be757139 100644 --- a/src/components/policy/policy_external/test/policy_manager_impl_ptu_test.cc +++ b/src/components/policy/policy_external/test/policy_manager_impl_ptu_test.cc @@ -980,6 +980,8 @@ TEST_F(PolicyManagerImplTest2, TEST_F(PolicyManagerImplTest, LoadPT_SetInvalidUpdatePT_PTIsNotLoaded) { // Arrange + EXPECT_CALL(*cache_manager_, GenerateSnapshot()) + .WillOnce(Return(default_pt_snapshot_)); policy_manager_->ForcePTExchange(); policy_manager_->OnUpdateStarted(); Json::Value table(Json::objectValue); diff --git a/src/components/policy/policy_external/test/policy_manager_impl_test.cc b/src/components/policy/policy_external/test/policy_manager_impl_test.cc index f824d37dfb..388630a68f 100644 --- a/src/components/policy/policy_external/test/policy_manager_impl_test.cc +++ b/src/components/policy/policy_external/test/policy_manager_impl_test.cc @@ -106,6 +106,8 @@ TEST_F(PolicyManagerImplTest, LoadPT_SetPT_PTIsLoaded) { // Arrange EXPECT_CALL(*cache_manager_, DaysBeforeExchange(_)) .WillOnce(Return(kNonZero)); + ON_CALL(*cache_manager_, GenerateSnapshot()) + .WillByDefault(Return(default_pt_snapshot_)); policy_manager_->ForcePTExchange(); policy_manager_->SetSendOnUpdateFlags(true); policy_manager_->OnUpdateStarted(); @@ -254,6 +256,8 @@ TEST_F(PolicyManagerImplTest2, GetPolicyTableStatus_ExpectUpToDate) { TEST_F(PolicyManagerImplTest, SetUpdateStarted_GetPolicyTableStatus_Expect_Updating) { // Arrange + EXPECT_CALL(*cache_manager_, GenerateSnapshot()) + .WillOnce(Return(default_pt_snapshot_)); policy_manager_->ForcePTExchange(); EXPECT_CALL(*cache_manager_, SaveUpdateRequired(true)); policy_manager_->OnUpdateStarted(); @@ -306,6 +310,8 @@ TEST_F(PolicyManagerImplTest, MarkUnpairedDevice) { EXPECT_CALL(*cache_manager_, IgnitionCyclesBeforeExchange()); EXPECT_CALL(*cache_manager_, DaysBeforeExchange(_)); // Act + EXPECT_CALL(*cache_manager_, GenerateSnapshot()) + .WillOnce(Return(default_pt_snapshot_)); policy_manager_->MarkUnpairedDevice(unpaired_device_id_); } diff --git a/src/components/policy/policy_external/test/policy_manager_impl_test_base.cc b/src/components/policy/policy_external/test/policy_manager_impl_test_base.cc index dc1d7a06ef..7c2d231708 100644 --- a/src/components/policy/policy_external/test/policy_manager_impl_test_base.cc +++ b/src/components/policy/policy_external/test/policy_manager_impl_test_base.cc @@ -220,6 +220,8 @@ void PolicyManagerImplTest::SetUp() { ON_CALL(listener_, GetRegisteredLinks(_)).WillByDefault(Return()); ON_CALL(listener_, ptu_retry_handler()) .WillByDefault(ReturnRef(ptu_retry_handler_)); + Json::Value table = createPTforLoad(); + default_pt_snapshot_ = std::make_shared<policy_table::Table>(&table); } void PolicyManagerImplTest::TearDown() { diff --git a/src/components/policy/policy_regular/src/policy_manager_impl.cc b/src/components/policy/policy_regular/src/policy_manager_impl.cc index 8ea461ac41..6f646af8df 100644 --- a/src/components/policy/policy_regular/src/policy_manager_impl.cc +++ b/src/components/policy/policy_regular/src/policy_manager_impl.cc @@ -662,7 +662,7 @@ void PolicyManagerImpl::StartPTExchange() { return; } - if (listener_ && listener_->CanUpdate()) { + if (listener_) { if (ignition_check) { CheckTriggers(); ignition_check = false; diff --git a/src/components/policy/policy_regular/test/policy_manager_impl_test.cc b/src/components/policy/policy_regular/test/policy_manager_impl_test.cc index 08e8dd4023..abf9a2ec14 100644 --- a/src/components/policy/policy_regular/test/policy_manager_impl_test.cc +++ b/src/components/policy/policy_regular/test/policy_manager_impl_test.cc @@ -77,6 +77,8 @@ namespace custom_str = utils::custom_string; typedef std::multimap<std::string, policy_table::Rpcs&> UserConsentPromptToRpcsConnections; +typedef std::shared_ptr<policy_table::Table> PolicyTableSPtr; + namespace { std::string kSpeed = "speed"; std::string kRPM = "rpm"; @@ -153,6 +155,7 @@ class PolicyManagerImplTest : public ::testing::Test { NiceMock<MockUpdateStatusManager> update_status_manager; const std::string device_id; std::shared_ptr<access_remote_test::MockAccessRemote> access_remote; + PolicyTableSPtr default_pt_snapshot_; void SetUp() OVERRIDE { manager = new PolicyManagerImpl(); @@ -161,6 +164,8 @@ class PolicyManagerImplTest : public ::testing::Test { manager->set_cache_manager(cache_manager); access_remote = std::make_shared<access_remote_test::MockAccessRemote>(); manager->set_access_remote(access_remote); + // Json::Value table = createPTforLoad(); + default_pt_snapshot_ = std::make_shared<policy_table::Table>(); } void TearDown() OVERRIDE { @@ -985,6 +990,8 @@ TEST_F(PolicyManagerImplTest, ResetPT) { TEST_F(PolicyManagerImplTest, LoadPT_SetPT_PTIsLoaded) { // Arrange + EXPECT_CALL(*cache_manager, GenerateSnapshot()) + .WillOnce(Return(default_pt_snapshot_)); manager->ForcePTExchange(); manager->OnUpdateStarted(); Json::Value table = CreatePTforLoad(); @@ -1021,6 +1028,8 @@ TEST_F(PolicyManagerImplTest, LoadPT_SetPT_PTIsLoaded) { TEST_F(PolicyManagerImplTest, LoadPT_FunctionalGroup_removeRPC_SendUpdate) { // Arrange + EXPECT_CALL(*cache_manager, GenerateSnapshot()) + .WillOnce(Return(default_pt_snapshot_)); manager->ForcePTExchange(); manager->OnUpdateStarted(); Json::Value table = CreatePTforLoad(); @@ -1056,6 +1065,8 @@ TEST_F(PolicyManagerImplTest, LoadPT_FunctionalGroup_removeRPC_SendUpdate) { TEST_F(PolicyManagerImplTest, LoadPT_FunctionalGroup_removeRPCParams_SendUpdate) { // Arrange + EXPECT_CALL(*cache_manager, GenerateSnapshot()) + .WillOnce(Return(default_pt_snapshot_)); manager->ForcePTExchange(); manager->OnUpdateStarted(); Json::Value table = CreatePTforLoad(); @@ -1093,6 +1104,8 @@ TEST_F(PolicyManagerImplTest, TEST_F(PolicyManagerImplTest, LoadPT_FunctionalGroup_removeRPC_HMILevels_SendUpdate) { // Arrange + EXPECT_CALL(*cache_manager, GenerateSnapshot()) + .WillOnce(Return(default_pt_snapshot_)); manager->ForcePTExchange(); manager->OnUpdateStarted(); Json::Value table = CreatePTforLoad(); @@ -1130,6 +1143,8 @@ TEST_F(PolicyManagerImplTest, TEST_F(PolicyManagerImplTest, LoadPT_FunctionalGroup_addRPC_HMILevels_SendUpdate) { // Arrange + EXPECT_CALL(*cache_manager, GenerateSnapshot()) + .WillOnce(Return(default_pt_snapshot_)); manager->ForcePTExchange(); manager->OnUpdateStarted(); Json::Value table = CreatePTforLoad(); @@ -1168,6 +1183,8 @@ TEST_F(PolicyManagerImplTest, TEST_F(PolicyManagerImplTest, LoadPT_FunctionalGroup_addRPCParams_SendUpdate) { using namespace application_manager; // Arrange + EXPECT_CALL(*cache_manager, GenerateSnapshot()) + .WillOnce(Return(default_pt_snapshot_)); manager->ForcePTExchange(); manager->OnUpdateStarted(); Json::Value table = CreatePTforLoad(); @@ -1204,6 +1221,8 @@ TEST_F(PolicyManagerImplTest, LoadPT_FunctionalGroup_addRPCParams_SendUpdate) { TEST_F(PolicyManagerImplTest, LoadPT_FunctionalGroup_NoUpdate_DONT_SendUpdate) { // Arrange + EXPECT_CALL(*cache_manager, GenerateSnapshot()) + .WillOnce(Return(default_pt_snapshot_)); manager->ForcePTExchange(); manager->OnUpdateStarted(); Json::Value table = CreatePTforLoad(); @@ -1234,6 +1253,8 @@ TEST_F(PolicyManagerImplTest, LoadPT_FunctionalGroup_NoUpdate_DONT_SendUpdate) { TEST_F(PolicyManagerImplTest, LoadPT_SetInvalidUpdatePT_PTIsNotLoaded) { // Arrange Json::Value table(Json::objectValue); + EXPECT_CALL(*cache_manager, GenerateSnapshot()) + .WillOnce(Return(default_pt_snapshot_)); manager->ForcePTExchange(); manager->OnUpdateStarted(); |