diff options
author | igapchuck <igapchuck@luxoft.com> | 2018-08-28 15:34:34 +0300 |
---|---|---|
committer | igapchuck <igapchuck@luxoft.com> | 2018-10-03 13:58:52 +0300 |
commit | 11a8d92fd97be696261297a3699a76488d12c434 (patch) | |
tree | 6757d701f8ae4a6b8629c98315ff804861e741cb | |
parent | 721fcfec20f26ff86dcbd652d12e7cc26e355b7f (diff) | |
download | sdl_core-fix/app_revoked_app_still_be_resumed_as_FULL.tar.gz |
Fix defect: revoked app still be resumed as FULL.fix/app_revoked_app_still_be_resumed_as_FULL
App was resumed with Full HMI Level when it has been
flagged as revoked in the policy table. This PR adds
a check that app is not revoked to continue with
HMI Level resumption.
4 files changed, 51 insertions, 8 deletions
diff --git a/src/components/application_manager/src/resumption/resume_ctrl_impl.cc b/src/components/application_manager/src/resumption/resume_ctrl_impl.cc index 3e77078ee5..9a43578aa3 100644 --- a/src/components/application_manager/src/resumption/resume_ctrl_impl.cc +++ b/src/components/application_manager/src/resumption/resume_ctrl_impl.cc @@ -482,15 +482,19 @@ void ResumeCtrlImpl::StartAppHmiStateResumption( LOG4CXX_DEBUG(logger_, "No applicable HMI level found for resuming"); return; } - const bool is_resume_allowed_by_low_voltage = CheckLowVoltageRestrictions(saved_app); const bool is_hmi_level_allowed_by_ign_cycle = CheckIgnCycleRestrictions(saved_app); - const bool restore_hmi_level_allowed = - is_resume_allowed_by_low_voltage && is_hmi_level_allowed_by_ign_cycle; + const bool is_app_revoked = + application_manager_.GetPolicyHandler().IsApplicationRevoked( + application->policy_app_id()); + + const bool restore_hmi_level_allowed = is_resume_allowed_by_low_voltage && + is_hmi_level_allowed_by_ign_cycle && + !is_app_revoked; if (restore_hmi_level_allowed) { LOG4CXX_INFO(logger_, diff --git a/src/components/application_manager/test/include/application_manager/resumption_data_test.h b/src/components/application_manager/test/include/application_manager/resumption_data_test.h index 4f8c9fd25e..654256cc37 100644 --- a/src/components/application_manager/test/include/application_manager/resumption_data_test.h +++ b/src/components/application_manager/test/include/application_manager/resumption_data_test.h @@ -151,7 +151,8 @@ class ResumptionDataTest : public ::testing::Test { std::shared_ptr<sync_primitives::Lock> ivilock_ptr_; application_manager_test::MockApplicationManagerSettings mock_application_manager_settings_; - application_manager_test::MockApplicationManager mock_application_manager_; + NiceMock<application_manager_test::MockApplicationManager> + mock_application_manager_; std::shared_ptr<NiceMock<application_manager_test::MockAppExtension> > mock_app_extension_; std::list<application_manager::AppExtensionPtr> extensions_; diff --git a/src/components/application_manager/test/include/application_manager/test_resumption_data_db.h b/src/components/application_manager/test/include/application_manager/test_resumption_data_db.h index e10f60afac..afd4e99d9d 100644 --- a/src/components/application_manager/test/include/application_manager/test_resumption_data_db.h +++ b/src/components/application_manager/test/include/application_manager/test_resumption_data_db.h @@ -44,13 +44,16 @@ namespace test { namespace components { namespace resumption_test { +using ::testing::NiceMock; + class TestResumptionDataDB : public ResumptionDataDB { public: utils::dbms::SQLDatabase* get_db_handle() { return db(); } - application_manager_test::MockApplicationManager mock_application_manager_; + NiceMock<application_manager_test::MockApplicationManager> + mock_application_manager_; TestResumptionDataDB(DbStorage db_storage) : ResumptionDataDB(db_storage, mock_application_manager_) {} }; diff --git a/src/components/application_manager/test/resumption/resume_ctrl_test.cc b/src/components/application_manager/test/resumption/resume_ctrl_test.cc index 1c2339096c..35032587bf 100644 --- a/src/components/application_manager/test/resumption/resume_ctrl_test.cc +++ b/src/components/application_manager/test/resumption/resume_ctrl_test.cc @@ -51,6 +51,7 @@ #include "application_manager/mock_application_manager_settings.h" #include "application_manager/mock_event_dispatcher.h" #include "application_manager/mock_state_controller.h" +#include "application_manager/policies/mock_policy_handler_interface.h" namespace test { namespace components { @@ -155,17 +156,25 @@ class ResumeCtrlTest : public ::testing::Test { ON_CALL(*mock_app_, app_id()).WillByDefault(Return(kTestAppId_)); } + void SetupIsAppRevoked(const bool is_app_revoked) { + EXPECT_CALL(mock_app_mngr_, GetPolicyHandler()) + .WillOnce(ReturnRef(mock_policy_handler_)); + EXPECT_CALL(mock_policy_handler_, IsApplicationRevoked(_)) + .WillOnce(Return(is_app_revoked)); + } + NiceMock<event_engine_test::MockEventDispatcher> mock_event_dispatcher_; - application_manager_test::MockApplicationManagerSettings + NiceMock<application_manager_test::MockApplicationManagerSettings> mock_application_manager_settings_; NiceMock<application_manager_test::MockApplicationManager> mock_app_mngr_; std::shared_ptr<NiceMock<application_manager_test::MockAppExtension> > mock_app_extension_; - MockStateController mock_state_controller_; + NiceMock<MockStateController> mock_state_controller_; std::shared_ptr<ResumeCtrl> res_ctrl_; std::shared_ptr<NiceMock<resumption_test::MockResumptionData> > mock_storage_; std::shared_ptr<NiceMock<MockApplication> > mock_app_; std::shared_ptr<MockHelpPromptManager> mock_help_prompt_manager_; + policy_test::MockPolicyHandlerInterface mock_policy_handler_; application_manager::ApplicationConstSharedPtr const_app_; const uint32_t kTestAppId_; const std::string kTestPolicyAppId_; @@ -197,7 +206,6 @@ TEST_F(ResumeCtrlTest, StartResumption_AppWithGrammarId) { // Check RestoreApplicationData GetInfoFromApp(); - ON_CALL(mock_app_mngr_, GetDefaultHmiLevel(const_app_)) .WillByDefault(Return(kDefaultTestLevel_)); ON_CALL(*mock_storage_, @@ -640,6 +648,9 @@ TEST_F(ResumeCtrlTest, StartAppHmiStateResumption_AppInFull) { GetSavedApplication(kTestPolicyAppId_, kMacAddress_, _)) .WillByDefault(DoAll(SetArgReferee<2>(saved_app), Return(true))); + const bool is_app_revoked = false; + SetupIsAppRevoked(is_app_revoked); + EXPECT_CALL(*mock_storage_, RemoveApplicationFromSaved(kTestPolicyAppId_, kMacAddress_)) .WillOnce(Return(true)); @@ -686,6 +697,9 @@ TEST_F(ResumeCtrlTest, StartAppHmiStateResumption_AppHasDeferredResumption) { GetSavedApplication(kTestPolicyAppId_, kMacAddress_, _)) .WillByDefault(DoAll(SetArgReferee<2>(saved_app), Return(true))); + const bool is_app_revoked = false; + SetupIsAppRevoked(is_app_revoked); + mobile_apis::HMILevel::eType app_deferred_level = deferred_level; EXPECT_CALL(*mock_app_, deferred_resumption_hmi_level()) .WillRepeatedly(ReturnPointee(&app_deferred_level)); @@ -721,6 +735,9 @@ TEST_F(ResumeCtrlTest, GetSavedApplication(kTestPolicyAppId_, kMacAddress_, _)) .WillByDefault(DoAll(SetArgReferee<2>(saved_app), Return(true))); + const bool is_app_revoked = false; + SetupIsAppRevoked(is_app_revoked); + EXPECT_CALL(mock_app_mngr_, CheckResumptionRequiredTransportAvailable(_)) .WillOnce(Return(false)); @@ -765,6 +782,9 @@ TEST_F( GetSavedApplication(kTestPolicyAppId_, kMacAddress_, _)) .WillByDefault(DoAll(SetArgReferee<2>(saved_app), Return(true))); + const bool is_app_revoked = false; + SetupIsAppRevoked(is_app_revoked); + EXPECT_CALL(mock_app_mngr_, CheckResumptionRequiredTransportAvailable(_)) .WillOnce(Return(false)); @@ -911,6 +931,9 @@ TEST_F(ResumeCtrlTest, ApplicationResumptiOnTimer_AppInFull) { GetSavedApplication(kTestPolicyAppId_, kMacAddress_, _)) .WillByDefault(DoAll(SetArgReferee<2>(saved_app), Return(true))); + const bool is_app_revoked = false; + SetupIsAppRevoked(is_app_revoked); + EXPECT_CALL(*mock_storage_, RemoveApplicationFromSaved(kTestPolicyAppId_, kMacAddress_)) .WillOnce(Return(true)); @@ -1254,6 +1277,9 @@ TEST_F( GetSavedApplication(kTestPolicyAppId_, kMacAddress_, _)) .WillByDefault(DoAll(SetArgReferee<2>(saved_app), Return(true))); + const bool is_app_revoked = false; + SetupIsAppRevoked(is_app_revoked); + EXPECT_CALL(*mock_storage_, RemoveApplicationFromSaved(kTestPolicyAppId_, kMacAddress_)) .WillOnce(Return(true)); @@ -1296,6 +1322,9 @@ TEST_F( GetSavedApplication(kTestPolicyAppId_, kMacAddress_, _)) .WillByDefault(DoAll(SetArgReferee<2>(saved_app), Return(true))); + const bool is_app_revoked = false; + SetupIsAppRevoked(is_app_revoked); + ON_CALL(mock_app_mngr_, GetUserConsentForDevice("12345")) .WillByDefault(Return(policy::kDeviceAllowed)); @@ -1361,6 +1390,9 @@ TEST_F( GetSavedApplication(kTestPolicyAppId_, kMacAddress_, _)) .WillByDefault(DoAll(SetArgReferee<2>(saved_app), Return(true))); + const bool is_app_revoked = false; + SetupIsAppRevoked(is_app_revoked); + EXPECT_CALL(*mock_storage_, RemoveApplicationFromSaved(kTestPolicyAppId_, kMacAddress_)) .WillOnce(Return(true)); @@ -1403,6 +1435,9 @@ TEST_F( GetSavedApplication(kTestPolicyAppId_, kMacAddress_, _)) .WillByDefault(DoAll(SetArgReferee<2>(saved_app), Return(true))); + const bool is_app_revoked = false; + SetupIsAppRevoked(is_app_revoked); + ON_CALL(mock_app_mngr_, GetUserConsentForDevice("12345")) .WillByDefault(Return(policy::kDeviceAllowed)); |