From caa5911c0c976f432dd6e246555ba97bbc1e3bc4 Mon Sep 17 00:00:00 2001 From: sniukalov Date: Wed, 26 Jun 2019 10:33:15 +0300 Subject: Adaptation UTs. --- .../mobile/on_system_request_notification_test.cc | 20 +- .../mobile/register_app_interface_request_test.cc | 245 +++++++++++-- .../test/commands/mobile/system_request_test.cc | 32 +- .../test/application_manager_impl_test.cc | 26 +- .../test/policy_handler_test.cc | 172 +++++---- .../application_manager/mock_application_manager.h | 3 + .../policies/mock_policy_handler_interface.h | 48 ++- .../policy_external/policy/mock_policy_listener.h | 25 +- .../policy_external/policy/mock_policy_manager.h | 42 +++ .../policy_regular/policy/mock_policy_listener.h | 29 +- .../policy_regular/policy/mock_policy_manager.h | 31 ++ .../test/policy_manager_impl_ptu_test.cc | 384 +++++++++++++-------- .../test/policy_manager_impl_snapshot_test.cc | 17 +- .../test/policy_manager_impl_test.cc | 80 ++--- .../test/policy_manager_impl_test_base.cc | 75 ++-- .../test/policy_manager_impl_user_consent_test.cc | 144 ++++---- .../policy/policy_regular/CMakeLists.txt | 2 + .../test/policy_manager_impl_test.cc | 105 ++++-- 18 files changed, 1028 insertions(+), 452 deletions(-) diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/on_system_request_notification_test.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/on_system_request_notification_test.cc index 69ed8fb311..54c81d7fa9 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/on_system_request_notification_test.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/on_system_request_notification_test.cc @@ -62,6 +62,7 @@ using testing::SaveArg; namespace { const uint32_t kConnectionKey = 1u; const std::string kPolicyAppId = "fake-app-id"; +const connection_handler::DeviceHandle kDeviceId = 1u; } // namespace class OnSystemRequestNotificationTest @@ -73,6 +74,7 @@ class OnSystemRequestNotificationTest ON_CALL(app_mngr_, application(kConnectionKey)) .WillByDefault(Return(mock_app_)); ON_CALL(*mock_app_, policy_app_id()).WillByDefault(Return(kPolicyAppId)); + ON_CALL(*mock_app_, device()).WillByDefault(Return(kDeviceId)); } protected: @@ -90,12 +92,14 @@ TEST_F(OnSystemRequestNotificationTest, Run_ProprietaryType_SUCCESS) { std::shared_ptr command = CreateCommand(msg); + PreConditions(); + EXPECT_CALL(app_mngr_, application(kConnectionKey)) .WillRepeatedly(Return(mock_app_)); EXPECT_CALL(*mock_app_, policy_app_id()).WillOnce(Return(kPolicyAppId)); EXPECT_CALL(mock_policy_handler_, - IsRequestTypeAllowed(kPolicyAppId, request_type)) + IsRequestTypeAllowed(kDeviceId, kPolicyAppId, request_type)) .WillRepeatedly(Return(true)); #ifdef PROPRIETARY_MODE @@ -130,10 +134,13 @@ TEST_F(OnSystemRequestNotificationTest, Run_HTTPType_SUCCESS) { std::shared_ptr command = CreateCommand(msg); + PreConditions(); + EXPECT_CALL(app_mngr_, application(kConnectionKey)) .WillOnce(Return(mock_app_)); EXPECT_CALL(*mock_app_, policy_app_id()).WillOnce(Return(kPolicyAppId)); - EXPECT_CALL(mock_policy_handler_, IsRequestTypeAllowed(_, _)) + EXPECT_CALL(mock_policy_handler_, + IsRequestTypeAllowed(kDeviceId, kPolicyAppId, request_type)) .WillOnce(Return(true)); EXPECT_CALL(mock_message_helper_, PrintSmartObject(_)) @@ -187,10 +194,13 @@ TEST_F(OnSystemRequestNotificationTest, Run_RequestNotAllowed_NoNotification) { std::shared_ptr command = CreateCommand(msg); + PreConditions(); + EXPECT_CALL(app_mngr_, application(kConnectionKey)) .WillOnce(Return(mock_app_)); EXPECT_CALL(*mock_app_, policy_app_id()).WillOnce(Return(kPolicyAppId)); - EXPECT_CALL(mock_policy_handler_, IsRequestTypeAllowed(_, _)) + EXPECT_CALL(mock_policy_handler_, + IsRequestTypeAllowed(kDeviceId, kPolicyAppId, request_type)) .WillOnce(Return(false)); EXPECT_CALL(mock_message_helper_, PrintSmartObject(_)).Times(0); @@ -214,7 +224,7 @@ TEST_F( PreConditions(); EXPECT_CALL(mock_policy_handler_, - IsRequestTypeAllowed(kPolicyAppId, request_type)) + IsRequestTypeAllowed(kDeviceId, kPolicyAppId, request_type)) .WillOnce(Return(true)); EXPECT_CALL(mock_policy_handler_, IsRequestSubTypeAllowed(kPolicyAppId, request_subtype)) @@ -241,7 +251,7 @@ TEST_F(OnSystemRequestNotificationTest, PreConditions(); EXPECT_CALL(mock_policy_handler_, - IsRequestTypeAllowed(kPolicyAppId, request_type)) + IsRequestTypeAllowed(kDeviceId, kPolicyAppId, request_type)) .WillOnce(Return(true)); EXPECT_CALL(mock_policy_handler_, IsRequestSubTypeAllowed(kPolicyAppId, request_subtype)) diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/register_app_interface_request_test.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/register_app_interface_request_test.cc index 0e8374b75a..ac45e90d8e 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/register_app_interface_request_test.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/register_app_interface_request_test.cc @@ -67,6 +67,8 @@ using ::testing::_; using ::testing::DoAll; using ::testing::Return; using ::testing::ReturnRef; +using ::testing::SaveArg; +using ::testing::SetArgPointee; namespace am = ::application_manager; @@ -75,12 +77,15 @@ using sdl_rpc_plugin::commands::RegisterAppInterfaceRequest; namespace { const uint32_t kConnectionKey = 1u; +const uint32_t kConnectionKey2 = 2u; const hmi_apis::Common_Language::eType kHmiLanguage = hmi_apis::Common_Language::EN_US; const mobile_apis::Language::eType kMobileLanguage = mobile_apis::Language::EN_US; -const std::string kMacAddress = "test_mac_address"; -const std::string kAppId = "test_app_id"; +const std::string kMacAddress1 = "test_mac_address1"; +const std::string kMacAddress2 = "test_mac_address2"; +const std::string kAppId1 = "test_app1_id"; +const std::string kAppId2 = "test_app2_id"; const std::string kFullAppId = "test_app_id_long"; const std::string kDummyString = "test_string"; const std::vector kDummyDiagModes; @@ -94,6 +99,7 @@ class RegisterAppInterfaceRequestTest : msg_(CreateMessage()) , command_(CreateCommand(msg_)) , app_name_("test_app_name_") + , app2_name_("test_app2_name_") , lock_ptr_(std::make_shared()) , mock_application_helper_( application_manager_test::MockApplicationHelper:: @@ -112,7 +118,7 @@ class RegisterAppInterfaceRequestTest void InitBasicMessage() { (*msg_)[am::strings::params][am::strings::connection_key] = kConnectionKey; - (*msg_)[am::strings::msg_params][am::strings::app_id] = kAppId; + (*msg_)[am::strings::msg_params][am::strings::app_id] = kAppId1; (*msg_)[am::strings::msg_params][am::strings::full_app_id] = kFullAppId; (*msg_)[am::strings::msg_params][am::strings::app_name] = app_name_; (*msg_)[am::strings::msg_params][am::strings::language_desired] = @@ -130,11 +136,11 @@ class RegisterAppInterfaceRequestTest MockAppPtr CreateBasicMockedApp() { MockAppPtr mock_app = CreateMockApp(); ON_CALL(*mock_app, name()).WillByDefault(ReturnRef(app_name_)); - ON_CALL(*mock_app, mac_address()).WillByDefault(ReturnRef(kMacAddress)); + ON_CALL(*mock_app, mac_address()).WillByDefault(ReturnRef(kMacAddress1)); ON_CALL(*mock_app, app_icon_path()).WillByDefault(ReturnRef(kDummyString)); ON_CALL(*mock_app, language()).WillByDefault(ReturnRef(kMobileLanguage)); ON_CALL(*mock_app, ui_language()).WillByDefault(ReturnRef(kMobileLanguage)); - ON_CALL(*mock_app, policy_app_id()).WillByDefault(Return(kAppId)); + ON_CALL(*mock_app, policy_app_id()).WillByDefault(Return(kAppId1)); ON_CALL(*mock_app, msg_version()) .WillByDefault(ReturnRef(mock_semantic_version)); return mock_app; @@ -154,7 +160,7 @@ class RegisterAppInterfaceRequestTest void InitGetters() { ON_CALL(app_mngr_, GetCorrectMobileIDFromMessage(msg_)) - .WillByDefault(Return(kAppId)); + .WillByDefault(Return(kAppId1)); ON_CALL(app_mngr_, IsHMICooperating()).WillByDefault(Return(true)); ON_CALL(app_mngr_, resume_controller()) .WillByDefault(ReturnRef(mock_resume_crt_)); @@ -168,7 +174,7 @@ class RegisterAppInterfaceRequestTest .WillByDefault(ReturnRef(kDummyString)); ON_CALL(app_mngr_settings_, supported_diag_modes()) .WillByDefault(ReturnRef(kDummyDiagModes)); - ON_CALL(mock_policy_handler_, GetAppRequestTypes(_)) + ON_CALL(mock_policy_handler_, GetAppRequestTypes(_, _)) .WillByDefault(Return(std::vector())); ON_CALL(mock_policy_handler_, GetAppRequestTypeState(_)) .WillByDefault(Return(policy::RequestType::State::EMPTY)); @@ -180,7 +186,7 @@ class RegisterAppInterfaceRequestTest .WillByDefault(Return(policy::DeviceConsent::kDeviceAllowed)); ON_CALL(app_mngr_, GetDeviceTransportType(_)) .WillByDefault(Return(hmi_apis::Common_TransportType::WIFI)); - ON_CALL(app_mngr_, IsAppInReconnectMode(_)).WillByDefault(Return(false)); + ON_CALL(app_mngr_, IsAppInReconnectMode(_, _)).WillByDefault(Return(false)); ON_CALL(app_mngr_, application_by_policy_id(_)) .WillByDefault(Return(ApplicationSharedPtr())); ON_CALL(mock_hmi_interfaces_, GetInterfaceState(_)) @@ -201,7 +207,7 @@ class RegisterAppInterfaceRequestTest void SetCommonExpectionsOnSwitchedApplication( MockAppPtr mock_app, mobile_apis::Result::eType response_result_code) { - EXPECT_CALL(mock_policy_handler_, AddApplication(_, _)).Times(0); + EXPECT_CALL(mock_policy_handler_, AddApplication(_, _, _)).Times(0); EXPECT_CALL( mock_rpc_service_, @@ -250,6 +256,7 @@ class RegisterAppInterfaceRequestTest std::shared_ptr command_; const utils::custom_string::CustomString app_name_; + const utils::custom_string::CustomString app2_name_; std::shared_ptr lock_ptr_; am::ApplicationSet app_set_; @@ -280,7 +287,7 @@ TEST_F(RegisterAppInterfaceRequestTest, Init_SUCCESS) { TEST_F(RegisterAppInterfaceRequestTest, Run_MinimalData_SUCCESS) { InitBasicMessage(); - (*msg_)[am::strings::msg_params][am::strings::hash_id] = kAppId; + (*msg_)[am::strings::msg_params][am::strings::hash_id] = kAppId1; EXPECT_CALL(app_mngr_, IsStopping()) .WillOnce(Return(false)) .WillOnce(Return(true)) @@ -289,20 +296,30 @@ TEST_F(RegisterAppInterfaceRequestTest, Run_MinimalData_SUCCESS) { EXPECT_CALL(app_mngr_, updateRequestTimeout(_, _, _)); EXPECT_CALL(app_mngr_, IsApplicationForbidden(_, _)).WillOnce(Return(false)); + connection_handler::DeviceHandle handle = 1; + ON_CALL(mock_connection_handler_, + GetDataOnSessionKey(kConnectionKey, _, _, _)) + .WillByDefault(DoAll(SetArgPointee<3>(handle), Return(0))); + ON_CALL(mock_session_observer_, GetDataOnDeviceID(handle, _, _, _, _)) + .WillByDefault(DoAll(SetArgPointee<3>(kMacAddress1), Return(0))); + MockAppPtr mock_app = CreateBasicMockedApp(); - EXPECT_CALL(app_mngr_, application(kConnectionKey)) - .WillOnce(Return(ApplicationSharedPtr())) - .WillRepeatedly(Return(mock_app)); + EXPECT_CALL(app_mngr_, application(kMacAddress1, kAppId1)) + .WillRepeatedly(Return(ApplicationSharedPtr())); ON_CALL(app_mngr_, applications()) .WillByDefault( Return(DataAccessor(app_set_, lock_ptr_))); + + EXPECT_CALL(app_mngr_, application(kConnectionKey)) + .WillOnce(Return(mock_app)); + ON_CALL(mock_policy_handler_, PolicyEnabled()).WillByDefault(Return(true)); - ON_CALL(mock_policy_handler_, GetInitialAppData(kAppId, _, _)) + ON_CALL(mock_policy_handler_, GetInitialAppData(kAppId1, _, _)) .WillByDefault(Return(true)); policy::StatusNotifier notify_upd_manager = std::make_shared(); - ON_CALL(mock_policy_handler_, AddApplication(_, _)) + ON_CALL(mock_policy_handler_, AddApplication(kMacAddress1, kAppId1, _)) .WillByDefault(Return(notify_upd_manager)); EXPECT_CALL(app_mngr_, RegisterApplication(msg_)).WillOnce(Return(mock_app)); @@ -323,6 +340,7 @@ TEST_F(RegisterAppInterfaceRequestTest, Run_MinimalData_SUCCESS) { ManageMobileCommand(_, am::commands::Command::SOURCE_SDL)) .Times(2); EXPECT_CALL(app_mngr_, SendDriverDistractionState(_)); + ASSERT_TRUE(command_->Init()); command_->Run(); } @@ -360,10 +378,19 @@ TEST_F(RegisterAppInterfaceRequestTest, EXPECT_CALL(app_mngr_, updateRequestTimeout(_, _, _)); EXPECT_CALL(app_mngr_, IsApplicationForbidden(_, _)).WillOnce(Return(false)); + connection_handler::DeviceHandle handle = 1; + ON_CALL(mock_connection_handler_, + GetDataOnSessionKey(kConnectionKey, _, _, _)) + .WillByDefault(DoAll(SetArgPointee<3>(handle), Return(0))); + ON_CALL(mock_session_observer_, GetDataOnDeviceID(_, _, _, _, _)) + .WillByDefault(DoAll(SetArgPointee<3>(kMacAddress1), Return(0))); + MockAppPtr mock_app = CreateBasicMockedApp(); + EXPECT_CALL(app_mngr_, application(kMacAddress1, kAppId1)) + .WillRepeatedly(Return(ApplicationSharedPtr())); + EXPECT_CALL(app_mngr_, application(kConnectionKey)) - .WillOnce(Return(ApplicationSharedPtr())) - .WillRepeatedly(Return(mock_app)); + .WillOnce(Return(mock_app)); MessageSharedPtr expected_message = CreateMessage(smart_objects::SmartType_Map); @@ -401,11 +428,11 @@ TEST_F(RegisterAppInterfaceRequestTest, .WillByDefault( Return(DataAccessor(app_set_, lock_ptr_))); ON_CALL(mock_policy_handler_, PolicyEnabled()).WillByDefault(Return(true)); - ON_CALL(mock_policy_handler_, GetInitialAppData(kAppId, _, _)) + ON_CALL(mock_policy_handler_, GetInitialAppData(kAppId1, _, _)) .WillByDefault(Return(true)); policy::StatusNotifier notify_upd_manager = std::make_shared(); - ON_CALL(mock_policy_handler_, AddApplication(_, _)) + ON_CALL(mock_policy_handler_, AddApplication(kMacAddress1, kAppId1, _)) .WillByDefault(Return(notify_upd_manager)); EXPECT_CALL(app_mngr_, RegisterApplication(msg_)).WillOnce(Return(mock_app)); @@ -444,7 +471,7 @@ TEST_F(RegisterAppInterfaceRequestTest, ManageMobileCommand(_, am::commands::Command::SOURCE_SDL)) .Times(2); EXPECT_CALL(app_mngr_, SendDriverDistractionState(_)); - + ASSERT_TRUE(command_->Init()); command_->Run(); } @@ -456,10 +483,23 @@ TEST_F(RegisterAppInterfaceRequestTest, (*msg_)[am::strings::msg_params][am::strings::hash_id] = request_hash_id; MockAppPtr mock_app = CreateBasicMockedApp(); - EXPECT_CALL(app_mngr_, application_by_policy_id(kAppId)) + app_set_.insert(mock_app); + EXPECT_CALL(app_mngr_, application_by_policy_id(kAppId1)) .WillRepeatedly(Return(mock_app)); - EXPECT_CALL(app_mngr_, IsAppInReconnectMode(kAppId)).WillOnce(Return(true)); + connection_handler::DeviceHandle device_id = 1; + ON_CALL(mock_connection_handler_, + GetDataOnSessionKey(kConnectionKey, _, _, _)) + .WillByDefault(DoAll(SetArgPointee<3>(device_id), Return(0))); + + ON_CALL(mock_session_observer_, GetDataOnDeviceID(device_id, _, _, _, _)) + .WillByDefault(DoAll(SetArgPointee<3>(kMacAddress1), Return(0))); + + ON_CALL(app_mngr_, application(kMacAddress1, kAppId1)) + .WillByDefault(Return(mock_app)); + + ON_CALL(app_mngr_, IsAppInReconnectMode(device_id, kAppId1)) + .WillByDefault(Return(true)); EXPECT_CALL(app_mngr_, ProcessReconnection(_, kConnectionKey)); @@ -482,6 +522,7 @@ TEST_F(RegisterAppInterfaceRequestTest, SetCommonExpectionsOnSwitchedApplication(mock_app, mobile_apis::Result::SUCCESS); + ASSERT_TRUE(command_->Init()); command_->Run(); } @@ -492,11 +533,22 @@ TEST_F(RegisterAppInterfaceRequestTest, const std::string request_hash_id = "abc123"; (*msg_)[am::strings::msg_params][am::strings::hash_id] = request_hash_id; + connection_handler::DeviceHandle device_id = 1; + ON_CALL(mock_connection_handler_, + GetDataOnSessionKey(kConnectionKey, _, _, _)) + .WillByDefault(DoAll(SetArgPointee<3>(device_id), Return(0))); + + ON_CALL(mock_session_observer_, GetDataOnDeviceID(device_id, _, _, _, _)) + .WillByDefault(DoAll(SetArgPointee<3>(kMacAddress1), Return(0))); + MockAppPtr mock_app = CreateBasicMockedApp(); - EXPECT_CALL(app_mngr_, application_by_policy_id(kAppId)) + EXPECT_CALL(app_mngr_, application_by_policy_id(kAppId1)) .WillRepeatedly(Return(mock_app)); - EXPECT_CALL(app_mngr_, IsAppInReconnectMode(kAppId)).WillOnce(Return(true)); + EXPECT_CALL(app_mngr_, application(kMacAddress1, kAppId1)) + .WillOnce(Return(mock_app)); + ON_CALL(app_mngr_, IsAppInReconnectMode(device_id, kAppId1)) + .WillByDefault(Return(true)); EXPECT_CALL(app_mngr_, ProcessReconnection(_, kConnectionKey)); @@ -520,7 +572,7 @@ TEST_F(RegisterAppInterfaceRequestTest, SetCommonExpectionsOnSwitchedApplication(mock_app, mobile_apis::Result::RESUME_FAILED); - + ASSERT_TRUE(command_->Init()); command_->Run(); } @@ -528,11 +580,23 @@ TEST_F(RegisterAppInterfaceRequestTest, SwitchApplication_NoHash_ExpectCleanupResumeFailed) { InitBasicMessage(); + connection_handler::DeviceHandle device_id = 1; + ON_CALL(mock_connection_handler_, + GetDataOnSessionKey(kConnectionKey, _, _, _)) + .WillByDefault(DoAll(SetArgPointee<3>(device_id), Return(0))); + + ON_CALL(mock_session_observer_, GetDataOnDeviceID(device_id, _, _, _, _)) + .WillByDefault(DoAll(SetArgPointee<3>(kMacAddress1), Return(0))); + MockAppPtr mock_app = CreateBasicMockedApp(); - EXPECT_CALL(app_mngr_, application_by_policy_id(kAppId)) + EXPECT_CALL(app_mngr_, application_by_policy_id(kAppId1)) .WillRepeatedly(Return(mock_app)); - EXPECT_CALL(app_mngr_, IsAppInReconnectMode(kAppId)).WillOnce(Return(true)); + EXPECT_CALL(app_mngr_, application(kMacAddress1, kAppId1)) + .WillOnce(Return(mock_app)); + + EXPECT_CALL(app_mngr_, IsAppInReconnectMode(device_id, kAppId1)) + .WillOnce(Return(true)); EXPECT_CALL(app_mngr_, ProcessReconnection(_, kConnectionKey)); @@ -550,6 +614,133 @@ TEST_F(RegisterAppInterfaceRequestTest, SetCommonExpectionsOnSwitchedApplication(mock_app, mobile_apis::Result::RESUME_FAILED); + ASSERT_TRUE(command_->Init()); + command_->Run(); +} + +TEST_F(RegisterAppInterfaceRequestTest, + RegisterApp_SameAppId_SameDeviceFailed) { + using namespace am; + + InitBasicMessage(); + + MockAppPtr mock_app1 = CreateBasicMockedApp(); + + app_set_.insert(mock_app1); + ON_CALL(app_mngr_, applications()) + .WillByDefault( + Return(DataAccessor(app_set_, lock_ptr_))); + + MockAppPtr mock_app2 = CreateBasicMockedApp(); + + connection_handler::DeviceHandle device_id = 1; + ON_CALL(mock_connection_handler_, + GetDataOnSessionKey(kConnectionKey, _, _, _)) + .WillByDefault(DoAll(SetArgPointee<3>(device_id), Return(0))); + + ON_CALL(mock_session_observer_, GetDataOnDeviceID(device_id, _, _, _, _)) + .WillByDefault(DoAll(SetArgPointee<3>(kMacAddress1), Return(0))); + + EXPECT_CALL(app_mngr_, application(kMacAddress1, kAppId1)) + .WillOnce(Return(mock_app1)); + + EXPECT_CALL(mock_rpc_service_, ManageHMICommand(_, _)).Times(0); + + EXPECT_CALL(mock_rpc_service_, + ManageMobileCommand( + MobileResultCodeIs( + mobile_apis::Result::APPLICATION_REGISTERED_ALREADY), + am::commands::Command::SOURCE_SDL)); + + ASSERT_TRUE(command_->Init()); + command_->Run(); +} + +TEST_F(RegisterAppInterfaceRequestTest, + RegisterApp_SameAppId_DifferentDevicesSuccess) { + MockAppPtr mock_app1 = CreateBasicMockedApp(); + const connection_handler::DeviceHandle device_id1 = 1u; + ON_CALL(*mock_app1, device()).WillByDefault(Return(device_id1)); + app_set_.insert(mock_app1); + ON_CALL(app_mngr_, applications()) + .WillByDefault( + Return(DataAccessor(app_set_, lock_ptr_))); + + InitBasicMessage(); + (*msg_)[am::strings::params][am::strings::connection_key] = kConnectionKey2; + EXPECT_CALL(app_mngr_, IsStopping()) + .WillOnce(Return(false)) + .WillOnce(Return(true)) + .WillOnce(Return(false)); + ON_CALL(app_mngr_, IsHMICooperating()).WillByDefault(Return(false)); + EXPECT_CALL(app_mngr_, updateRequestTimeout(kConnectionKey2, _, _)); + EXPECT_CALL(app_mngr_, IsApplicationForbidden(kConnectionKey2, kAppId1)) + .WillOnce(Return(false)); + + connection_handler::DeviceHandle device_id2 = 2u; + ON_CALL(mock_connection_handler_, + GetDataOnSessionKey(kConnectionKey2, _, _, _)) + .WillByDefault(DoAll(SetArgPointee<3>(device_id2), Return(0))); + + ON_CALL(mock_session_observer_, GetDataOnDeviceID(device_id2, _, _, _, _)) + .WillByDefault(DoAll(SetArgPointee<3>(kMacAddress2), Return(0))); + + MockAppPtr mock_app2 = CreateBasicMockedApp(); + + ON_CALL(*mock_app2, device()).WillByDefault(Return(device_id2)); + ON_CALL(*mock_app2, mac_address()).WillByDefault(ReturnRef(kMacAddress2)); + EXPECT_CALL(app_mngr_, application(kMacAddress2, kAppId1)) + .WillRepeatedly(Return(ApplicationSharedPtr())); + + EXPECT_CALL(app_mngr_, application(kConnectionKey2)) + .WillOnce(Return(mock_app2)); + + ON_CALL(mock_policy_handler_, PolicyEnabled()).WillByDefault(Return(true)); + ON_CALL(mock_policy_handler_, GetInitialAppData(kAppId1, _, _)) + .WillByDefault(Return(true)); + policy::StatusNotifier notify_upd_manager = + std::make_shared(); + ON_CALL(mock_policy_handler_, AddApplication(kMacAddress2, kAppId1, _)) + .WillByDefault(Return(notify_upd_manager)); + + EXPECT_CALL(app_mngr_, RegisterApplication(msg_)).WillOnce(Return(mock_app2)); + + EXPECT_CALL(mock_hmi_interfaces_, GetInterfaceState(_)) + .WillRepeatedly(Return(am::HmiInterfaces::STATE_AVAILABLE)); + + EXPECT_CALL(mock_rpc_service_, + ManageHMICommand( + HMIResultCodeIs( + hmi_apis::FunctionID::BasicCommunication_OnAppRegistered), + _)) + .WillOnce(Return(true)); + EXPECT_CALL( + mock_rpc_service_, + ManageHMICommand( + HMIResultCodeIs(hmi_apis::FunctionID::Buttons_OnButtonSubscription), + _)) + .WillOnce(Return(true)); + EXPECT_CALL( + mock_rpc_service_, + ManageHMICommand( + HMIResultCodeIs(hmi_apis::FunctionID::VR_ChangeRegistration), _)) + .WillOnce(Return(true)); + EXPECT_CALL( + mock_rpc_service_, + ManageHMICommand( + HMIResultCodeIs(hmi_apis::FunctionID::TTS_ChangeRegistration), _)) + .WillOnce(Return(true)); + EXPECT_CALL( + mock_rpc_service_, + ManageHMICommand( + HMIResultCodeIs(hmi_apis::FunctionID::UI_ChangeRegistration), _)) + .WillOnce(Return(true)); + EXPECT_CALL(mock_rpc_service_, + ManageMobileCommand(_, am::commands::Command::SOURCE_SDL)) + .Times(2); + EXPECT_CALL(app_mngr_, SendDriverDistractionState(_)); + + ASSERT_TRUE(command_->Init()); command_->Run(); } diff --git a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/system_request_test.cc b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/system_request_test.cc index 7351cd67d3..211888d6be 100644 --- a/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/system_request_test.cc +++ b/src/components/application_manager/rpc_plugins/sdl_rpc_plugin/test/commands/mobile/system_request_test.cc @@ -74,6 +74,7 @@ const std::string kAppStorageFolder = "fake-storage"; const std::string kSystemFilesPath = "/fake/system/files"; const std::string kFileName = "Filename"; const uint32_t kHmiAppId = 3u; +const connection_handler::DeviceHandle kDeviceId = 1u; } // namespace class SystemRequestTest @@ -99,13 +100,15 @@ class SystemRequestTest ON_CALL(*mock_app_, policy_app_id()).WillByDefault(Return(kAppPolicyId)); ON_CALL(*mock_app_, folder_name()).WillByDefault(Return(kAppFolderName)); ON_CALL(*mock_app_, hmi_app_id()).WillByDefault(Return(kHmiAppId)); + ON_CALL(*mock_app_, device()).WillByDefault(Return(kDeviceId)); ON_CALL(app_mngr_settings_, system_files_path()) .WillByDefault(ReturnRef(kSystemFilesPath)); ON_CALL(app_mngr_settings_, app_storage_folder()) .WillByDefault(ReturnRef(kAppStorageFolder)); - ON_CALL(mock_policy_handler_, IsRequestTypeAllowed(kAppPolicyId, _)) + ON_CALL(mock_policy_handler_, + IsRequestTypeAllowed(kDeviceId, kAppPolicyId, _)) .WillByDefault(Return(true)); } @@ -146,9 +149,10 @@ TEST_F(SystemRequestTest, PreConditions(); - EXPECT_CALL(mock_policy_handler_, - IsRequestTypeAllowed(kAppPolicyId, - mobile_apis::RequestType::OEM_SPECIFIC)) + EXPECT_CALL( + mock_policy_handler_, + IsRequestTypeAllowed( + kDeviceId, kAppPolicyId, mobile_apis::RequestType::OEM_SPECIFIC)) .WillOnce(Return(true)); EXPECT_CALL(mock_policy_handler_, @@ -191,9 +195,10 @@ TEST_F( PreConditions(); - EXPECT_CALL(mock_policy_handler_, - IsRequestTypeAllowed(kAppPolicyId, - mobile_apis::RequestType::OEM_SPECIFIC)) + EXPECT_CALL( + mock_policy_handler_, + IsRequestTypeAllowed( + kDeviceId, kAppPolicyId, mobile_apis::RequestType::OEM_SPECIFIC)) .WillOnce(Return(true)); EXPECT_CALL(mock_policy_handler_, @@ -216,9 +221,10 @@ TEST_F(SystemRequestTest, Run_RequestTypeDisallowed_SendDisallowedResponse) { PreConditions(); - EXPECT_CALL(mock_policy_handler_, - IsRequestTypeAllowed(kAppPolicyId, - mobile_apis::RequestType::OEM_SPECIFIC)) + EXPECT_CALL( + mock_policy_handler_, + IsRequestTypeAllowed( + kDeviceId, kAppPolicyId, mobile_apis::RequestType::OEM_SPECIFIC)) .WillOnce(Return(false)); ExpectManageMobileCommandWithResultCode(mobile_apis::Result::DISALLOWED); @@ -241,9 +247,9 @@ TEST_F(SystemRequestTest, Run_RequestType_IconURL_Success) { const std::vector binary_data = {1u, 2u}; (*msg)[am::strings::params][am::strings::binary_data] = binary_data; - EXPECT_CALL( - mock_policy_handler_, - IsRequestTypeAllowed(kAppPolicyId, mobile_apis::RequestType::ICON_URL)) + EXPECT_CALL(mock_policy_handler_, + IsRequestTypeAllowed( + kDeviceId, kAppPolicyId, mobile_apis::RequestType::ICON_URL)) .WillOnce(Return(true)); EXPECT_CALL(app_mngr_settings_, app_icons_folder()) .WillOnce(ReturnRef(kAppStorageFolder)); diff --git a/src/components/application_manager/test/application_manager_impl_test.cc b/src/components/application_manager/test/application_manager_impl_test.cc index 804959e1db..1f4b94a991 100644 --- a/src/components/application_manager/test/application_manager_impl_test.cc +++ b/src/components/application_manager/test/application_manager_impl_test.cc @@ -145,8 +145,10 @@ class ApplicationManagerImplTest : public ::testing::Test { protected: void SetUp() OVERRIDE { CreateAppManager(); - ON_CALL(mock_session_observer_, GetDataOnSessionKey(_, _, _, _)) - .WillByDefault(DoAll(SetArgPointee<3u>(kDeviceId), Return(0))); + ON_CALL(*mock_app_ptr_, app_id()).WillByDefault(Return(kConnectionKey)); + ON_CALL(*mock_app_ptr_, device()).WillByDefault(Return(kDeviceId)); + ON_CALL(mock_connection_handler_, GetDataOnSessionKey(_, _, _, &kDeviceId)) + .WillByDefault(DoAll(SetArgPointee<3u>(app_id_), Return(0))); ON_CALL(mock_connection_handler_, get_session_observer()) .WillByDefault(ReturnRef(mock_session_observer_)); app_manager_impl_->SetMockRPCService(mock_rpc_service_); @@ -820,6 +822,9 @@ TEST_F(ApplicationManagerImplTest, std::shared_ptr switching_app_ptr = std::make_shared(); + ON_CALL(*switching_app_ptr, app_id()).WillByDefault(Return(kConnectionKey)); + ON_CALL(*switching_app_ptr, device()).WillByDefault(Return(kDeviceId)); + const std::string switching_device_id = "switching"; const std::string switching_device_id_hash = encryption::MakeHash(switching_device_id); @@ -837,7 +842,6 @@ TEST_F(ApplicationManagerImplTest, std::shared_ptr nonswitching_app_ptr = std::make_shared(); - const std::string nonswitching_device_id = "nonswitching"; const std::string nonswitching_device_id_hash = encryption::MakeHash(nonswitching_device_id); @@ -868,15 +872,18 @@ TEST_F(ApplicationManagerImplTest, .WillOnce(Return(smart_objects::SmartObjectSPtr())); app_manager_impl_->OnDeviceSwitchingStart(switching_device, non_switching_device); - EXPECT_TRUE(app_manager_impl_->IsAppInReconnectMode(policy_app_id_switch)); - EXPECT_FALSE( - app_manager_impl_->IsAppInReconnectMode(policy_app_id_nonswitch)); + EXPECT_TRUE( + app_manager_impl_->IsAppInReconnectMode(kDeviceId, policy_app_id_switch)); + EXPECT_FALSE(app_manager_impl_->IsAppInReconnectMode( + kDeviceId, policy_app_id_nonswitch)); } TEST_F(ApplicationManagerImplTest, OnDeviceSwitchingFinish_ExpectUnregisterAppsInWaitList) { std::shared_ptr switching_app_ptr = std::make_shared(); + ON_CALL(*switching_app_ptr, app_id()).WillByDefault(Return(kConnectionKey)); + ON_CALL(*switching_app_ptr, device()).WillByDefault(Return(kDeviceId)); plugin_manager::MockRPCPluginManager* mock_rpc_plugin_manager = new plugin_manager::MockRPCPluginManager; @@ -913,6 +920,10 @@ TEST_F(ApplicationManagerImplTest, EXPECT_CALL(*nonswitching_app_ptr, policy_app_id()) .WillRepeatedly(Return(policy_app_id_nonswitch)); + ON_CALL(*nonswitching_app_ptr, protocol_version()) + .WillByDefault( + Return(protocol_handler::MajorProtocolVersion::PROTOCOL_VERSION_4)); + const auto hmi_level_nonswitching_app = mobile_apis::HMILevel::HMI_LIMITED; EXPECT_CALL(*nonswitching_app_ptr, hmi_level()) .WillRepeatedly(Return(hmi_level_nonswitching_app)); @@ -933,7 +944,8 @@ TEST_F(ApplicationManagerImplTest, app_manager_impl_->OnDeviceSwitchingStart(switching_device, non_switching_device); - EXPECT_TRUE(app_manager_impl_->IsAppInReconnectMode(policy_app_id_switch)); + EXPECT_TRUE( + app_manager_impl_->IsAppInReconnectMode(kDeviceId, policy_app_id_switch)); app_manager_impl_->OnDeviceSwitchingFinish(switching_device_id); EXPECT_FALSE( diff --git a/src/components/application_manager/test/policy_handler_test.cc b/src/components/application_manager/test/policy_handler_test.cc index 458b065cdd..6bd2c7fda6 100644 --- a/src/components/application_manager/test/policy_handler_test.cc +++ b/src/components/application_manager/test/policy_handler_test.cc @@ -233,7 +233,7 @@ class PolicyHandlerTest : public ::testing::Test { void TestOnPermissionsUpdated(const std::string& default_hmi_level, const mobile_apis::HMILevel::eType hmi_level) { - EXPECT_CALL(app_manager_, application_by_policy_id(kPolicyAppId_)) + EXPECT_CALL(app_manager_, application(kDeviceId, kPolicyAppId_)) .WillRepeatedly(Return(mock_app_)); EXPECT_CALL(*mock_app_, app_id()).WillRepeatedly(Return(kAppId1_)); EXPECT_CALL(*mock_app_, hmi_level()) @@ -247,7 +247,7 @@ class PolicyHandlerTest : public ::testing::Test { Permissions permissions; policy_handler_.OnPermissionsUpdated( - kPolicyAppId_, permissions, default_hmi_level); + kDeviceId, kPolicyAppId_, permissions, default_hmi_level); } void CreateFunctionalGroupPermission( @@ -494,31 +494,31 @@ TEST_F(PolicyHandlerTest, UnloadPolicyLibrary_method_ExpectLibraryUnloaded) { TEST_F(PolicyHandlerTest, OnPermissionsUpdated_method_With2Parameters) { // Check expectations - EXPECT_CALL(app_manager_, application_by_policy_id(kPolicyAppId_)) + EXPECT_CALL(app_manager_, application(kDeviceId, kPolicyAppId_)) .WillOnce(Return(mock_app_)); EXPECT_CALL(*mock_app_, app_id()).WillOnce(Return(kAppId1_)); EXPECT_CALL(mock_message_helper_, SendOnPermissionsChangeNotification(kAppId1_, _, _)); // Act Permissions perms; - policy_handler_.OnPermissionsUpdated(kPolicyAppId_, perms); + policy_handler_.OnPermissionsUpdated(kDeviceId, kPolicyAppId_, perms); } TEST_F(PolicyHandlerTest, OnPermissionsUpdated_TwoParams_InvalidApp_UNSUCCESS) { std::shared_ptr invalid_app; - EXPECT_CALL(app_manager_, application_by_policy_id(kPolicyAppId_)) + EXPECT_CALL(app_manager_, application(kDeviceId, kPolicyAppId_)) .WillOnce(Return(invalid_app)); EXPECT_CALL(mock_message_helper_, SendOnPermissionsChangeNotification(_, _, _)) .Times(0); Permissions permissions; - policy_handler_.OnPermissionsUpdated(kPolicyAppId_, permissions); + policy_handler_.OnPermissionsUpdated(kDeviceId, kPolicyAppId_, permissions); } TEST_F(PolicyHandlerTest, OnPermissionsUpdated_InvalidApp_UNSUCCESS) { std::shared_ptr invalid_app; - EXPECT_CALL(app_manager_, application_by_policy_id(kPolicyAppId_)) + EXPECT_CALL(app_manager_, application(kDeviceId, kPolicyAppId_)) .WillOnce(Return(mock_app_)) .WillOnce(Return(invalid_app)); EXPECT_CALL(*mock_app_, app_id()).WillOnce(Return(kAppId1_)); @@ -526,7 +526,8 @@ TEST_F(PolicyHandlerTest, OnPermissionsUpdated_InvalidApp_UNSUCCESS) { SendOnPermissionsChangeNotification(kAppId1_, _, _)); Permissions permissions; - policy_handler_.OnPermissionsUpdated(kPolicyAppId_, permissions, "HMI_FULL"); + policy_handler_.OnPermissionsUpdated( + kDeviceId, kPolicyAppId_, permissions, "HMI_FULL"); } TEST_F(PolicyHandlerTest, OnPermissionsUpdated_HmiLevelInvalidEnum_UNSUCCESS) { @@ -544,7 +545,7 @@ TEST_F(PolicyHandlerTest, const std::string new_kHmiLevel_string = "HMI_FULL"; mobile_apis::HMILevel::eType new_hmi_level = mobile_apis::HMILevel::HMI_FULL; // Check expectations - EXPECT_CALL(app_manager_, application_by_policy_id(kPolicyAppId_)) + EXPECT_CALL(app_manager_, application(kDeviceId, kPolicyAppId_)) .Times(2) .WillRepeatedly(Return(mock_app_)); EXPECT_CALL(*mock_app_, app_id()).WillOnce(Return(kAppId1_)); @@ -562,7 +563,7 @@ TEST_F(PolicyHandlerTest, // Act Permissions perms; policy_handler_.OnPermissionsUpdated( - kPolicyAppId_, perms, new_kHmiLevel_string); + kDeviceId, kPolicyAppId_, perms, new_kHmiLevel_string); } TEST_F(PolicyHandlerTest, @@ -572,7 +573,7 @@ TEST_F(PolicyHandlerTest, mobile_apis::HMILevel::eType new_hmi_level = mobile_apis::HMILevel::HMI_LIMITED; // Check expectations - EXPECT_CALL(app_manager_, application_by_policy_id(kPolicyAppId_)) + EXPECT_CALL(app_manager_, application(kDeviceId, kPolicyAppId_)) .Times(2) .WillRepeatedly(Return(mock_app_)); EXPECT_CALL(*mock_app_, app_id()).WillOnce(Return(kAppId1_)); @@ -590,7 +591,7 @@ TEST_F(PolicyHandlerTest, // Act Permissions perms; policy_handler_.OnPermissionsUpdated( - kPolicyAppId_, perms, new_kHmiLevel_string); + kDeviceId, kPolicyAppId_, perms, new_kHmiLevel_string); } TEST_F(PolicyHandlerTest, @@ -599,7 +600,7 @@ TEST_F(PolicyHandlerTest, std::string new_kHmiLevel_string = "HMI_FULL"; mobile_apis::HMILevel::eType new_hmi_level = mobile_apis::HMILevel::HMI_FULL; // Check expectations - EXPECT_CALL(app_manager_, application_by_policy_id(kPolicyAppId_)) + EXPECT_CALL(app_manager_, application(kDeviceId, kPolicyAppId_)) .Times(2) .WillRepeatedly(Return(mock_app_)); EXPECT_CALL(*mock_app_, app_id()).WillOnce(Return(kAppId1_)); @@ -615,7 +616,7 @@ TEST_F(PolicyHandlerTest, // Act Permissions perms; policy_handler_.OnPermissionsUpdated( - kPolicyAppId_, perms, new_kHmiLevel_string); + kDeviceId, kPolicyAppId_, perms, new_kHmiLevel_string); } TEST_F(PolicyHandlerTest, GetPriority) { @@ -639,16 +640,9 @@ TEST_F(PolicyHandlerTest, CheckPermissions) { EXPECT_CALL(*mock_app_, hmi_level()).WillOnce(Return(hmi_level)); EXPECT_CALL(*mock_app_, device()).WillOnce(Return(device)); EXPECT_CALL(*mock_app_, policy_app_id()).WillOnce(Return(kPolicyAppId_)); -#ifdef EXTERNAL_PROPRIETARY_MODE - EXPECT_CALL( - *mock_policy_manager_, - CheckPermissions(kPolicyAppId_, kHmiLevel_, kRpc_, kRpc_params, _)); - -#else // EXTERNAL_PROPRIETARY_MODE EXPECT_CALL(*mock_policy_manager_, CheckPermissions( kDeviceId, kPolicyAppId_, kHmiLevel_, kRpc_, kRpc_params, _)); -#endif // EXTERNAL_PROPRIETARY_MODE EXPECT_CALL(mock_message_helper_, StringifiedHMILevel(hmi_level)) .WillOnce(Return(kHmiLevel_)); EXPECT_CALL(mock_message_helper_, GetDeviceMacAddressForHandle(device, _)) @@ -681,9 +675,9 @@ TEST_F(PolicyHandlerTest, GetDefaultHmi) { EnablePolicyAndPolicyManagerMock(); // Check expectations EXPECT_CALL(*mock_policy_manager_, - GetDefaultHmi(kPolicyAppId_, &default_hmi_)); + GetDefaultHmi(kDeviceId_, kPolicyAppId_, &default_hmi_)); // Act - policy_handler_.GetDefaultHmi(kPolicyAppId_, &default_hmi_); + policy_handler_.GetDefaultHmi(kDeviceId_, kPolicyAppId_, &default_hmi_); } TEST_F(PolicyHandlerTest, GetInitialAppData) { @@ -882,12 +876,14 @@ void PolicyHandlerTest::TestActivateApp(const uint32_t connection_key, #endif // EXTERNAL_PROPRIETARY_MODE EXPECT_CALL(*application1, policy_app_id()).WillOnce(Return(kPolicyAppId_)); - EXPECT_CALL(*mock_policy_manager_, GetAppPermissionsChanges(_)) + EXPECT_CALL(*mock_policy_manager_, + GetAppPermissionsChanges(kMacAddr_, kPolicyAppId_)) .WillOnce(Return(permissions)); ON_CALL(*mock_policy_manager_, Increment(_, _)).WillByDefault(Return()); EXPECT_CALL(*mock_policy_manager_, RemovePendingPermissionChanges(_)); EXPECT_CALL(mock_message_helper_, SendSDLActivateAppResponse(_, _, _)); ON_CALL(*application1, app_id()).WillByDefault(Return(kAppId1_)); + ON_CALL(*application1, mac_address()).WillByDefault(ReturnRef(kMacAddr_)); // Act policy_handler_.OnActivateApp(connection_key, correlation_id); } @@ -936,12 +932,14 @@ TEST_F(PolicyHandlerTest, OnActivateApp_AppIsRevoked_AppNotActivated) { // Check expectations EXPECT_CALL(*mock_app_, policy_app_id()).WillOnce(Return(kPolicyAppId_)); - EXPECT_CALL(*mock_policy_manager_, GetAppPermissionsChanges(_)) + EXPECT_CALL(*mock_policy_manager_, + GetAppPermissionsChanges(kDefaultId, kPolicyAppId_)) .WillOnce(Return(permissions)); ON_CALL(*mock_policy_manager_, Increment(_, _)).WillByDefault(Return()); EXPECT_CALL(*mock_policy_manager_, RemovePendingPermissionChanges(_)); EXPECT_CALL(mock_message_helper_, SendSDLActivateAppResponse(_, _, _)); ON_CALL(*mock_app_, app_id()).WillByDefault(Return(kAppId1_)); + ON_CALL(*mock_app_, mac_address()).WillByDefault(ReturnRef(kDefaultId)); // Act policy_handler_.OnActivateApp(kConnectionKey_, kCorrelationKey_); } @@ -963,8 +961,7 @@ void PolicyHandlerTest::OnPendingPermissionChangePrecondition( std::shared_ptr application = std::make_shared(); - EXPECT_CALL(app_manager_, application_by_policy_id(kPolicyAppId_)) - .WillOnce(Return(application)); + EXPECT_CALL(app_manager_, application(_, _)).WillOnce(Return(application)); EXPECT_CALL(*application, app_id()).WillRepeatedly(Return(kAppId1_)); EXPECT_CALL(*application, hmi_level()).WillRepeatedly(Return(hmi_level)); } @@ -980,13 +977,13 @@ TEST_F(PolicyHandlerTest, EXPECT_CALL(mock_message_helper_, SendOnAppPermissionsChangedNotification(kAppId1_, _, _)) .Times(0); - - EXPECT_CALL(*mock_policy_manager_, GetAppPermissionsChanges(_)) + EXPECT_CALL(*mock_policy_manager_, + GetAppPermissionsChanges(kDeviceId_, kPolicyAppId_)) .WillOnce(Return(permissions)); EXPECT_CALL(*mock_policy_manager_, RemovePendingPermissionChanges(kPolicyAppId_)); // Act - policy_handler_.OnPendingPermissionChange(kPolicyAppId_); + policy_handler_.OnPendingPermissionChange(kDeviceId_, kPolicyAppId_); } TEST_F(PolicyHandlerTest, OnPendingPermissionChange_AppInLimitedConsentNeeded) { @@ -998,12 +995,13 @@ TEST_F(PolicyHandlerTest, OnPendingPermissionChange_AppInLimitedConsentNeeded) { // Check expectations EXPECT_CALL(mock_message_helper_, SendOnAppPermissionsChangedNotification(kAppId1_, _, _)); - EXPECT_CALL(*mock_policy_manager_, GetAppPermissionsChanges(_)) + EXPECT_CALL(*mock_policy_manager_, + GetAppPermissionsChanges(kDeviceId_, kPolicyAppId_)) .WillOnce(Return(permissions)); EXPECT_CALL(*mock_policy_manager_, RemovePendingPermissionChanges(kPolicyAppId_)); // Act - policy_handler_.OnPendingPermissionChange(kPolicyAppId_); + policy_handler_.OnPendingPermissionChange(kDeviceId_, kPolicyAppId_); } TEST_F(PolicyHandlerTest, OnPendingPermissionChange_AppLimitedAndRevoked) { @@ -1025,12 +1023,13 @@ TEST_F(PolicyHandlerTest, OnPendingPermissionChange_AppLimitedAndRevoked) { mobile_apis::VideoStreamingState::NOT_STREAMABLE, true)); - EXPECT_CALL(*mock_policy_manager_, GetAppPermissionsChanges(_)) + EXPECT_CALL(*mock_policy_manager_, + GetAppPermissionsChanges(kDeviceId_, kPolicyAppId_)) .WillOnce(Return(permissions)); EXPECT_CALL(*mock_policy_manager_, RemovePendingPermissionChanges(kPolicyAppId_)); // Act - policy_handler_.OnPendingPermissionChange(kPolicyAppId_); + policy_handler_.OnPendingPermissionChange(kDeviceId_, kPolicyAppId_); } TEST_F(PolicyHandlerTest, OnPendingPermissionChange_AppInBackgroundAndRevoked) { @@ -1044,12 +1043,13 @@ TEST_F(PolicyHandlerTest, OnPendingPermissionChange_AppInBackgroundAndRevoked) { EXPECT_CALL(mock_message_helper_, SendOnAppPermissionsChangedNotification(kAppId1_, _, _)); - EXPECT_CALL(*mock_policy_manager_, GetAppPermissionsChanges(_)) + EXPECT_CALL(*mock_policy_manager_, + GetAppPermissionsChanges(kDeviceId_, kPolicyAppId_)) .WillOnce(Return(permissions)); EXPECT_CALL(*mock_policy_manager_, RemovePendingPermissionChanges(kPolicyAppId_)); // Act - policy_handler_.OnPendingPermissionChange(kPolicyAppId_); + policy_handler_.OnPendingPermissionChange(kDeviceId_, kPolicyAppId_); } TEST_F(PolicyHandlerTest, @@ -1066,7 +1066,8 @@ TEST_F(PolicyHandlerTest, EXPECT_CALL(mock_message_helper_, SendOnAppPermissionsChangedNotification(kAppId1_, _, _)); - EXPECT_CALL(*mock_policy_manager_, GetAppPermissionsChanges(_)) + EXPECT_CALL(*mock_policy_manager_, + GetAppPermissionsChanges(kDeviceId_, kPolicyAppId_)) .WillOnce(Return(permissions)); EXPECT_CALL(mock_message_helper_, @@ -1083,7 +1084,7 @@ TEST_F(PolicyHandlerTest, RemovePendingPermissionChanges(kPolicyAppId_)); // Act - policy_handler_.OnPendingPermissionChange(kPolicyAppId_); + policy_handler_.OnPendingPermissionChange(kDeviceId_, kPolicyAppId_); } TEST_F(PolicyHandlerTest, @@ -1096,13 +1097,14 @@ TEST_F(PolicyHandlerTest, EXPECT_CALL(mock_message_helper_, SendOnAppPermissionsChangedNotification(kAppId1_, _, _)); - EXPECT_CALL(*mock_policy_manager_, GetAppPermissionsChanges(_)) + EXPECT_CALL(*mock_policy_manager_, + GetAppPermissionsChanges(kDeviceId_, kPolicyAppId_)) .WillOnce(Return(permissions)); EXPECT_CALL(*mock_policy_manager_, RemovePendingPermissionChanges(kPolicyAppId_)); - policy_handler_.OnPendingPermissionChange(kPolicyAppId_); + policy_handler_.OnPendingPermissionChange(kDeviceId_, kPolicyAppId_); } TEST_F(PolicyHandlerTest, @@ -1121,7 +1123,8 @@ TEST_F(PolicyHandlerTest, SendOnAppPermissionsChangedNotification(kAppId1_, _, _)) .Times(0); - EXPECT_CALL(*mock_policy_manager_, GetAppPermissionsChanges(_)) + EXPECT_CALL(*mock_policy_manager_, + GetAppPermissionsChanges(kDeviceId_, kPolicyAppId_)) .WillOnce(Return(permissions)); EXPECT_CALL(mock_message_helper_, @@ -1138,7 +1141,7 @@ TEST_F(PolicyHandlerTest, RemovePendingPermissionChanges(kPolicyAppId_)); // Act - policy_handler_.OnPendingPermissionChange(kPolicyAppId_); + policy_handler_.OnPendingPermissionChange(kDeviceId_, kPolicyAppId_); } TEST_F(PolicyHandlerTest, PTExchangeAtUserRequest) { @@ -1234,7 +1237,7 @@ TEST_F(PolicyHandlerTest, OnCurrentDeviceIdUpdateRequired) { // Check expectations std::shared_ptr application = std::make_shared(); - EXPECT_CALL(app_manager_, application_by_policy_id(kPolicyAppId_)) + EXPECT_CALL(app_manager_, application(kDeviceId_, kPolicyAppId_)) .WillOnce(Return(application)); EXPECT_CALL(app_manager_, connection_handler()) .WillOnce(ReturnRef(conn_handler)); @@ -1251,10 +1254,11 @@ TEST_F(PolicyHandlerTest, OnCurrentDeviceIdUpdateRequired) { _, _, _, - _)); + _)) + .WillOnce(DoAll(SetArgPointee<3>(kDeviceId_), Return(0))); // Act - policy_handler_.OnCurrentDeviceIdUpdateRequired(kPolicyAppId_); + policy_handler_.OnCurrentDeviceIdUpdateRequired(handle, kPolicyAppId_); } TEST_F(PolicyHandlerTest, OnSystemInfoChanged) { @@ -1303,11 +1307,17 @@ TEST_F(PolicyHandlerTest, GetAppRequestTypes) { // Arrange EnablePolicy(); ChangePolicyManagerToMock(); - // Check expectations + const transport_manager::DeviceHandle handle = 0u; +// Check expectations +#ifdef EXTERNAL_PROPRIETARY_MODE + EXPECT_CALL(*mock_policy_manager_, GetAppRequestTypes(handle, kPolicyAppId_)) + .WillOnce(Return(std::vector())); +#else EXPECT_CALL(*mock_policy_manager_, GetAppRequestTypes(kPolicyAppId_)) .WillOnce(Return(std::vector())); +#endif // Act - policy_handler_.GetAppRequestTypes(kPolicyAppId_); + policy_handler_.GetAppRequestTypes(handle, kPolicyAppId_); } TEST_F(PolicyHandlerTest, OnVIIsReady) { @@ -1376,13 +1386,14 @@ TEST_F(PolicyHandlerTest, SendOnAppPermissionsChanged) { std::shared_ptr application = std::make_shared(); // Check expectations - EXPECT_CALL(app_manager_, application_by_policy_id(kPolicyAppId_)) + EXPECT_CALL(app_manager_, application(kDeviceId_, kPolicyAppId_)) .WillOnce(Return(application)); EXPECT_CALL(mock_message_helper_, SendOnAppPermissionsChangedNotification(_, _, _)); AppPermissions permissions(kPolicyAppId_); // Act - policy_handler_.SendOnAppPermissionsChanged(permissions, kPolicyAppId_); + policy_handler_.SendOnAppPermissionsChanged( + permissions, kDeviceId_, kPolicyAppId_); } TEST_F(PolicyHandlerTest, OnPTExchangeNeeded) { @@ -1400,11 +1411,12 @@ TEST_F(PolicyHandlerTest, AddApplication) { // Check expectations EXPECT_CALL( *mock_policy_manager_, - AddApplication(kPolicyAppId_, HmiTypes(policy_table::AHT_DEFAULT))) + AddApplication( + kMacAddr_, kPolicyAppId_, HmiTypes(policy_table::AHT_DEFAULT))) .WillOnce(Return(std::make_shared())); // Act - policy_handler_.AddApplication(kPolicyAppId_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_handler_.AddApplication( + kMacAddr_, kPolicyAppId_, HmiTypes(policy_table::AHT_DEFAULT)); } TEST_F(PolicyHandlerTest, HeartBeatTimeout) { @@ -1439,9 +1451,10 @@ TEST_F(PolicyHandlerTest, OnAppRegisteredOnMobile) { EnablePolicyAndPolicyManagerMock(); // Check expectations - EXPECT_CALL(*mock_policy_manager_, OnAppRegisteredOnMobile(kPolicyAppId_)); + EXPECT_CALL(*mock_policy_manager_, + OnAppRegisteredOnMobile(kDeviceId, kPolicyAppId_)); // Act - policy_handler_.OnAppRegisteredOnMobile(kPolicyAppId_); + policy_handler_.OnAppRegisteredOnMobile(kDeviceId, kPolicyAppId_); } TEST_F(PolicyHandlerTest, IsRequestTypeAllowed) { @@ -1452,13 +1465,20 @@ TEST_F(PolicyHandlerTest, IsRequestTypeAllowed) { mobile_apis::RequestType::eType type = mobile_apis::RequestType::eType::EMERGENCY; + const transport_manager::DeviceHandle handle = 0u; + EXPECT_CALL(*mock_policy_manager_, GetAppRequestTypesState(kPolicyAppId_)) .WillOnce(Return(policy::RequestType::State::AVAILABLE)); - +#ifdef EXTERNAL_PROPRIETARY_MODE + EXPECT_CALL(*mock_policy_manager_, GetAppRequestTypes(handle, kPolicyAppId_)) + .WillOnce(Return(std::vector({"HTTP"}))); +#else EXPECT_CALL(*mock_policy_manager_, GetAppRequestTypes(kPolicyAppId_)) .WillOnce(Return(std::vector({"HTTP"}))); +#endif // Act - EXPECT_FALSE(policy_handler_.IsRequestTypeAllowed(kPolicyAppId_, type)); + EXPECT_FALSE( + policy_handler_.IsRequestTypeAllowed(handle, kPolicyAppId_, type)); } TEST_F(PolicyHandlerTest, IsRequestSubTypeAllowed) { @@ -1848,8 +1868,9 @@ TEST_F(PolicyHandlerTest, OnDeviceConsentChanged_ConsentAllowed) { connection_handler::DeviceHandle test_device_id = 100u; EXPECT_CALL(app_manager_, connection_handler()) .WillOnce(ReturnRef(conn_handler)); + EXPECT_CALL(app_manager_, applications()).WillRepeatedly(Return(app_set)); - EXPECT_CALL(conn_handler, GetDeviceID(kPolicyAppId_, _)) + EXPECT_CALL(conn_handler, GetDeviceID(kDeviceId, _)) .WillOnce(DoAll(SetArgPointee<1>(test_device_id), Return(true))); test_app.insert(mock_app_); @@ -1859,12 +1880,13 @@ TEST_F(PolicyHandlerTest, OnDeviceConsentChanged_ConsentAllowed) { EXPECT_CALL(*mock_policy_manager_, IsPredataPolicy(kPolicyAppId_)) .WillOnce(Return(true)); + EXPECT_CALL( + *mock_policy_manager_, + ReactOnUserDevConsentForApp(test_device_id, kPolicyAppId_, is_allowed)); EXPECT_CALL(*mock_policy_manager_, - ReactOnUserDevConsentForApp(kPolicyAppId_, is_allowed)); - EXPECT_CALL(*mock_policy_manager_, - SendNotificationOnPermissionsUpdated(kPolicyAppId_)); + SendNotificationOnPermissionsUpdated(kDeviceId, kPolicyAppId_)); - policy_handler_.OnDeviceConsentChanged(kPolicyAppId_, is_allowed); + policy_handler_.OnDeviceConsentChanged(kDeviceId, is_allowed); } TEST_F(PolicyHandlerTest, OnDeviceConsentChanged_ConsentNotAllowed) { @@ -1872,27 +1894,29 @@ TEST_F(PolicyHandlerTest, OnDeviceConsentChanged_ConsentNotAllowed) { // Arrange EnablePolicyAndPolicyManagerMock(); - connection_handler::DeviceHandle test_device_id = 100u; + connection_handler::DeviceHandle handle = 100u; EXPECT_CALL(app_manager_, connection_handler()) .WillOnce(ReturnRef(conn_handler)); // Check expectations - EXPECT_CALL(conn_handler, GetDeviceID(kPolicyAppId_, _)) - .WillOnce(DoAll(SetArgPointee<1>(test_device_id), Return(true))); + EXPECT_CALL(conn_handler, GetDeviceID(kMacAddr_, _)) + .WillOnce(DoAll(SetArgPointee<1>(handle), Return(true))); test_app.insert(mock_app_); - EXPECT_CALL(*mock_app_, device()).WillOnce(Return(test_device_id)); + EXPECT_CALL(*mock_app_, device()).WillOnce(Return(handle)); EXPECT_CALL(*mock_app_, policy_app_id()).WillOnce(Return(kPolicyAppId_)); EXPECT_CALL(*mock_policy_manager_, IsPredataPolicy(kPolicyAppId_)) .WillOnce(Return(true)); - EXPECT_CALL(*mock_policy_manager_, ReactOnUserDevConsentForApp(_, _)) + EXPECT_CALL(*mock_policy_manager_, + ReactOnUserDevConsentForApp(handle, kPolicyAppId_, is_allowed)) .Times(0); - EXPECT_CALL(*mock_policy_manager_, SendNotificationOnPermissionsUpdated(_)) + EXPECT_CALL(*mock_policy_manager_, + SendNotificationOnPermissionsUpdated(kMacAddr_, kPolicyAppId_)) .Times(0); - policy_handler_.OnDeviceConsentChanged(kPolicyAppId_, is_allowed); + policy_handler_.OnDeviceConsentChanged(kMacAddr_, is_allowed); } TEST_F(PolicyHandlerTest, OnDeviceConsentChanged_PredatePolicyNotAllowed) { @@ -1903,8 +1927,9 @@ TEST_F(PolicyHandlerTest, OnDeviceConsentChanged_PredatePolicyNotAllowed) { connection_handler::DeviceHandle test_device_id = 100u; EXPECT_CALL(app_manager_, connection_handler()) .WillOnce(ReturnRef(conn_handler)); + EXPECT_CALL(app_manager_, applications()).WillRepeatedly(Return(app_set)); - EXPECT_CALL(conn_handler, GetDeviceID(kPolicyAppId_, _)) + EXPECT_CALL(conn_handler, GetDeviceID(kMacAddr_, _)) .WillOnce(DoAll(SetArgPointee<1>(test_device_id), Return(true))); test_app.insert(mock_app_); @@ -1916,12 +1941,13 @@ TEST_F(PolicyHandlerTest, OnDeviceConsentChanged_PredatePolicyNotAllowed) { EXPECT_CALL(*mock_policy_manager_, IsPredataPolicy(kPolicyAppId_)) .WillOnce(Return(false)); + EXPECT_CALL( + *mock_policy_manager_, + ReactOnUserDevConsentForApp(test_device_id, kPolicyAppId_, is_allowed)); EXPECT_CALL(*mock_policy_manager_, - ReactOnUserDevConsentForApp(kPolicyAppId_, is_allowed)); - EXPECT_CALL(*mock_policy_manager_, - SendNotificationOnPermissionsUpdated(kPolicyAppId_)); + SendNotificationOnPermissionsUpdated(kMacAddr_, kPolicyAppId_)); - policy_handler_.OnDeviceConsentChanged(kPolicyAppId_, is_allowed); + policy_handler_.OnDeviceConsentChanged(kMacAddr_, is_allowed); } #ifdef ENABLE_SECURITY #ifdef EXTERNAL_PROPRIETARY_MODE diff --git a/src/components/include/test/application_manager/mock_application_manager.h b/src/components/include/test/application_manager/mock_application_manager.h index fcedcebcf8..b498708beb 100644 --- a/src/components/include/test/application_manager/mock_application_manager.h +++ b/src/components/include/test/application_manager/mock_application_manager.h @@ -337,6 +337,9 @@ class MockApplicationManager : public application_manager::ApplicationManager { const uint32_t connection_key)); MOCK_CONST_METHOD1(IsAppInReconnectMode, bool(const std::string& policy_app_id)); + MOCK_CONST_METHOD2(IsAppInReconnectMode, + bool(const connection_handler::DeviceHandle& device_id, + const std::string& policy_app_id)); MOCK_CONST_METHOD0(GetCommandFactory, application_manager::CommandFactory&()); MOCK_CONST_METHOD0(get_current_audio_source, uint32_t()); MOCK_METHOD1(set_current_audio_source, void(const uint32_t)); diff --git a/src/components/include/test/application_manager/policies/mock_policy_handler_interface.h b/src/components/include/test/application_manager/policies/mock_policy_handler_interface.h index 342debca0a..51e95a5d88 100644 --- a/src/components/include/test/application_manager/policies/mock_policy_handler_interface.h +++ b/src/components/include/test/application_manager/policies/mock_policy_handler_interface.h @@ -57,12 +57,21 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { bool(const std::string& file, const policy::BinaryMessage& pt_string)); MOCK_METHOD0(UnloadPolicyLibrary, bool()); + MOCK_METHOD2(OnPermissionsUpdated, + void(const std::string& policy_app_id, + const policy::Permissions& permissions)); MOCK_METHOD3(OnPermissionsUpdated, void(const std::string& policy_app_id, const policy::Permissions& permissions, const policy::HMILevel& default_hmi)); - MOCK_METHOD2(OnPermissionsUpdated, - void(const std::string& policy_app_id, + MOCK_METHOD4(OnPermissionsUpdated, + void(const std::string& device_id, + const std::string& policy_app_id, + const policy::Permissions& permissions, + const policy::HMILevel& default_hmi)); + MOCK_METHOD3(OnPermissionsUpdated, + void(const std::string& device_id, + const std::string& policy_app_id, const policy::Permissions& permissions)); #ifdef EXTERNAL_PROPRIETARY_MODE @@ -89,6 +98,10 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { MOCK_CONST_METHOD2(GetDefaultHmi, bool(const std::string& policy_app_id, std::string* default_hmi)); + MOCK_CONST_METHOD3(GetDefaultHmi, + bool(const std::string& device_id, + const std::string& policy_app_id, + std::string* default_hmi)); MOCK_METHOD3(GetInitialAppData, bool(const std::string& application_id, @@ -129,6 +142,9 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { MOCK_METHOD0(OnIgnitionCycleOver, void()); MOCK_METHOD1(OnPendingPermissionChange, void(const std::string& policy_app_id)); + MOCK_METHOD2(OnPendingPermissionChange, + void(const std::string& device_id, + const std::string& policy_app_id)); MOCK_METHOD1(PTExchangeAtUserRequest, void(uint32_t correlation_id)); MOCK_METHOD2(AddDevice, void(const std::string& device_id, @@ -158,6 +174,9 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { MOCK_METHOD1(OnUpdateStatusChanged, void(const std::string& status)); MOCK_METHOD1(OnCurrentDeviceIdUpdateRequired, std::string(const std::string& policy_app_id)); + MOCK_METHOD2(OnCurrentDeviceIdUpdateRequired, + std::string(const transport_manager::DeviceHandle& device_handle, + const std::string& policy_app_id)); MOCK_METHOD1(OnSystemInfoChanged, void(const std::string& language)); MOCK_METHOD3(OnGetSystemInfo, void(const std::string& ccpu_version, @@ -185,6 +204,10 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { MOCK_CONST_METHOD2(SendOnAppPermissionsChanged, void(const policy::AppPermissions& permissions, const std::string& policy_app_id)); + MOCK_CONST_METHOD3(SendOnAppPermissionsChanged, + void(const policy::AppPermissions& permissions, + const std::string& device_id, + const std::string& policy_app_id)); MOCK_METHOD0(OnPTExchangeNeeded, void()); MOCK_METHOD1(GetAvailableApps, void(std::queue& apps)); MOCK_METHOD2( @@ -192,6 +215,12 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { policy::StatusNotifier( const std::string& application_id, const rpc::policy_table_interface_base::AppHmiTypes& hmi_types)); + MOCK_METHOD3( + AddApplication, + policy::StatusNotifier( + const std::string& device_id, + const std::string& application_id, + const rpc::policy_table_interface_base::AppHmiTypes& hmi_types)); MOCK_METHOD1(IsApplicationRevoked, bool(const std::string& app_id)); MOCK_METHOD0(OnUpdateRequestSentToMobile, void()); MOCK_CONST_METHOD1(HeartBeatTimeout, uint32_t(const std::string& app_id)); @@ -199,9 +228,16 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { MOCK_METHOD1(OnAppsSearchCompleted, void(const bool trigger_ptu)); MOCK_METHOD1(OnAppRegisteredOnMobile, void(const std::string& application_id)); + MOCK_METHOD2(OnAppRegisteredOnMobile, + void(const std::string& device_id, + const std::string& application_id)); MOCK_CONST_METHOD2(IsRequestTypeAllowed, bool(const std::string& policy_app_id, mobile_apis::RequestType::eType type)); + MOCK_CONST_METHOD3(IsRequestTypeAllowed, + bool(const transport_manager::DeviceHandle& device_handle, + const std::string& policy_app_id, + mobile_apis::RequestType::eType type)); MOCK_CONST_METHOD2(IsRequestSubTypeAllowed, bool(const std::string& policy_app_id, const std::string& request_subtype)); @@ -217,6 +253,10 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { MOCK_CONST_METHOD1( GetAppRequestTypes, const std::vector(const std::string& policy_app_id)); + MOCK_CONST_METHOD2(GetAppRequestTypes, + const std::vector( + const transport_manager::DeviceHandle& device_handle, + const std::string& policy_app_id)); MOCK_CONST_METHOD0(GetVehicleInfo, const policy::VehicleInfo()); MOCK_CONST_METHOD1(GetEnabledCloudApps, void(std::vector& enabled_apps)); @@ -296,6 +336,10 @@ class MockPolicyHandlerInterface : public policy::PolicyHandlerInterface { MOCK_METHOD2(SetDefaultHmiTypes, void(const std::string& application_id, const smart_objects::SmartObject* app_types)); + MOCK_METHOD3(SetDefaultHmiTypes, + void(const transport_manager::DeviceHandle& device_handle, + const std::string& application_id, + const smart_objects::SmartObject* app_types)); MOCK_METHOD2(OnDeviceSwitching, void(const std::string& device_id_from, const std::string& device_id_to)); diff --git a/src/components/include/test/policy/policy_external/policy/mock_policy_listener.h b/src/components/include/test/policy/policy_external/policy/mock_policy_listener.h index e6ee086b31..a0452855f6 100644 --- a/src/components/include/test/policy/policy_external/policy/mock_policy_listener.h +++ b/src/components/include/test/policy/policy_external/policy/mock_policy_listener.h @@ -38,6 +38,7 @@ #include #include "gmock/gmock.h" +#include "utils/macro.h" #include "policy/policy_listener.h" #include "policy/policy_table/types.h" @@ -58,14 +59,29 @@ class MockPolicyListener : public ::policy::PolicyListener { void(const std::string& policy_app_id, const policy::Permissions& permissions, const policy::HMILevel& default_hmi)); + MOCK_METHOD4(OnPermissionsUpdated, + void(const std::string& device_id, + const std::string& policy_app_id, + const policy::Permissions& permissions, + const policy::HMILevel& default_hmi)); MOCK_METHOD2(OnPermissionsUpdated, void(const std::string& policy_app_id, const policy::Permissions& permissions)); + MOCK_METHOD3(OnPermissionsUpdated, + void(const std::string& device_id, + const std::string& policy_app_id, + const policy::Permissions& permissions)); MOCK_METHOD1(OnPendingPermissionChange, void(const std::string& policy_app_id)); + MOCK_METHOD2(OnPendingPermissionChange, + void(const std::string& device_id, + const std::string& policy_app_id)); MOCK_METHOD1(OnUpdateStatusChanged, void(const std::string& status)); MOCK_METHOD1(OnCurrentDeviceIdUpdateRequired, std::string(const std::string& policy_app_id)); + MOCK_METHOD2(OnCurrentDeviceIdUpdateRequired, + std::string(const transport_manager::DeviceHandle& device_handle, + const std::string& policy_app_id)); MOCK_METHOD0(OnSystemInfoUpdateRequired, void()); MOCK_METHOD1(GetAppName, custom_str::CustomString(const std::string& policy_app_id)); @@ -87,8 +103,13 @@ class MockPolicyListener : public ::policy::PolicyListener { MOCK_METHOD1(OnPTUFinished, void(const bool ptu_result)); MOCK_CONST_METHOD2(SendOnAppPermissionsChanged, void(const policy::AppPermissions&, const std::string&)); - MOCK_METHOD1(GetDevicesIds, - std::vector(const std::string& policy_app_id)); + MOCK_CONST_METHOD3(SendOnAppPermissionsChanged, + void(const policy::AppPermissions& permissions, + const std::string& device_id, + const std::string& policy_app_id)); + MOCK_CONST_METHOD1( + GetDevicesIds, + std::vector(const std::string& policy_app_id)); MOCK_METHOD3(OnUpdateHMILevel, void(const std::string& device_id, const std::string& policy_app_id, diff --git a/src/components/include/test/policy/policy_external/policy/mock_policy_manager.h b/src/components/include/test/policy/policy_external/policy/mock_policy_manager.h index 309e357235..7ab075a94e 100644 --- a/src/components/include/test/policy/policy_external/policy/mock_policy_manager.h +++ b/src/components/include/test/policy/policy_external/policy/mock_policy_manager.h @@ -74,6 +74,13 @@ class MockPolicyManager : public PolicyManager { const PTString& rpc, const RPCParams& rpc_params, CheckPermissionResult& result)); + MOCK_METHOD6(CheckPermissions, + void(const PTString& device_id, + const PTString& app_id, + const PTString& hmi_level, + const PTString& rpc, + const RPCParams& rpc_params, + CheckPermissionResult& result)); MOCK_METHOD0(ResetUserConsent, bool()); MOCK_CONST_METHOD0(GetPolicyTableStatus, std::string()); MOCK_METHOD1(KmsChanged, void(int kilometers)); @@ -101,6 +108,10 @@ class MockPolicyManager : public PolicyManager { void(const std::string& device_id, const bool is_allowed)); MOCK_METHOD2(ReactOnUserDevConsentForApp, bool(const std::string& app_id, bool is_device_allowed)); + MOCK_METHOD3(ReactOnUserDevConsentForApp, + bool(const transport_manager::DeviceHandle& device_handle, + const std::string& app_id, + bool is_device_allowed)); MOCK_METHOD2(PTUpdatedAt, void(policy::Counters counter, int value)); MOCK_METHOD3(GetInitialAppData, @@ -120,6 +131,10 @@ class MockPolicyManager : public PolicyManager { MOCK_CONST_METHOD2(GetDefaultHmi, bool(const std::string& policy_app_id, std::string* default_hmi)); + MOCK_CONST_METHOD3(GetDefaultHmi, + bool(const std::string& device_id, + const std::string& policy_app_id, + std::string* default_hmi)); MOCK_CONST_METHOD2(GetPriority, bool(const std::string& policy_app_id, std::string* priority)); @@ -136,9 +151,16 @@ class MockPolicyManager : public PolicyManager { std::vector& permissions)); MOCK_METHOD1(GetAppPermissionsChanges, policy::AppPermissions(const std::string& policy_app_id)); + MOCK_METHOD2(GetAppPermissionsChanges, + policy::AppPermissions(const std::string& device_id, + const std::string& policy_app_id)); MOCK_METHOD1(RemovePendingPermissionChanges, void(const std::string& app_id)); MOCK_CONST_METHOD1(GetCurrentDeviceId, std::string&(const std::string& policy_app_id)); + MOCK_CONST_METHOD2( + GetCurrentDeviceId, + std::string&(const transport_manager::DeviceHandle& device_handle, + const std::string& policy_app_id)); MOCK_METHOD1(SetSystemLanguage, void(const std::string& language)); MOCK_METHOD3(SetSystemInfo, void(const std::string& ccpu_version, @@ -146,15 +168,28 @@ class MockPolicyManager : public PolicyManager { const std::string& language)); MOCK_METHOD1(SendNotificationOnPermissionsUpdated, void(const std::string& application_id)); + MOCK_METHOD2(SendNotificationOnPermissionsUpdated, + void(const std::string& device_id, + const std::string& application_id)); MOCK_METHOD1(MarkUnpairedDevice, void(const std::string& device_id)); MOCK_METHOD2( AddApplication, StatusNotifier( const std::string& application_id, const rpc::policy_table_interface_base::AppHmiTypes& hmi_types)); + MOCK_METHOD3( + AddApplication, + StatusNotifier( + const std::string& device_id, + const std::string& application_id, + const rpc::policy_table_interface_base::AppHmiTypes& hmi_types)); MOCK_METHOD2(SetDefaultHmiTypes, void(const std::string& application_id, const std::vector& hmi_types)); + MOCK_METHOD3(SetDefaultHmiTypes, + void(const transport_manager::DeviceHandle& device_handle, + const std::string& application_id, + const std::vector& hmi_types)); MOCK_METHOD2(GetHMITypes, bool(const std::string& application_id, std::vector* app_types)); @@ -183,11 +218,18 @@ class MockPolicyManager : public PolicyManager { MOCK_METHOD1(OnAppsSearchCompleted, void(const bool trigger_ptu)); MOCK_METHOD1(OnAppRegisteredOnMobile, void(const std::string& application_id)); + MOCK_METHOD2(OnAppRegisteredOnMobile, + void(const std::string& device_id, + const std::string& application_id)); MOCK_CONST_METHOD0(GetLockScreenIconUrl, std::string()); MOCK_CONST_METHOD1(GetIconUrl, std::string(const std::string& policy_app_id)); MOCK_CONST_METHOD1( GetAppRequestTypes, const std::vector(const std::string policy_app_id)); + MOCK_CONST_METHOD2(GetAppRequestTypes, + const std::vector( + const transport_manager::DeviceHandle& device_handle, + const std::string policy_app_id)); MOCK_CONST_METHOD0(GetVehicleInfo, const policy::VehicleInfo()); MOCK_CONST_METHOD1(GetEnabledCloudApps, void(std::vector& enabled_apps)); diff --git a/src/components/include/test/policy/policy_regular/policy/mock_policy_listener.h b/src/components/include/test/policy/policy_regular/policy/mock_policy_listener.h index 7958bd3304..ce06fe3fbd 100644 --- a/src/components/include/test/policy/policy_regular/policy/mock_policy_listener.h +++ b/src/components/include/test/policy/policy_regular/policy/mock_policy_listener.h @@ -35,6 +35,7 @@ #include #include "gmock/gmock.h" +#include "utils/macro.h" #include "policy/policy_listener.h" #include "policy/policy_table/types.h" @@ -51,18 +52,33 @@ namespace custom_str = utils::custom_string; class MockPolicyListener : public ::policy::PolicyListener { public: + MOCK_METHOD2(OnPermissionsUpdated, + void(const std::string& policy_app_id, + const policy::Permissions& permissions)); MOCK_METHOD3(OnPermissionsUpdated, void(const std::string& policy_app_id, const policy::Permissions& permissions, const policy::HMILevel& default_hmi)); - MOCK_METHOD2(OnPermissionsUpdated, - void(const std::string& policy_app_id, + MOCK_METHOD3(OnPermissionsUpdated, + void(const std::string& device_id, + const std::string& policy_app_id, const policy::Permissions& permissions)); + MOCK_METHOD4(OnPermissionsUpdated, + void(const std::string& device_id, + const std::string& policy_app_id, + const policy::Permissions& permissions, + const policy::HMILevel& default_hmi)); MOCK_METHOD1(OnPendingPermissionChange, void(const std::string& policy_app_id)); + MOCK_METHOD2(OnPendingPermissionChange, + void(const std::string& device_id, + const std::string& policy_app_id)); MOCK_METHOD1(OnUpdateStatusChanged, void(const std::string& status)); MOCK_METHOD1(OnCurrentDeviceIdUpdateRequired, std::string(const std::string& policy_app_id)); + MOCK_METHOD2(OnCurrentDeviceIdUpdateRequired, + std::string(const transport_manager::DeviceHandle& device_handle, + const std::string& policy_app_id)); MOCK_METHOD0(OnSystemInfoUpdateRequired, void()); MOCK_METHOD1(GetAppName, custom_str::CustomString(const std::string& policy_app_id)); @@ -80,12 +96,17 @@ class MockPolicyListener : public ::policy::PolicyListener { const std::string& auth_token)); MOCK_CONST_METHOD2(SendOnAppPermissionsChanged, void(const policy::AppPermissions&, const std::string&)); + MOCK_CONST_METHOD3(SendOnAppPermissionsChanged, + void(const policy::AppPermissions& permissions, + const std::string& device_id, + const std::string& policy_app_id)); MOCK_METHOD3(OnUpdateHMILevel, void(const std::string& device_id, const std::string& policy_app_id, const std::string& hmi_level)); - MOCK_METHOD1(GetDevicesIds, - std::vector(const std::string& policy_app_id)); + MOCK_CONST_METHOD1( + GetDevicesIds, + std::vector(const std::string& policy_app_id)); MOCK_CONST_METHOD1(GetRegisteredLinks, void(std::map&)); MOCK_METHOD1(OnRemoteAllowedChanged, void(bool new_consent)); diff --git a/src/components/include/test/policy/policy_regular/policy/mock_policy_manager.h b/src/components/include/test/policy/policy_regular/policy/mock_policy_manager.h index a670e99bef..2bb2eefd3d 100644 --- a/src/components/include/test/policy/policy_regular/policy/mock_policy_manager.h +++ b/src/components/include/test/policy/policy_regular/policy/mock_policy_manager.h @@ -102,6 +102,10 @@ class MockPolicyManager : public PolicyManager { void(const std::string& device_id, const bool is_allowed)); MOCK_METHOD2(ReactOnUserDevConsentForApp, bool(const std::string app_id, bool is_device_allowed)); + MOCK_METHOD3(ReactOnUserDevConsentForApp, + bool(const transport_manager::DeviceHandle& device_handle, + const std::string app_id, + bool is_device_allowed)); MOCK_METHOD2(PTUpdatedAt, void(policy::Counters counter, int value)); MOCK_METHOD3(GetInitialAppData, @@ -120,6 +124,10 @@ class MockPolicyManager : public PolicyManager { MOCK_CONST_METHOD2(GetDefaultHmi, bool(const std::string& policy_app_id, std::string* default_hmi)); + MOCK_CONST_METHOD3(GetDefaultHmi, + bool(const std::string& device_id, + const std::string& policy_app_id, + std::string* default_hmi)); MOCK_CONST_METHOD2(GetPriority, bool(const std::string& policy_app_id, std::string* priority)); @@ -135,9 +143,16 @@ class MockPolicyManager : public PolicyManager { std::vector& permissions)); MOCK_METHOD1(GetAppPermissionsChanges, policy::AppPermissions(const std::string& policy_app_id)); + MOCK_METHOD2(GetAppPermissionsChanges, + policy::AppPermissions(const std::string& device_id, + const std::string& policy_app_id)); MOCK_METHOD1(RemovePendingPermissionChanges, void(const std::string& app_id)); MOCK_CONST_METHOD1(GetCurrentDeviceId, std::string&(const std::string& policy_app_id)); + MOCK_CONST_METHOD2( + GetCurrentDeviceId, + std::string&(const transport_manager::DeviceHandle& device_handle, + const std::string& policy_app_id)); MOCK_METHOD1(SetSystemLanguage, void(const std::string& language)); MOCK_METHOD3(SetSystemInfo, void(const std::string& ccpu_version, @@ -145,15 +160,28 @@ class MockPolicyManager : public PolicyManager { const std::string& language)); MOCK_METHOD1(SendNotificationOnPermissionsUpdated, void(const std::string& application_id)); + MOCK_METHOD2(SendNotificationOnPermissionsUpdated, + void(const std::string& device_id, + const std::string& application_id)); MOCK_METHOD1(MarkUnpairedDevice, void(const std::string& device_id)); MOCK_METHOD2( AddApplication, StatusNotifier( const std::string& application_id, const rpc::policy_table_interface_base::AppHmiTypes& hmi_types)); + MOCK_METHOD3( + AddApplication, + StatusNotifier( + const std::string& device_id, + const std::string& application_id, + const rpc::policy_table_interface_base::AppHmiTypes& hmi_types)); MOCK_METHOD2(SetDefaultHmiTypes, void(const std::string& application_id, const std::vector& hmi_types)); + MOCK_METHOD3(SetDefaultHmiTypes, + void(const transport_manager::DeviceHandle& device_handle, + const std::string& application_id, + const std::vector& hmi_types)); MOCK_METHOD2(GetHMITypes, bool(const std::string& application_id, std::vector* app_types)); @@ -181,6 +209,9 @@ class MockPolicyManager : public PolicyManager { MOCK_METHOD1(OnAppsSearchCompleted, void(const bool trigger_ptu)); MOCK_METHOD1(OnAppRegisteredOnMobile, void(const std::string& application_id)); + MOCK_METHOD2(OnAppRegisteredOnMobile, + void(const std::string& device_id, + const std::string& application_id)); MOCK_CONST_METHOD1( GetAppRequestTypes, const std::vector(const std::string policy_app_id)); 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 066b5756e2..bb8c6fc12a 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 @@ -92,7 +92,8 @@ TEST_F(PolicyManagerImplTest, EXPECT_CALL(*cache_manager_, IsApplicationRepresented(_)) .WillOnce(Return(true)); EXPECT_EQ(policy_manager_->GetPolicyTableStatus(), "UP_TO_DATE"); - policy_manager_->AddApplication(kDefaultId, + policy_manager_->AddApplication(kDefaultDeviceMacAddress, + kDefaultId, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_EQ(policy_manager_->GetPolicyTableStatus(), "UP_TO_DATE"); } @@ -142,8 +143,11 @@ TEST_F(PolicyManagerImplTest2, IsAppRevoked_SetRevokedAppID_ExpectAppRevoked) { // Arrange CreateLocalPT(preloaded_pt_filename_); - policy_manager_->AddApplication(app_id_1_, - HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener_, GetDevicesIds(app_id_1_)) + .WillRepeatedly(Return(transport_manager::DeviceList())); + + policy_manager_->AddApplication( + device_id_1_, app_id_1_, HmiTypes(policy_table::AHT_DEFAULT)); std::ifstream ifile(kValidSdlPtUpdateJson); Json::Reader reader; @@ -174,8 +178,8 @@ TEST_F(PolicyManagerImplTest2, AppRevokedOne_AppRegistered) { EXPECT_FALSE(policy_manager_->GetCache()->IsPTPreloaded()); ASSERT_TRUE( (policy_manager_->GetCache())->AddDevice(device_id_2_, "Bluetooth")); - policy_manager_->AddApplication(application_id_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_2_, application_id_, HmiTypes(policy_table::AHT_DEFAULT)); // Registration is allowed CheckRpcPermissions("RegisterAppInterface", ::policy::kRpcAllowed); } @@ -187,12 +191,13 @@ TEST_F(PolicyManagerImplTest2, AppRevokedOne_AppRegistered_HMIDefault) { EmulatePTAppRevoked(kPtu2Json); EXPECT_FALSE(policy_manager_->GetCache()->IsPTPreloaded()); - policy_manager_->AddApplication(application_id_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, application_id_, HmiTypes(policy_table::AHT_DEFAULT)); std::string default_hmi; // Default HMI level is NONE - EXPECT_TRUE(policy_manager_->GetDefaultHmi(application_id_, &default_hmi)); + EXPECT_TRUE(policy_manager_->GetDefaultHmi( + device_id_1_, application_id_, &default_hmi)); EXPECT_EQ("NONE", default_hmi); } @@ -210,12 +215,16 @@ TEST_F(PolicyManagerImplTest2, "Life", 2, "Bluetooth"); - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_1_)) - .WillRepeatedly(Return(device_id_1_)); + + EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(_, app_id_1_)) + .Times(0); + EXPECT_CALL(listener_, GetDevicesIds(app_id_1_)) + .WillRepeatedly(Return(transport_manager::DeviceList(1, device_id_1_))); + policy_manager_->SetUserConsentForDevice(device_id_1_, true); // Add app from consented device. App will be assigned with default policies - policy_manager_->AddApplication(app_id_1_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_1_, HmiTypes(policy_table::AHT_DEFAULT)); // Check before action policy_table::RpcParameters rpc_parameters; rpc_parameters.hmi_levels.push_back(policy_table::HL_FULL); @@ -227,7 +236,7 @@ TEST_F(PolicyManagerImplTest2, ::policy::CheckPermissionResult output; policy_manager_->CheckPermissions( - app_id_1_, kHmiLevelFull, "Alert", input_params, output); + device_id_1_, app_id_1_, kHmiLevelFull, "Alert", input_params, output); // Check RPC is allowed EXPECT_EQ(::policy::kRpcAllowed, output.hmi_level_permitted); @@ -248,7 +257,7 @@ TEST_F(PolicyManagerImplTest2, EXPECT_FALSE(cache->IsPTPreloaded()); policy_manager_->CheckPermissions( - app_id_1_, kHmiLevelFull, "Alert", input_params, output); + device_id_1_, app_id_1_, kHmiLevelFull, "Alert", input_params, output); // Check RPC is disallowed EXPECT_EQ(::policy::kRpcDisallowed, output.hmi_level_permitted); ASSERT_TRUE(output.list_of_allowed_params.empty()); @@ -269,12 +278,14 @@ TEST_F(PolicyManagerImplTest2, "Life", 2, "Bluetooth")); - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(application_id_)) - .WillRepeatedly(Return(device_id_1_)); + EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(_, application_id_)) + .Times(0); + EXPECT_CALL(listener_, GetDevicesIds(application_id_)) + .WillRepeatedly(Return(transport_manager::DeviceList(1, device_id_1_))); policy_manager_->SetUserConsentForDevice(device_id_1_, true); // Add app from consented device. App will be assigned with default policies - policy_manager_->AddApplication(application_id_, - HmiTypes(policy_table::AHT_MEDIA)); + policy_manager_->AddApplication( + device_id_1_, application_id_, HmiTypes(policy_table::AHT_MEDIA)); // Emulate PTU with new policies for app added above std::ifstream ifile(kValidSdlPtUpdateJson); Json::Reader reader; @@ -323,8 +334,6 @@ TEST_F(PolicyManagerImplTest2, ::policy::RPCParams input_params; ::policy::CheckPermissionResult output; - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(application_id_)) - .WillOnce(Return(device_id_1_)); cache->AddDevice(device_id_1_, "Bluetooth"); cache->SetDeviceData(device_id_1_, "hardware IPX", @@ -334,8 +343,12 @@ TEST_F(PolicyManagerImplTest2, "Life", 2, "Bluetooth"); - policy_manager_->CheckPermissions( - application_id_, kHmiLevelFull, "Alert", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelFull, + "Alert", + input_params, + output); // Check RPC is allowed EXPECT_EQ(::policy::kRpcAllowed, output.hmi_level_permitted); // Check list of parameters empty @@ -344,21 +357,22 @@ TEST_F(PolicyManagerImplTest2, TEST_F(PolicyManagerImplTest2, CheckPermissions_NoParametersInPT_CheckRpcsInDifferentLevels) { + EXPECT_CALL(listener_, GetDevicesIds(application_id_)) + .WillRepeatedly(Return(transport_manager::DeviceList())); // Arrange AddSetDeviceData(); LoadPTUFromJsonFile("json/sdl_update_pt_send_location.json"); - // Will be called each time permissions are checked - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(application_id_)) - .Times(4) - .WillRepeatedly(Return(device_id_1_)); - // Check RPC in each level ::policy::RPCParams input_params; ::policy::CheckPermissionResult output; // Rpc in FULL level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelFull, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelFull, + "SendLocation", + input_params, + output); // Check RPC is allowed EXPECT_EQ(::policy::kRpcAllowed, output.hmi_level_permitted); ASSERT_TRUE(output.list_of_allowed_params.empty()); @@ -367,8 +381,12 @@ TEST_F(PolicyManagerImplTest2, ResetOutputList(output); // Rpc in LIMITED level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelLimited, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelLimited, + "SendLocation", + input_params, + output); // Check RPC is allowed EXPECT_EQ(::policy::kRpcAllowed, output.hmi_level_permitted); ASSERT_TRUE(output.list_of_allowed_params.empty()); @@ -376,7 +394,8 @@ TEST_F(PolicyManagerImplTest2, ResetOutputList(output); // Rpc in BACKGROUND level - policy_manager_->CheckPermissions(application_id_, + policy_manager_->CheckPermissions(device_id_1_, + application_id_, kHmiLevelBackground, "SendLocation", input_params, @@ -388,8 +407,12 @@ TEST_F(PolicyManagerImplTest2, ResetOutputList(output); // Rpc in NONE level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelNone, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelNone, + "SendLocation", + input_params, + output); // Check RPC is disallowed EXPECT_EQ(::policy::kRpcDisallowed, output.hmi_level_permitted); // Check list of parameters is empty @@ -399,24 +422,25 @@ TEST_F(PolicyManagerImplTest2, TEST_F( PolicyManagerImplTest2, CheckPermissions_ParamsNotAllowedInPT_AddAppWithAllParams_CheckRpcsInDiffLvls) { + EXPECT_CALL(listener_, GetDevicesIds(application_id_)) + .WillRepeatedly(Return(transport_manager::DeviceList())); // Arrange AddSetDeviceData(); // File have empty parameters, so they are forbidden LoadPTUFromJsonFile("json/sdl_update_pt_send_location_no_params.json"); - // Will be called each time permissions are checked - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(application_id_)) - .Times(4) - .WillRepeatedly(Return(device_id_1_)); - // Check RPC in each level ::policy::RPCParams input_params; InsertRpcParametersInList(input_params); ::policy::CheckPermissionResult output; // Rpc in FULL level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelFull, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelFull, + "SendLocation", + input_params, + output); // Group which has RPC does not require user consent, so its auto-allowed for // user. Since RPC 'parameters' section is present, but empty, that means @@ -431,8 +455,12 @@ TEST_F( ResetOutputList(output); // Rpc in LIMITED level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelLimited, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelLimited, + "SendLocation", + input_params, + output); EXPECT_EQ(::policy::kRpcDisallowed, output.hmi_level_permitted); @@ -443,7 +471,8 @@ TEST_F( ResetOutputList(output); // Rpc in BACKGROUND level - policy_manager_->CheckPermissions(application_id_, + policy_manager_->CheckPermissions(device_id_1_, + application_id_, kHmiLevelBackground, "SendLocation", input_params, @@ -459,8 +488,12 @@ TEST_F( ResetOutputList(output); // Rpc in NONE level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelNone, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelNone, + "SendLocation", + input_params, + output); EXPECT_EQ(::policy::kRpcDisallowed, output.hmi_level_permitted); @@ -472,6 +505,8 @@ TEST_F( TEST_F(PolicyManagerImplTest2, CheckPermissions_SomeParamsAllowedInPT_CheckRpcsInDiffLvls) { + EXPECT_CALL(listener_, GetDevicesIds(application_id_)) + .WillRepeatedly(Return(transport_manager::DeviceList())); // Arrange AddSetDeviceData(); @@ -479,19 +514,18 @@ TEST_F(PolicyManagerImplTest2, //"locationDescription", "phoneNumber" are allowed LoadPTUFromJsonFile("json/sdl_update_pt_send_location_some_params.json"); - // Will be called each time permissions are checked - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(application_id_)) - .Times(4) - .WillRepeatedly(Return(device_id_1_)); - // Check RPC in each level ::policy::RPCParams input_params; InsertRpcParametersInList(input_params); ::policy::CheckPermissionResult output; // Rpc in FULL level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelFull, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelFull, + "SendLocation", + input_params, + output); // Check RPC is allowed EXPECT_EQ(::policy::kRpcAllowed, output.hmi_level_permitted); @@ -520,8 +554,12 @@ TEST_F(PolicyManagerImplTest2, output.list_of_undefined_params.clear(); // Rpc in LIMITED level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelLimited, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelLimited, + "SendLocation", + input_params, + output); // Check RPC is allowed EXPECT_EQ(::policy::kRpcAllowed, output.hmi_level_permitted); @@ -539,7 +577,8 @@ TEST_F(PolicyManagerImplTest2, ResetOutputList(output); // Rpc in BACKGROUND level - policy_manager_->CheckPermissions(application_id_, + policy_manager_->CheckPermissions(device_id_1_, + application_id_, kHmiLevelBackground, "SendLocation", input_params, @@ -559,8 +598,12 @@ TEST_F(PolicyManagerImplTest2, ResetOutputList(output); // Rpc in NONE level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelNone, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelNone, + "SendLocation", + input_params, + output); // Check RPC is disallowed EXPECT_EQ(::policy::kRpcDisallowed, output.hmi_level_permitted); // Check lists of parameters are empty @@ -585,10 +628,12 @@ TEST_F(PolicyManagerImplTest2, GetCorrectStatus_PTUSuccessful) { CreateLocalPT(preloaded_pt_filename_); // Check EXPECT_EQ("UP_TO_DATE", policy_manager_->GetPolicyTableStatus()); + EXPECT_CALL(listener_, GetDevicesIds(application_id_)) + .WillRepeatedly(Return(transport_manager::DeviceList())); // Adding changes PT status - policy_manager_->AddApplication(application_id_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, application_id_, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_EQ("UP_TO_DATE", policy_manager_->GetPolicyTableStatus()); // Before load PT we should send notification about start updating policy_manager_->OnUpdateStarted(); @@ -613,6 +658,8 @@ TEST_F(PolicyManagerImplTest2, TEST_F(PolicyManagerImplTest2, CheckPermissions_DiffParamsAllowedInGroups_CheckRpcsInDiffLvls) { + EXPECT_CALL(listener_, GetDevicesIds(application_id_)) + .WillRepeatedly(Return(transport_manager::DeviceList())); // Arrange AddSetDeviceData(); // Load Json to cache @@ -621,19 +668,18 @@ TEST_F(PolicyManagerImplTest2, // Allowed both groups of parameters LoadPTUFromJsonFile("json/sdl_update_pt_2_groups_have_params.json"); - // Will be called each time permissions are checked - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(application_id_)) - .Times(4) - .WillRepeatedly(Return(device_id_1_)); - // Check RPC in each level ::policy::RPCParams input_params; InsertRpcParametersInList(input_params); ::policy::CheckPermissionResult output; // Rpc in FULL level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelFull, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelFull, + "SendLocation", + input_params, + output); // Check RPC is allowed EXPECT_EQ(::policy::kRpcAllowed, output.hmi_level_permitted); // Check list of allowed parameters is not empty @@ -652,8 +698,12 @@ TEST_F(PolicyManagerImplTest2, ResetOutputList(output); // Rpc in LIMITED level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelLimited, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelLimited, + "SendLocation", + input_params, + output); // Check RPC is allowed EXPECT_EQ(::policy::kRpcAllowed, output.hmi_level_permitted); // Check list of allowed parameters is not empty @@ -672,7 +722,8 @@ TEST_F(PolicyManagerImplTest2, ResetOutputList(output); // Rpc in BACKGROUND level - policy_manager_->CheckPermissions(application_id_, + policy_manager_->CheckPermissions(device_id_1_, + application_id_, kHmiLevelBackground, "SendLocation", input_params, @@ -696,8 +747,12 @@ TEST_F(PolicyManagerImplTest2, ResetOutputList(output); // Rpc in NONE level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelNone, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelNone, + "SendLocation", + input_params, + output); // Check RPC is disallowed EXPECT_EQ(::policy::kRpcDisallowed, output.hmi_level_permitted); // Check lists of parameters are empty @@ -726,9 +781,12 @@ TEST_F(PolicyManagerImplTest2, 2, "Bluetooth")); + EXPECT_CALL(listener_, GetDevicesIds(application_id_)) + .WillRepeatedly(Return(transport_manager::DeviceList())); // Add app from consented device. App will be assigned with default policies - policy_manager_->AddApplication(application_id_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->SetUserConsentForDevice(device_id_1_, true); + policy_manager_->AddApplication( + device_id_1_, application_id_, HmiTypes(policy_table::AHT_DEFAULT)); std::ifstream ifile("json/sdl_update_pt_2_groups_no_params_in1.json"); Json::Reader reader; @@ -743,19 +801,18 @@ TEST_F(PolicyManagerImplTest2, EXPECT_TRUE(policy_manager_->LoadPT(kFilePtUpdateJson, msg)); EXPECT_FALSE(cache->IsPTPreloaded()); - // Will be called each time permissions are checked - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(application_id_)) - .Times(4) - .WillRepeatedly(Return(device_id_1_)); - // Check RPC in each level ::policy::RPCParams input_params; InsertRpcParametersInList(input_params); ::policy::CheckPermissionResult output; // Rpc in FULL level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelFull, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelFull, + "SendLocation", + input_params, + output); EXPECT_EQ(::policy::kRpcAllowed, output.hmi_level_permitted); EXPECT_TRUE(output.list_of_undefined_params.empty()); @@ -763,8 +820,12 @@ TEST_F(PolicyManagerImplTest2, ResetOutputList(output); // Rpc in LIMITED level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelLimited, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelLimited, + "SendLocation", + input_params, + output); EXPECT_EQ(::policy::kRpcAllowed, output.hmi_level_permitted); EXPECT_TRUE(output.list_of_undefined_params.empty()); @@ -772,7 +833,8 @@ TEST_F(PolicyManagerImplTest2, ResetOutputList(output); // Rpc in BACKGROUND level - policy_manager_->CheckPermissions(application_id_, + policy_manager_->CheckPermissions(device_id_1_, + application_id_, kHmiLevelBackground, "SendLocation", input_params, @@ -785,8 +847,12 @@ TEST_F(PolicyManagerImplTest2, ResetOutputList(output); // Rpc in NONE level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelNone, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelNone, + "SendLocation", + input_params, + output); EXPECT_EQ(::policy::kRpcDisallowed, output.hmi_level_permitted); EXPECT_TRUE(output.list_of_allowed_params.empty()); @@ -813,9 +879,12 @@ TEST_F(PolicyManagerImplTest2, 2, "Bluetooth")); + EXPECT_CALL(listener_, GetDevicesIds(application_id_)) + .WillRepeatedly(Return(transport_manager::DeviceList())); // Add app from consented device. App will be assigned with default policies - policy_manager_->AddApplication(application_id_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->SetUserConsentForDevice(device_id_1_, true); + policy_manager_->AddApplication( + device_id_1_, application_id_, HmiTypes(policy_table::AHT_DEFAULT)); std::ifstream ifile( "json/sdl_update_pt_2_groups_no_params_in1_omitted_in2.json"); @@ -831,19 +900,18 @@ TEST_F(PolicyManagerImplTest2, EXPECT_TRUE(policy_manager_->LoadPT(kFilePtUpdateJson, msg)); EXPECT_FALSE(cache->IsPTPreloaded()); - // Will be called each time permissions are checked - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(application_id_)) - .Times(4) - .WillRepeatedly(Return(device_id_1_)); - // Check RPC in each level ::policy::RPCParams input_params; InsertRpcParametersInList(input_params); ::policy::CheckPermissionResult output; // Rpc in FULL level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelFull, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelFull, + "SendLocation", + input_params, + output); EXPECT_EQ(::policy::kRpcAllowed, output.hmi_level_permitted); EXPECT_TRUE(output.list_of_undefined_params.empty()); @@ -851,15 +919,20 @@ TEST_F(PolicyManagerImplTest2, ResetOutputList(output); // Rpc in LIMITED level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelLimited, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelLimited, + "SendLocation", + input_params, + output); EXPECT_EQ(::policy::kRpcAllowed, output.hmi_level_permitted); EXPECT_TRUE(output.list_of_undefined_params.empty()); EXPECT_EQ(10u, output.list_of_allowed_params.size()); ResetOutputList(output); // Rpc in BACKGROUND level - policy_manager_->CheckPermissions(application_id_, + policy_manager_->CheckPermissions(device_id_1_, + application_id_, kHmiLevelBackground, "SendLocation", input_params, @@ -871,8 +944,12 @@ TEST_F(PolicyManagerImplTest2, ResetOutputList(output); // Rpc in NONE level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelNone, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelNone, + "SendLocation", + input_params, + output); EXPECT_EQ(::policy::kRpcDisallowed, output.hmi_level_permitted); EXPECT_TRUE(output.list_of_allowed_params.empty()); EXPECT_TRUE(output.list_of_disallowed_params.empty()); @@ -917,8 +994,8 @@ TEST_F( GetPTU(kValidSdlPtUpdateJson); EXPECT_EQ("UP_TO_DATE", policy_manager_->GetPolicyTableStatus()); // Try to add existing app - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); // Check no update required EXPECT_EQ("UP_TO_DATE", policy_manager_->GetPolicyTableStatus()); } @@ -939,14 +1016,14 @@ TEST_F(PolicyManagerImplTest2, GetPTU(kValidSdlPtUpdateJson); EXPECT_EQ("UP_TO_DATE", policy_manager_->GetPolicyTableStatus()); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_2_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_EQ("UP_TO_DATE", policy_manager_->GetPolicyTableStatus()); ::policy::Counters counter = ::policy::Counters::DAYS_AFTER_EPOCH; // Set PT was updated 10 days ago (limit is 30 days for now) // So no limit exceeded policy_manager_->PTUpdatedAt(counter, days - 10); - policy_manager_->OnAppRegisteredOnMobile(app_id_2_); + policy_manager_->OnAppRegisteredOnMobile(device_id_2_, app_id_2_); EXPECT_EQ("UP_TO_DATE", policy_manager_->GetPolicyTableStatus()); } @@ -959,13 +1036,13 @@ TEST_F(PolicyManagerImplTest2, GetPTU(kValidSdlPtUpdateJson); EXPECT_EQ("UP_TO_DATE", policy_manager_->GetPolicyTableStatus()); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_2_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_EQ("UP_TO_DATE", policy_manager_->GetPolicyTableStatus()); ::policy::Counters counter = ::policy::Counters::DAYS_AFTER_EPOCH; // Set PT was updated 50 days ago (limit is 30 days for now) policy_manager_->PTUpdatedAt(counter, days - 50); - policy_manager_->OnAppRegisteredOnMobile(app_id_2_); + policy_manager_->OnAppRegisteredOnMobile(device_id_2_, app_id_2_); EXPECT_EQ("UPDATE_NEEDED", policy_manager_->GetPolicyTableStatus()); } @@ -979,8 +1056,8 @@ TEST_F( GetPTU(kValidSdlPtUpdateJson); EXPECT_EQ("UP_TO_DATE", policy_manager_->GetPolicyTableStatus()); // Try to add existing app - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_2_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_EQ("UP_TO_DATE", policy_manager_->GetPolicyTableStatus()); ::policy::Counters counter = ::policy::Counters::DAYS_AFTER_EPOCH; // Set PT was updated 10 days ago (limit is 30 days for now) @@ -993,7 +1070,7 @@ TEST_F( for (int i = 0; i < ign_cycles; ++i) { policy_manager_->IncrementIgnitionCycles(); } - policy_manager_->OnAppRegisteredOnMobile(app_id_2_); + policy_manager_->OnAppRegisteredOnMobile(device_id_2_, app_id_2_); // Check update required EXPECT_EQ("UPDATE_NEEDED", policy_manager_->GetPolicyTableStatus()); } @@ -1022,10 +1099,10 @@ TEST_F(PolicyManagerImplTest2, ->SetUserPermissionsForDevice( device_id_2_, consented_groups, disallowed_groups); policy_manager_->SetUserConsentForDevice(device_id_2_, true); - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_2_)) - .WillRepeatedly(Return(device_id_2_)); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener_, GetDevicesIds(app_id_2_)) + .WillRepeatedly(Return(transport_manager::DeviceList())); + policy_manager_->AddApplication( + device_id_2_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); GetPTU(kValidSdlPtUpdateJson); ::policy::PermissionConsent perm_consent; @@ -1045,7 +1122,8 @@ TEST_F(PolicyManagerImplTest2, policy_manager_->SetUserConsentForApp(perm_consent, policy::PolicyManager::kSilentMode); - policy_manager_->SendNotificationOnPermissionsUpdated(app_id_2_); + policy_manager_->SendNotificationOnPermissionsUpdated(device_id_2_, + app_id_2_); std::vector< ::policy::FunctionalGroupPermission> actual_groups_permissions; std::vector< ::policy::FunctionalGroupPermission>::iterator it; policy_manager_->GetUserConsentForApp( @@ -1069,8 +1147,10 @@ TEST_F(PolicyManagerImplTest2, CanAppKeepContext_SetPoliciesForAppUpdated_ExpectAppCanKeepContext) { // Arrange CreateLocalPT(preloaded_pt_filename_); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener_, GetDevicesIds(app_id_2_)) + .WillRepeatedly(Return(transport_manager::DeviceList())); + policy_manager_->AddApplication( + device_id_2_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); GetPTU(kValidSdlPtUpdateJson); // Check keep context in updated policies for app EXPECT_TRUE(policy_manager_->CanAppKeepContext(app_id_2_)); @@ -1080,8 +1160,10 @@ TEST_F(PolicyManagerImplTest2, CanAppStealFocus_SetPoliciesForAppUpdated_ExpectAppCanStealFocus) { // Arrange CreateLocalPT(preloaded_pt_filename_); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener_, GetDevicesIds(app_id_2_)) + .WillRepeatedly(Return(transport_manager::DeviceList())); + policy_manager_->AddApplication( + device_id_2_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); GetPTU(kValidSdlPtUpdateJson); // Check keep context in updated policies for app EXPECT_TRUE(policy_manager_->CanAppKeepContext(app_id_2_)); @@ -1130,10 +1212,10 @@ TEST_F( ->SetUserPermissionsForDevice( device_id_2_, consented_groups, disallowed_groups); policy_manager_->SetUserConsentForDevice(device_id_2_, true); - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_2_)) - .WillRepeatedly(Return(device_id_2_)); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener_, GetDevicesIds(app_id_2_)) + .WillRepeatedly(Return(transport_manager::DeviceList(1, device_id_2_))); + policy_manager_->AddApplication( + device_id_2_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); GetPTU(kValidSdlPtUpdateJson); ::policy::PermissionConsent perm_consent; @@ -1153,7 +1235,8 @@ TEST_F( policy_manager_->SetUserConsentForApp(perm_consent, policy::PolicyManager::kSilentMode); - policy_manager_->SendNotificationOnPermissionsUpdated(app_id_2_); + policy_manager_->SendNotificationOnPermissionsUpdated(device_id_2_, + app_id_2_); std::vector< ::policy::FunctionalGroupPermission> actual_groups_permissions; std::vector< ::policy::FunctionalGroupPermission>::iterator it; policy_manager_->GetPermissionsForApp( @@ -1177,19 +1260,23 @@ TEST_F( PolicyManagerImplTest2, GetAppRequestTypes_AddApp_UpdateAppPolicies_ExpectReceivedRequestTypesCorrect) { // Arrange + const transport_manager::DeviceHandle handle = 1; CreateLocalPT(preloaded_pt_filename_); - - policy_manager_->AddApplication(app_id_3_, - HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener_, GetDevicesIds(app_id_3_)) + .WillRepeatedly(Return(transport_manager::DeviceList(1, device_id_1_))); + EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(handle, app_id_3_)) + .WillRepeatedly(Return(device_id_1_)); + policy_manager_->AddApplication( + device_id_1_, app_id_3_, HmiTypes(policy_table::AHT_DEFAULT)); ::policy::StringArray app_requests = - policy_manager_->GetAppRequestTypes(app_id_3_); + policy_manager_->GetAppRequestTypes(handle, app_id_3_); EXPECT_EQ(1u, app_requests.size()); Json::Value root = GetPTU(kPtuRequestTypeJson); Json::Value request_Types = Json::Value(Json::arrayValue); request_Types = root["policy_table"]["app_policies"][app_id_3_]["RequestType"]; - app_requests = policy_manager_->GetAppRequestTypes(app_id_3_); + app_requests = policy_manager_->GetAppRequestTypes(handle, app_id_3_); EXPECT_EQ(request_Types.size(), app_requests.size()); // Check nicknames match for (uint32_t i = 0; i < request_Types.size(); ++i) { @@ -1213,9 +1300,11 @@ TEST_F( rpc::ValidationReport report("policy_table"); pt->ReportErrors(&report); } + EXPECT_CALL(listener_, GetDevicesIds(app_id_2_)) + .WillRepeatedly(Return(transport_manager::DeviceList())); // Add new app - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_2_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); uint32_t result = policy_manager_->HeartBeatTimeout(app_id_2_); // By default hertbeat timeout is 0 EXPECT_EQ(0u, result); @@ -1261,10 +1350,10 @@ TEST_F(PolicyManagerImplTest2, ->SetUserPermissionsForDevice( device_id_2_, consented_groups, disallowed_groups); policy_manager_->SetUserConsentForDevice(device_id_2_, true); - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_2_)) - .WillRepeatedly(Return(device_id_2_)); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener_, GetDevicesIds(app_id_2_)) + .WillRepeatedly(Return(transport_manager::DeviceList(1, device_id_2_))); + policy_manager_->AddApplication( + device_id_2_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); GetPTU(kValidSdlPtUpdateJson); ::policy::PermissionConsent perm_consent; @@ -1284,7 +1373,8 @@ TEST_F(PolicyManagerImplTest2, policy_manager_->SetUserConsentForApp(perm_consent, policy::PolicyManager::kSilentMode); - policy_manager_->SendNotificationOnPermissionsUpdated(app_id_2_); + policy_manager_->SendNotificationOnPermissionsUpdated(device_id_2_, + app_id_2_); std::vector< ::policy::FunctionalGroupPermission> actual_groups_permissions; std::vector< ::policy::FunctionalGroupPermission>::iterator it; policy_manager_->GetPermissionsForApp( @@ -1330,20 +1420,22 @@ TEST_F(PolicyManagerImplTest2, SingleInvalidRequestTypeInPTU_ExpectReplaceWithDefaultValues) { // Arrange const std::string section_name = app_id_2_; + const transport_manager::DeviceHandle handle = 1; // Arrange CreateLocalPT(preloaded_pt_filename_); // Setting device consent to 'true' in order to have defult application // permissions, request type etc. - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_2_)) + EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(handle, app_id_2_)) .WillRepeatedly(Return(device_id_1_)); policy_manager_->SetUserConsentForDevice(device_id_1_, true); - + EXPECT_CALL(listener_, GetDevicesIds(section_name)) + .WillRepeatedly(Return(transport_manager::DeviceList(1, device_id_1_))); // Add app - policy_manager_->AddApplication(section_name, - HmiTypes(policy_table::AHT_DEFAULT)); - EXPECT_CALL(listener_, OnPendingPermissionChange(section_name)); + policy_manager_->AddApplication( + device_id_1_, section_name, HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener_, OnPendingPermissionChange(device_id_1_, section_name)); // PTU has single invalid RequestTypes, which must be dropped and replaced // with default RT @@ -1351,18 +1443,18 @@ TEST_F(PolicyManagerImplTest2, // Get RequestTypes from section of app policies after PT update ::policy::StringArray app_request_types_after = - policy_manager_->GetAppRequestTypes(section_name); + policy_manager_->GetAppRequestTypes(handle, section_name); - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(kDefaultId)) + EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(handle, kDefaultId)) .WillOnce(Return(device_id_1_)); ::policy::StringArray default_request_types_after = - policy_manager_->GetAppRequestTypes(kDefaultId); + policy_manager_->GetAppRequestTypes(handle, kDefaultId); // Check sizes of Request types of PT and PTU EXPECT_EQ(4u, app_request_types_after.size()); ::policy::AppPermissions permissions = - policy_manager_->GetAppPermissionsChanges(section_name); + policy_manager_->GetAppPermissionsChanges(device_id_1_, section_name); EXPECT_TRUE(permissions.requestTypeChanged); policy_table::RequestType temp_res1; diff --git a/src/components/policy/policy_external/test/policy_manager_impl_snapshot_test.cc b/src/components/policy/policy_external/test/policy_manager_impl_snapshot_test.cc index 3c6377cf5f..ddb5474df3 100644 --- a/src/components/policy/policy_external/test/policy_manager_impl_snapshot_test.cc +++ b/src/components/policy/policy_external/test/policy_manager_impl_snapshot_test.cc @@ -259,25 +259,30 @@ TEST_F( PolicyManagerImplTest2, AddValidRequestTypeToPT_GetNewAppWithSpecificPoliciesViaPTU_ExpectRTAdded) { const std::string& app_id = application_id_; + const transport_manager::DeviceHandle handle = 1; // Arrange CreateLocalPT(preloaded_pt_filename_); + EXPECT_CALL(listener_, GetDevicesIds(app_id)) + .WillRepeatedly(Return(transport_manager::DeviceList(1, device_id_1_))); // Add app - policy_manager_->AddApplication(app_id, HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id, HmiTypes(policy_table::AHT_DEFAULT)); // Check app gets RequestTypes from pre_DataConsent of app_policies // section - pt_request_types_ = policy_manager_->GetAppRequestTypes(app_id); + pt_request_types_ = policy_manager_->GetAppRequestTypes(handle, app_id); // Only single item as in pre_DataConsent in preloaded PT EXPECT_EQ(1u, pt_request_types_.size()); - EXPECT_CALL(listener_, OnPendingPermissionChange(app_id)).Times(1); + EXPECT_CALL(listener_, OnPendingPermissionChange(device_id_1_, app_id)) + .Times(1); // PTU has RequestTypes as [] - means 'all allowed' Json::Value root = GetPTU("json/PTU2.json"); // Setting device consent to 'true' in order to have appropriate application // permissions, request type etc. - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(application_id_)) + EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(handle, app_id)) .WillRepeatedly(Return(device_id_1_)); policy_manager_->SetUserConsentForDevice(device_id_1_, true); @@ -288,13 +293,13 @@ TEST_F( pt_request_types_.clear(); // Get RequestTypes from section of app policies after PT update - pt_request_types_ = policy_manager_->GetAppRequestTypes(app_id); + pt_request_types_ = policy_manager_->GetAppRequestTypes(handle, app_id); // Check sizes of Request types of PT and PTU ASSERT_EQ(ptu_request_types_size_, pt_request_types_.size()); ::policy::AppPermissions permissions = - policy_manager_->GetAppPermissionsChanges(app_id); + policy_manager_->GetAppPermissionsChanges(device_id_1_, app_id); EXPECT_TRUE(permissions.requestTypeChanged); ::policy::StringArray result; 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 47b3959aee..93ed44618c 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 @@ -341,8 +341,10 @@ TEST_F(PolicyManagerImplTest, MarkUnpairedDevice) { TEST_F(PolicyManagerImplTest2, GetCurrentDeviceId) { // Arrange - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_2_)).Times(1); - EXPECT_EQ("", policy_manager_->GetCurrentDeviceId(app_id_2_)); + const transport_manager::DeviceHandle handle = 1; + EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(handle, app_id_2_)) + .Times(1); + EXPECT_EQ("", policy_manager_->GetCurrentDeviceId(handle, app_id_2_)); } TEST_F(PolicyManagerImplTest2, UpdateApplication_AppServices) { @@ -424,7 +426,7 @@ TEST_F( status.insert(ExternalConsentStatusItem(type_2_, id_2_, kStatusOn)); status.insert(ExternalConsentStatusItem(type_3_, id_3_, kStatusOn)); - EXPECT_CALL(listener_, OnPermissionsUpdated(app_id_1_, _)); + EXPECT_CALL(listener_, OnPermissionsUpdated(device_id_1_, app_id_1_, _)); EXPECT_TRUE(policy_manager_->SetExternalConsentStatus(status)); @@ -473,7 +475,7 @@ TEST_F( status.insert(ExternalConsentStatusItem(type_2_, id_2_, kStatusOn)); status.insert(ExternalConsentStatusItem(type_3_, id_3_, kStatusOn)); - EXPECT_CALL(listener_, OnPermissionsUpdated(app_id_1_, _)); + EXPECT_CALL(listener_, OnPermissionsUpdated(device_id_1_, app_id_1_, _)); EXPECT_TRUE(policy_manager_->SetExternalConsentStatus(status)); @@ -529,12 +531,12 @@ TEST_F( EXPECT_FALSE(pt->policy_table.device_data->end() != updated_device_data); - EXPECT_CALL(listener_, OnPermissionsUpdated(app_id_1_, _)); + EXPECT_CALL(listener_, OnPermissionsUpdated(device_id_1_, app_id_1_, _)); EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_1_)) .WillRepeatedly(Return(device_id_1_)); - policy_manager_->AddApplication(app_id_1_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_1_, HmiTypes(policy_table::AHT_DEFAULT)); // Check ExternalConsent consents for application updated_device_data = pt->policy_table.device_data->find(device_id_1_); @@ -597,12 +599,12 @@ TEST_F( EXPECT_FALSE(pt->policy_table.device_data->end() != updated_device_data); - EXPECT_CALL(listener_, OnPermissionsUpdated(app_id_1_, _)); + EXPECT_CALL(listener_, OnPermissionsUpdated(device_id_1_, app_id_1_, _)); EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_1_)) .WillRepeatedly(Return(device_id_1_)); - policy_manager_->AddApplication(app_id_1_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_1_, HmiTypes(policy_table::AHT_DEFAULT)); // Checking ExternalConsent consents after setting new ExternalConsent status ApplicationPolicies::const_iterator app_parameters = @@ -652,15 +654,12 @@ TEST_F( EXPECT_TRUE(policy_manager_->GetCache()->ApplyUpdate(t)); - EXPECT_CALL(listener_, OnPermissionsUpdated(app_id_1_, _)); - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_1_)) - .WillOnce(Return(device_id_1_)) // registered - .WillOnce(Return("")) // not registered - .WillRepeatedly(Return(device_id_1_)); // again registered - + EXPECT_CALL(listener_, OnPermissionsUpdated(device_id_1_, app_id_1_, _)); + EXPECT_CALL(listener_, GetDevicesIds(app_id_1_)) + .WillRepeatedly(Return(transport_manager::DeviceList())); // First register w/o app having groups to consent - policy_manager_->AddApplication(app_id_1_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_1_, HmiTypes(policy_table::AHT_DEFAULT)); // Act std::shared_ptr pt = @@ -691,8 +690,8 @@ TEST_F( EXPECT_TRUE(policy_manager_->GetCache()->ApplyUpdate(t)); // Second time register w/ app having groups to consent - policy_manager_->AddApplication(app_id_1_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_1_, HmiTypes(policy_table::AHT_DEFAULT)); // Checking ExternalConsent consents after setting new ExternalConsent status ApplicationPolicies::const_iterator app_parameters = @@ -742,15 +741,11 @@ TEST_F( EXPECT_TRUE(policy_manager_->GetCache()->ApplyUpdate(t)); - EXPECT_CALL(listener_, OnPermissionsUpdated(app_id_1_, _)); - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_1_)) - .WillOnce(Return(device_id_1_)) // registered - .WillOnce(Return("")) // not registered - .WillRepeatedly(Return(device_id_1_)); // registered again + EXPECT_CALL(listener_, OnPermissionsUpdated(device_id_1_, app_id_1_, _)); // First register w/o app having groups to consent - policy_manager_->AddApplication(app_id_1_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_1_, HmiTypes(policy_table::AHT_DEFAULT)); // Act std::shared_ptr pt = @@ -781,8 +776,8 @@ TEST_F( EXPECT_TRUE(policy_manager_->GetCache()->ApplyUpdate(t)); // Second time register w/ app having groups to consent - policy_manager_->AddApplication(app_id_1_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_1_, HmiTypes(policy_table::AHT_DEFAULT)); // Check ExternalConsent consents for application updated_device_data = pt->policy_table.device_data->find(device_id_1_); @@ -840,12 +835,11 @@ TEST_F(PolicyManagerImplTest_ExternalConsent, EXPECT_TRUE(policy_manager_->SetExternalConsentStatus(status)); - EXPECT_CALL(listener_, OnPermissionsUpdated(app_id_1_, _)); - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_1_)) - .WillRepeatedly(Return(device_id_1_)); - - policy_manager_->AddApplication(app_id_1_, - HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener_, OnPermissionsUpdated(device_id_1_, app_id_1_, _)); + EXPECT_CALL(listener_, GetDevicesIds(app_id_1_)) + .WillRepeatedly(Return(transport_manager::DeviceList())); + policy_manager_->AddApplication( + device_id_1_, app_id_1_, HmiTypes(policy_table::AHT_DEFAULT)); std::shared_ptr pt = policy_manager_->GetCache()->GetPT(); @@ -965,12 +959,11 @@ TEST_F(PolicyManagerImplTest_ExternalConsent, EXPECT_TRUE(policy_manager_->SetExternalConsentStatus(status)); - EXPECT_CALL(listener_, OnPermissionsUpdated(app_id_1_, _)); - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_1_)) - .WillRepeatedly(Return(device_id_1_)); - - policy_manager_->AddApplication(app_id_1_, - HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener_, OnPermissionsUpdated(device_id_1_, app_id_1_, _)); + EXPECT_CALL(listener_, GetDevicesIds(app_id_1_)) + .WillRepeatedly(Return(transport_manager::DeviceList())); + policy_manager_->AddApplication( + device_id_1_, app_id_1_, HmiTypes(policy_table::AHT_DEFAULT)); std::shared_ptr pt = policy_manager_->GetCache()->GetPT(); @@ -1099,7 +1092,7 @@ TEST_F( status_on.insert(ExternalConsentStatusItem(type_2_, id_2_, kStatusOn)); status_on.insert(ExternalConsentStatusItem(type_3_, id_3_, kStatusOn)); - EXPECT_CALL(listener_, OnPermissionsUpdated(app_id_1_, _)); + EXPECT_CALL(listener_, OnPermissionsUpdated(device_id_1_, app_id_1_, _)); EXPECT_TRUE(policy_manager_->SetExternalConsentStatus(status_on)); @@ -1135,7 +1128,8 @@ TEST_F( status_off.insert(ExternalConsentStatusItem(type_2_, id_2_, kStatusOff)); status_off.insert(ExternalConsentStatusItem(type_3_, id_3_, kStatusOff)); - EXPECT_CALL(listener_, OnPermissionsUpdated(app_id_1_, _)).Times(1); + EXPECT_CALL(listener_, OnPermissionsUpdated(device_id_1_, app_id_1_, _)) + .Times(1); EXPECT_TRUE(policy_manager_->SetExternalConsentStatus(status_off)); 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 82d87cd7ba..8636c29f0d 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 @@ -307,7 +307,10 @@ void PolicyManagerImplTest2::AddRTtoPT(const std::string& update_file_name, // Arrange CreateLocalPT(preloaded_pt_filename_); // Get RequestTypes from section of preloaded_pt app_policies - pt_request_types_ = policy_manager_->GetAppRequestTypes(section_name); + const transport_manager::DeviceHandle handle = 1; + EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(handle, section_name)) + .WillRepeatedly(Return(device_id_1_)); + pt_request_types_ = policy_manager_->GetAppRequestTypes(handle, section_name); EXPECT_EQ(rt_number, pt_request_types_.size()); Json::Value root = GetPTU(update_file_name); // Get Request Types from JSON (PTU) @@ -316,7 +319,7 @@ void PolicyManagerImplTest2::AddRTtoPT(const std::string& update_file_name, ptu_request_types_size_ = ptu_request_types_.size(); pt_request_types_.clear(); // Get RequestTypes from section of PT app policies after update - pt_request_types_ = policy_manager_->GetAppRequestTypes(section_name); + pt_request_types_ = policy_manager_->GetAppRequestTypes(handle, section_name); // Check number of RT in PTU and PT now are equal ASSERT_EQ(ptu_request_types_size_ - invalid_rt_number, pt_request_types_.size()); @@ -329,12 +332,15 @@ void PolicyManagerImplTest2::AddRTtoAppSectionPT( const uint32_t invalid_rt_number) { // Arrange CreateLocalPT(preloaded_pt_filename_); + const transport_manager::DeviceHandle handle = 1; + EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(handle, section_name)) + .WillRepeatedly(Return(device_id_1_)); // Add app - policy_manager_->AddApplication(section_name, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, section_name, HmiTypes(policy_table::AHT_DEFAULT)); // Check app gets RequestTypes from pre_DataConsent of app_policies // section - pt_request_types_ = policy_manager_->GetAppRequestTypes(section_name); + pt_request_types_ = policy_manager_->GetAppRequestTypes(handle, section_name); EXPECT_EQ(rt_number, pt_request_types_.size()); EXPECT_CALL(listener_, OnPendingPermissionChange(section_name)).Times(1); Json::Value root = GetPTU(update_file_name); @@ -346,13 +352,13 @@ void PolicyManagerImplTest2::AddRTtoAppSectionPT( pt_request_types_.clear(); // Get RequestTypes from section of app policies after PT update - pt_request_types_ = policy_manager_->GetAppRequestTypes(section_name); + pt_request_types_ = policy_manager_->GetAppRequestTypes(handle, section_name); // Check sizes of Request types of PT and PTU ASSERT_EQ(ptu_request_types_size_ - invalid_rt_number, pt_request_types_.size()); ::policy::AppPermissions permissions = - policy_manager_->GetAppPermissionsChanges(section_name); + policy_manager_->GetAppPermissionsChanges(device_id_1_, section_name); EXPECT_TRUE(permissions.requestTypeChanged); } @@ -449,9 +455,13 @@ void PolicyManagerImplTest2:: 2, "Bluetooth")); + EXPECT_CALL(listener_, GetDevicesIds(application_id_)) + .WillRepeatedly(Return(transport_manager::DeviceList())); + // Add app from consented device. App will be assigned with default policies - policy_manager_->AddApplication(application_id_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->SetUserConsentForDevice(device_id_1_, true); + policy_manager_->AddApplication( + device_id_1_, application_id_, HmiTypes(policy_table::AHT_DEFAULT)); // Expect all parameters are allowed std::ifstream ifile(update_file); @@ -467,19 +477,18 @@ void PolicyManagerImplTest2:: EXPECT_TRUE(policy_manager_->LoadPT(kFilePtUpdateJson, msg)); EXPECT_FALSE(cache->IsPTPreloaded()); - // Will be called each time permissions are checked - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(application_id_)) - .Times(4) - .WillRepeatedly(Return(device_id_1_)); - // Check RPC in each level ::policy::RPCParams input_params; InsertRpcParametersInList(input_params); ::policy::CheckPermissionResult output; // Rpc in FULL level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelFull, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelFull, + "SendLocation", + input_params, + output); // Check RPC is allowed EXPECT_EQ(::policy::kRpcAllowed, output.hmi_level_permitted); // Check list of allowed parameters is not empty @@ -489,8 +498,12 @@ void PolicyManagerImplTest2:: ResetOutputList(output); // Rpc in LIMITED level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelLimited, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelLimited, + "SendLocation", + input_params, + output); // Check RPC is allowed EXPECT_EQ(::policy::kRpcAllowed, output.hmi_level_permitted); // Check list of allowed parameters is not empty @@ -500,7 +513,8 @@ void PolicyManagerImplTest2:: ResetOutputList(output); // Rpc in BACKGROUND level - policy_manager_->CheckPermissions(application_id_, + policy_manager_->CheckPermissions(device_id_1_, + application_id_, kHmiLevelBackground, "SendLocation", input_params, @@ -515,8 +529,12 @@ void PolicyManagerImplTest2:: ResetOutputList(output); // Rpc in NONE level - policy_manager_->CheckPermissions( - application_id_, kHmiLevelNone, "SendLocation", input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelNone, + "SendLocation", + input_params, + output); // Check RPC is disallowed EXPECT_EQ(::policy::kRpcDisallowed, output.hmi_level_permitted); // Check lists of parameters are empty @@ -529,8 +547,12 @@ void PolicyManagerImplTest2::CheckRpcPermissions( const std::string& rpc_name, const PermitResult& expected_permission) { ::policy::RPCParams input_params; ::policy::CheckPermissionResult output; - policy_manager_->CheckPermissions( - application_id_, kHmiLevelFull, rpc_name, input_params, output); + policy_manager_->CheckPermissions(device_id_1_, + application_id_, + kHmiLevelFull, + rpc_name, + input_params, + output); EXPECT_EQ(expected_permission, output.hmi_level_permitted); } @@ -541,7 +563,7 @@ void PolicyManagerImplTest2::CheckRpcPermissions( ::policy::RPCParams input_params; ::policy::CheckPermissionResult output; policy_manager_->CheckPermissions( - app_id, kHmiLevelFull, rpc_name, input_params, output); + device_id_1_, app_id, kHmiLevelFull, rpc_name, input_params, output); EXPECT_EQ(out_expected_permission, output.hmi_level_permitted); } @@ -576,8 +598,9 @@ void PolicyManagerImplTest2::AddSetDeviceData() { "Bluetooth")); // Add app from consented device. App will be assigned with default policies - policy_manager_->AddApplication(application_id_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->SetUserConsentForDevice(device_id_1_, true); + policy_manager_->AddApplication( + device_id_1_, application_id_, HmiTypes(policy_table::AHT_DEFAULT)); (policy_manager_->GetCache())->AddDevice(device_id_1_, "Bluetooth"); } diff --git a/src/components/policy/policy_external/test/policy_manager_impl_user_consent_test.cc b/src/components/policy/policy_external/test/policy_manager_impl_user_consent_test.cc index c58ae00ff4..d1e25b770c 100644 --- a/src/components/policy/policy_external/test/policy_manager_impl_user_consent_test.cc +++ b/src/components/policy/policy_external/test/policy_manager_impl_user_consent_test.cc @@ -34,6 +34,7 @@ #include "policy/policy_manager_impl_test_base.h" #include "utils/date_time.h" +#include "utils/macro.h" namespace test { namespace components { @@ -54,8 +55,8 @@ TEST_F( policy_manager_->SetUserConsentForDevice(device_id_1_, true); - policy_manager_->AddApplication(app_id_1_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_1_, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_EQ("UPDATE_NEEDED", policy_manager_->GetPolicyTableStatus()); } @@ -76,13 +77,14 @@ TEST_F( policy_manager_->PTUpdatedAt(DAYS_AFTER_EPOCH, days_after_epoch); policy_manager_->PTUpdatedAt(KILOMETERS, 1000); - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_1_)) + const transport_manager::DeviceHandle handle = 1; + EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(handle, app_id_1_)) .WillRepeatedly(Return(device_id_1_)); policy_manager_->SetUserConsentForDevice(device_id_1_, false); - policy_manager_->AddApplication(app_id_1_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_1_, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_EQ("UP_TO_DATE", policy_manager_->GetPolicyTableStatus()); } @@ -92,10 +94,13 @@ TEST_F( ReactOnUserDevConsentForApp_AddNewApplicationFromDeviceWithoutConsent_ExpectPreDataConsent) { // Arrange CreateLocalPT(preloaded_pt_filename_); - policy_manager_->AddApplication(app_id_1_, - HmiTypes(policy_table::AHT_DEFAULT)); + const transport_manager::DeviceHandle handle = 1; + EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(handle, app_id_1_)) + .WillRepeatedly(Return(device_id_1_)); + policy_manager_->AddApplication( + device_id_1_, app_id_1_, HmiTypes(policy_table::AHT_DEFAULT)); ASSERT_TRUE(policy_manager_->IsPredataPolicy(app_id_1_)); - policy_manager_->ReactOnUserDevConsentForApp(app_id_1_, false); + policy_manager_->ReactOnUserDevConsentForApp(handle, app_id_1_, false); EXPECT_TRUE(policy_manager_->IsPredataPolicy(app_id_1_)); } @@ -106,8 +111,8 @@ TEST_F(PolicyManagerImplTest2, CreateLocalPT(kSdlPreloadedPtJson2); ASSERT_TRUE( (policy_manager_->GetCache())->AddDevice(device_id_2_, "Bluetooth")); - policy_manager_->AddApplication(application_id_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_2_, application_id_, HmiTypes(policy_table::AHT_DEFAULT)); // Expect RPCs from pre_dataConsent group are allowed // Next checks are equal to BaseBeforeDataConsent_APIs.xml checks from task @@ -155,11 +160,11 @@ TEST_F(PolicyManagerImplTest2, TEST_F(PolicyManagerImplTest2, CheckPreDataConsent_GetDefaultHmiLevel_NONE) { // Arrange CreateLocalPT(preloaded_pt_filename_); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); std::string default_hmi; // Default HMI level is NONE - policy_manager_->GetDefaultHmi(app_id_2_, &default_hmi); + policy_manager_->GetDefaultHmi(device_id_1_, app_id_2_, &default_hmi); EXPECT_EQ("NONE", default_hmi); // Default priority level is NONE @@ -173,11 +178,11 @@ TEST_F(PolicyManagerImplTest2, CheckPreDataConsent_GetDefaultHmiLevel_BACKGROUNG) { // Arrange CreateLocalPT(kSdlPreloadedPtJson2); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); std::string default_hmi; // Default HMI level is BACKGROUND - policy_manager_->GetDefaultHmi(app_id_2_, &default_hmi); + policy_manager_->GetDefaultHmi(device_id_1_, app_id_2_, &default_hmi); EXPECT_EQ("BACKGROUND", default_hmi); // Default priority level is EMERGENCY std::string priority1; @@ -191,10 +196,13 @@ TEST_F( // Arrange // RequestTypes for default & preDataConsent are different CreateLocalPT("json/ptu_requestType.json"); - policy_manager_->AddApplication(app_id_1_, - HmiTypes(policy_table::AHT_DEFAULT)); + const transport_manager::DeviceHandle handle = 1; + EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(handle, app_id_1_)) + .WillRepeatedly(Return(device_id_1_)); + policy_manager_->AddApplication( + device_id_1_, app_id_1_, HmiTypes(policy_table::AHT_DEFAULT)); ASSERT_TRUE(policy_manager_->IsPredataPolicy(app_id_1_)); - policy_manager_->ReactOnUserDevConsentForApp(app_id_1_, true); + policy_manager_->ReactOnUserDevConsentForApp(handle, app_id_1_, true); EXPECT_FALSE(policy_manager_->IsPredataPolicy(app_id_1_)); // Expect app_id_1_ has default policy EXPECT_TRUE((policy_manager_->GetCache())->IsDefaultPolicy(app_id_1_)); @@ -206,11 +214,14 @@ TEST_F( // Arrange // RequestTypes for default & preDataConsent are the same CreateLocalPT(kPtu2RequestTypeJson); - policy_manager_->AddApplication(app_id_1_, - HmiTypes(policy_table::AHT_DEFAULT)); + const transport_manager::DeviceHandle handle = 1; + EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(handle, app_id_1_)) + .WillRepeatedly(Return(device_id_1_)); + policy_manager_->AddApplication( + device_id_1_, app_id_1_, HmiTypes(policy_table::AHT_DEFAULT)); ASSERT_TRUE(policy_manager_->IsPredataPolicy(app_id_1_)); EXPECT_CALL(listener_, OnPendingPermissionChange(app_id_1_)).Times(0); - policy_manager_->ReactOnUserDevConsentForApp(app_id_1_, true); + policy_manager_->ReactOnUserDevConsentForApp(handle, app_id_1_, true); EXPECT_FALSE(policy_manager_->IsPredataPolicy(app_id_1_)); EXPECT_TRUE((policy_manager_->GetCache())->IsDefaultPolicy(app_id_1_)); } @@ -299,10 +310,10 @@ TEST_F(PolicyManagerImplTest2, EXPECT_EQ(::policy::DeviceConsent::kDeviceDisallowed, consent); EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_2_)) .WillRepeatedly(Return(device_id_2_)); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_2_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); std::string default_hmi; - policy_manager_->GetDefaultHmi(app_id_2_, &default_hmi); + policy_manager_->GetDefaultHmi(device_id_2_, app_id_2_, &default_hmi); EXPECT_EQ("NONE", default_hmi); } @@ -310,12 +321,12 @@ TEST_F(PolicyManagerImplTest2, GetDefaultHmi_SetDeviceAllowed_ExpectReceivedHmiCorrect) { // Arrange CreateLocalPT(kPtu2RequestTypeJson); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); // Check if app has preData policy EXPECT_TRUE(policy_manager_->IsPredataPolicy(app_id_2_)); std::string default_hmi1; - policy_manager_->GetDefaultHmi(app_id_2_, &default_hmi1); + policy_manager_->GetDefaultHmi(device_id_1_, app_id_2_, &default_hmi1); EXPECT_EQ("NONE", default_hmi1); ASSERT_TRUE( (policy_manager_->GetCache())->AddDevice(device_id_2_, "Bluetooth")); @@ -335,11 +346,11 @@ TEST_F(PolicyManagerImplTest2, EXPECT_EQ(::policy::DeviceConsent::kDeviceAllowed, consent); EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_2_)) .WillRepeatedly(Return(device_id_2_)); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_2_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_TRUE((policy_manager_->GetCache())->IsDefaultPolicy(app_id_2_)); std::string default_hmi2; - policy_manager_->GetDefaultHmi(app_id_2_, &default_hmi2); + policy_manager_->GetDefaultHmi(device_id_2_, app_id_2_, &default_hmi2); EXPECT_EQ("LIMITED", default_hmi2); } @@ -347,8 +358,8 @@ TEST_F(PolicyManagerImplTest2, GetDefaultPriority_SetDeviceAllowed_ExpectReceivedPriorityCorrect) { // Arrange CreateLocalPT(kPtu2RequestTypeJson); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); // Check if app has preData policy EXPECT_TRUE(policy_manager_->IsPredataPolicy(app_id_2_)); std::string priority1; @@ -372,8 +383,8 @@ TEST_F(PolicyManagerImplTest2, EXPECT_EQ(::policy::DeviceConsent::kDeviceAllowed, consent); EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_2_)) .WillRepeatedly(Return(device_id_2_)); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_2_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_TRUE((policy_manager_->GetCache())->IsDefaultPolicy(app_id_2_)); std::string priority2; EXPECT_TRUE(policy_manager_->GetPriority(app_id_2_, &priority2)); @@ -490,8 +501,10 @@ TEST_F(PolicyManagerImplTest2, SetDeviceInfo_ExpectDevInfoAddedToPT) { TEST_F(PolicyManagerImplTest2, GetInitialAppData_ExpectReceivedConsentCorrect) { // Arrange CreateLocalPT(preloaded_pt_filename_); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener_, GetDevicesIds(app_id_2_)) + .WillRepeatedly(Return(transport_manager::DeviceList())); + policy_manager_->AddApplication( + device_id_1_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); ::policy::StringArray app_nicknames; ::policy::StringArray app_hmi_types; policy_manager_->GetInitialAppData(app_id_2_, &app_nicknames, &app_hmi_types); @@ -534,8 +547,8 @@ TEST_F( CanAppKeepContext_AddAppFromUnconsentedDevice_ExpectAppCannotKeepContext) { // Arrange CreateLocalPT(preloaded_pt_filename_); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); // Check if app has preData policy EXPECT_TRUE(policy_manager_->IsPredataPolicy(app_id_2_)); // Check keep context in preData policy @@ -548,8 +561,8 @@ TEST_F(PolicyManagerImplTest2, CreateLocalPT(preloaded_pt_filename_); ASSERT_TRUE( (policy_manager_->GetCache())->AddDevice(device_id_2_, "Bluetooth")); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); ASSERT_TRUE((policy_manager_->GetCache()) ->SetDeviceData(device_id_2_, "hardware IPX", @@ -565,8 +578,8 @@ TEST_F(PolicyManagerImplTest2, EXPECT_EQ(::policy::DeviceConsent::kDeviceAllowed, consent); EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_2_)) .WillRepeatedly(Return(device_id_2_)); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_2_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_TRUE((policy_manager_->GetCache())->IsDefaultPolicy(app_id_2_)); // Check keep context in default policy EXPECT_FALSE(policy_manager_->CanAppKeepContext(app_id_2_)); @@ -576,8 +589,8 @@ TEST_F(PolicyManagerImplTest2, CanAppStealFocus_AddAppFromUnconsentedDevice_ExpectAppCannotStealFocus) { // Arrange CreateLocalPT(preloaded_pt_filename_); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); // Check if app has preData policy EXPECT_TRUE(policy_manager_->IsPredataPolicy(app_id_2_)); // Check keep context in preData policy @@ -590,8 +603,8 @@ TEST_F(PolicyManagerImplTest2, CreateLocalPT(preloaded_pt_filename_); ASSERT_TRUE( (policy_manager_->GetCache())->AddDevice(device_id_2_, "Bluetooth")); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); ASSERT_TRUE((policy_manager_->GetCache()) ->SetDeviceData(device_id_2_, "hardware IPX", @@ -607,8 +620,8 @@ TEST_F(PolicyManagerImplTest2, EXPECT_EQ(::policy::DeviceConsent::kDeviceAllowed, consent); EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_2_)) .WillRepeatedly(Return(device_id_2_)); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_2_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_TRUE((policy_manager_->GetCache())->IsDefaultPolicy(app_id_2_)); // Check keep context in default policy EXPECT_FALSE(policy_manager_->CanAppStealFocus(app_id_2_)); @@ -618,8 +631,8 @@ TEST_F(PolicyManagerImplTest2, IsPredataPolicy_SetAppWIthPredataPolicy_ExpectPredataPolicy) { // Arrange CreateLocalPT(preloaded_pt_filename_); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + policy_manager_->AddApplication( + device_id_1_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); // Check if app has preData policy EXPECT_TRUE(policy_manager_->IsPredataPolicy(app_id_2_)); } @@ -629,18 +642,18 @@ TEST_F( SendNotificationOnPermissionsUpdated_SetDeviceAllowed_ExpectNotificationSent) { // Arrange CreateLocalPT(kPtu2RequestTypeJson); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener_, GetDevicesIds(app_id_2_)).Times(0); + policy_manager_->AddApplication( + device_id_1_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); // Check if app has preData policy EXPECT_TRUE(policy_manager_->IsPredataPolicy(app_id_2_)); std::string default_hmi1; - policy_manager_->GetDefaultHmi(app_id_2_, &default_hmi1); + policy_manager_->GetDefaultHmi(device_id_1_, app_id_2_, &default_hmi1); EXPECT_EQ("NONE", default_hmi1); - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_2_)) - .WillOnce(Return("")); - EXPECT_CALL(listener_, OnPermissionsUpdated(app_id_2_, _, default_hmi1)) + EXPECT_CALL(listener_, OnPermissionsUpdated(device_id_1_, app_id_2_, _)) .Times(0); - policy_manager_->SendNotificationOnPermissionsUpdated(app_id_2_); + policy_manager_->SendNotificationOnPermissionsUpdated(device_id_1_, + app_id_2_); ASSERT_TRUE( (policy_manager_->GetCache())->AddDevice(device_id_2_, "Bluetooth")); @@ -658,16 +671,17 @@ TEST_F( policy_manager_->GetUserConsentForDevice(device_id_2_); // Check EXPECT_EQ(::policy::DeviceConsent::kDeviceAllowed, consent); - EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(app_id_2_)) - .WillRepeatedly(Return(device_id_2_)); - policy_manager_->AddApplication(app_id_2_, - HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener_, GetDevicesIds(app_id_2_)).Times(0); + policy_manager_->AddApplication( + device_id_2_, app_id_2_, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_TRUE((policy_manager_->GetCache())->IsDefaultPolicy(app_id_2_)); std::string default_hmi2; - policy_manager_->GetDefaultHmi(app_id_2_, &default_hmi2); + policy_manager_->GetDefaultHmi(device_id_2_, app_id_2_, &default_hmi2); EXPECT_EQ("LIMITED", default_hmi2); - EXPECT_CALL(listener_, OnPermissionsUpdated(app_id_2_, _, default_hmi2)); - policy_manager_->SendNotificationOnPermissionsUpdated(app_id_2_); + EXPECT_CALL(listener_, + OnPermissionsUpdated(device_id_2_, app_id_2_, _, default_hmi2)); + policy_manager_->SendNotificationOnPermissionsUpdated(device_id_2_, + app_id_2_); } } // namespace policy_test diff --git a/src/components/policy/policy_regular/CMakeLists.txt b/src/components/policy/policy_regular/CMakeLists.txt index 3679b2efea..b7455388e9 100644 --- a/src/components/policy/policy_regular/CMakeLists.txt +++ b/src/components/policy/policy_regular/CMakeLists.txt @@ -38,6 +38,8 @@ include_directories ( ${JSONCPP_INCLUDE_DIRECTORY} ${COMPONENTS_DIR}/utils/include/ ${COMPONENTS_DIR}/config_profile/include + ${COMPONENTS_DIR}/connection_handler/include/ + ${COMPONENTS_DIR}/protocol_handler/include/ ${LOG4CXX_INCLUDE_DIRECTORY} ${BOOST_INCLUDE_DIR} ) 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 39ff0efa7e..48afc16226 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 @@ -40,6 +40,7 @@ #include "json/writer.h" #include "config_profile/profile.h" +#include "connection_handler/connection_handler.h" #include "policy/mock_cache_manager.h" #include "policy/mock_policy_listener.h" #include "policy/mock_policy_settings.h" @@ -177,6 +178,8 @@ class PolicyManagerImplTest2 : public ::testing::Test { , app_id2("1010101010") , dev_id1("XXX123456789ZZZ") , dev_id2("08-00-27-CE-76-FE") + , dev_handle1(123456789) + , dev_handle2(1010101010) , PTU_request_types(Json::arrayValue) {} protected: @@ -190,6 +193,8 @@ class PolicyManagerImplTest2 : public ::testing::Test { const std::string app_id2; const std::string dev_id1; const std::string dev_id2; + const connection_handler::DeviceHandle dev_handle1; + const connection_handler::DeviceHandle dev_handle2; Json::Value PTU_request_types; NiceMock policy_settings_; const std::string kAppStorageFolder = "storage_PolicyManagerImplTest2"; @@ -271,7 +276,8 @@ class PolicyManagerImplTest2 : public ::testing::Test { // Arrange CreateLocalPT("sdl_preloaded_pt.json"); // Add app - manager->AddApplication(section_name, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id1, section_name, HmiTypes(policy_table::AHT_DEFAULT)); // Check app gets RequestTypes from pre_DataConsent of app_policies // section PT_request_types = manager->GetAppRequestTypes(section_name); @@ -292,7 +298,7 @@ class PolicyManagerImplTest2 : public ::testing::Test { PT_request_types.size()); ::policy::AppPermissions permissions = - manager->GetAppPermissionsChanges(section_name); + manager->GetAppPermissionsChanges(dev_id1, section_name); EXPECT_TRUE(permissions.requestTypeChanged); } @@ -541,7 +547,10 @@ TEST_F(PolicyManagerImplTest2, .WillRepeatedly(Return(dev_id1)); manager->SetUserConsentForDevice(dev_id1, true); // Add app from consented device. App will be assigned with default policies - manager->AddApplication(app_id1, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id1, app_id1, HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener, GetDevicesIds(app_id1)) + .WillRepeatedly(Return(transport_manager::DeviceList())); // Check before action policy_table::RpcParameters rpc_parameters; rpc_parameters.hmi_levels.push_back(policy_table::HL_FULL); @@ -598,7 +607,7 @@ TEST_F(PolicyManagerImplTest2, .WillRepeatedly(Return(dev_id1)); manager->SetUserConsentForDevice(dev_id1, true); // Add app from consented device. App will be assigned with default policies - manager->AddApplication("1234", HmiTypes(policy_table::AHT_MEDIA)); + manager->AddApplication(dev_id1, "1234", HmiTypes(policy_table::AHT_MEDIA)); // Emulate PTU with new policies for app added above std::ifstream ifile("sdl_preloaded_pt.json"); Json::Reader reader; @@ -785,8 +794,8 @@ TEST_F( AddApplication_AddNewApplicationFromDeviceWithoutConsent_ExpectUpdateRequired) { // Arrange CreateLocalPT("sdl_preloaded_pt.json"); - ::policy::StatusNotifier notifyer = - manager->AddApplication(app_id1, HmiTypes(policy_table::AHT_DEFAULT)); + ::policy::StatusNotifier notifyer = manager->AddApplication( + dev_id1, app_id1, HmiTypes(policy_table::AHT_DEFAULT)); DCHECK(notifyer); (*notifyer)(); EXPECT_EQ("UPDATE_NEEDED", manager->GetPolicyTableStatus()); @@ -798,9 +807,10 @@ TEST_F( // Arrange // RequestTypes for default & preDataConsent are different CreateLocalPT("ptu_requestType.json"); - manager->AddApplication(app_id1, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id1, app_id1, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_FALSE(manager->IsPredataPolicy(app_id1)); - manager->ReactOnUserDevConsentForApp(app_id1, true); + manager->ReactOnUserDevConsentForApp(dev_handle1, app_id1, true); EXPECT_FALSE(manager->IsPredataPolicy(app_id1)); EXPECT_TRUE((manager->GetCache())->IsDefaultPolicy(app_id1)); } @@ -811,10 +821,11 @@ TEST_F( // Arrange // RequestTypes for default & preDataConsent are the same CreateLocalPT("ptu2_requestType.json"); - manager->AddApplication(app_id1, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id1, app_id1, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_FALSE(manager->IsPredataPolicy(app_id1)); EXPECT_CALL(listener, OnPendingPermissionChange(app_id1)).Times(0); - manager->ReactOnUserDevConsentForApp(app_id1, true); + manager->ReactOnUserDevConsentForApp(dev_handle1, app_id1, true); EXPECT_FALSE(manager->IsPredataPolicy(app_id1)); EXPECT_TRUE((manager->GetCache())->IsDefaultPolicy(app_id1)); } @@ -828,7 +839,8 @@ TEST_F( GetPTU("valid_sdl_pt_update.json"); EXPECT_EQ("UP_TO_DATE", manager->GetPolicyTableStatus()); // Try to add existing app - manager->AddApplication(app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id2, app_id2, HmiTypes(policy_table::AHT_DEFAULT)); // Check no update required EXPECT_EQ("UP_TO_DATE", manager->GetPolicyTableStatus()); } @@ -876,13 +888,14 @@ TEST_F(PolicyManagerImplTest2, GetPTU("valid_sdl_pt_update.json"); EXPECT_EQ("UP_TO_DATE", manager->GetPolicyTableStatus()); - manager->AddApplication(app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id2, app_id2, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_EQ("UP_TO_DATE", manager->GetPolicyTableStatus()); ::policy::Counters counter = ::policy::Counters::DAYS_AFTER_EPOCH; // Set PT was updated 10 days ago (limit is 30 days for now) // So no limit exceeded manager->PTUpdatedAt(counter, days - 10); - manager->OnAppRegisteredOnMobile(app_id2); + manager->OnAppRegisteredOnMobile(dev_id2, app_id2); EXPECT_EQ("UP_TO_DATE", manager->GetPolicyTableStatus()); } @@ -1087,11 +1100,12 @@ TEST_F(PolicyManagerImplTest2, DISABLED_GetDefaultHmi_SetDeviceAllowed_ExpectReceivedHmiCorrect) { // Arrange CreateLocalPT("ptu2_requestType.json"); - manager->AddApplication(app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id2, app_id2, HmiTypes(policy_table::AHT_DEFAULT)); // Check if app has preData policy EXPECT_FALSE(manager->IsPredataPolicy(app_id2)); std::string default_hmi1; - manager->GetDefaultHmi(app_id2, &default_hmi1); + manager->GetDefaultHmi(dev_id2, app_id2, &default_hmi1); EXPECT_EQ("", default_hmi1); ASSERT_TRUE((manager->GetCache())->AddDevice(dev_id2, "Bluetooth")); ASSERT_TRUE((manager->GetCache()) @@ -1109,10 +1123,11 @@ TEST_F(PolicyManagerImplTest2, EXPECT_EQ(::policy::DeviceConsent::kDeviceAllowed, consent); EXPECT_CALL(listener, OnCurrentDeviceIdUpdateRequired(app_id2)) .WillRepeatedly(Return(dev_id2)); - manager->AddApplication(app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id2, app_id2, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_TRUE((manager->GetCache())->IsDefaultPolicy(app_id2)); std::string default_hmi2; - manager->GetDefaultHmi(app_id2, &default_hmi2); + manager->GetDefaultHmi(dev_id2, app_id2, &default_hmi2); EXPECT_EQ("", default_hmi2); } @@ -1120,7 +1135,8 @@ TEST_F(PolicyManagerImplTest2, GetDefaultPriority_SetDeviceAllowed_ExpectReceivedPriorityCorrect) { // Arrange CreateLocalPT("ptu2_requestType.json"); - manager->AddApplication(app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id2, app_id2, HmiTypes(policy_table::AHT_DEFAULT)); // Check if app has preData policy EXPECT_FALSE(manager->IsPredataPolicy(app_id2)); std::string priority1; @@ -1142,7 +1158,8 @@ TEST_F(PolicyManagerImplTest2, EXPECT_EQ(::policy::DeviceConsent::kDeviceAllowed, consent); EXPECT_CALL(listener, OnCurrentDeviceIdUpdateRequired(app_id2)) .WillRepeatedly(Return(dev_id2)); - manager->AddApplication(app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id2, app_id2, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_TRUE((manager->GetCache())->IsDefaultPolicy(app_id2)); std::string priority2; EXPECT_TRUE(manager->GetPriority(app_id2, &priority2)); @@ -1152,7 +1169,10 @@ TEST_F(PolicyManagerImplTest2, TEST_F(PolicyManagerImplTest2, GetInitialAppData_ExpectReceivedConsentCorrect) { // Arrange CreateLocalPT("sdl_preloaded_pt.json"); - manager->AddApplication(app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id2, app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener, GetDevicesIds(app_id2)) + .WillRepeatedly(Return(transport_manager::DeviceList())); ::policy::StringArray app_nicknames; ::policy::StringArray app_hmi_types; manager->GetInitialAppData(app_id2, &app_nicknames, &app_hmi_types); @@ -1194,7 +1214,8 @@ TEST_F( CanAppKeepContext_AddAppFromUnconsentedDevice_ExpectAppCannotKeepContext) { // Arrange CreateLocalPT("sdl_preloaded_pt.json"); - manager->AddApplication(app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id2, app_id2, HmiTypes(policy_table::AHT_DEFAULT)); // Check if app has preData policy EXPECT_FALSE(manager->IsPredataPolicy(app_id2)); // Check keep context in preData policy @@ -1206,7 +1227,8 @@ TEST_F(PolicyManagerImplTest2, // Arrange CreateLocalPT("sdl_preloaded_pt.json"); ASSERT_TRUE((manager->GetCache())->AddDevice(dev_id2, "Bluetooth")); - manager->AddApplication(app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id2, app_id2, HmiTypes(policy_table::AHT_DEFAULT)); ASSERT_TRUE((manager->GetCache()) ->SetDeviceData(dev_id2, "hardware IPX", @@ -1221,7 +1243,8 @@ TEST_F(PolicyManagerImplTest2, EXPECT_EQ(::policy::DeviceConsent::kDeviceAllowed, consent); EXPECT_CALL(listener, OnCurrentDeviceIdUpdateRequired(app_id2)) .WillRepeatedly(Return(dev_id2)); - manager->AddApplication(app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id2, app_id2, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_TRUE((manager->GetCache())->IsDefaultPolicy(app_id2)); // Check keep context in default policy EXPECT_TRUE(manager->CanAppKeepContext(app_id2)); @@ -1231,7 +1254,10 @@ TEST_F(PolicyManagerImplTest2, CanAppKeepContext_SetPoliciesForAppUpdated_ExpectAppCanKeepContext) { // Arrange CreateLocalPT("sdl_preloaded_pt.json"); - manager->AddApplication(app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id2, app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener, GetDevicesIds(app_id2)) + .WillRepeatedly(Return(transport_manager::DeviceList())); GetPTU("valid_sdl_pt_update.json"); // Check keep context in updated policies for app EXPECT_TRUE(manager->CanAppKeepContext(app_id2)); @@ -1242,7 +1268,8 @@ TEST_F(PolicyManagerImplTest2, // Arrange CreateLocalPT("sdl_preloaded_pt.json"); ASSERT_TRUE((manager->GetCache())->AddDevice(dev_id2, "Bluetooth")); - manager->AddApplication(app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id2, app_id2, HmiTypes(policy_table::AHT_DEFAULT)); ASSERT_TRUE((manager->GetCache()) ->SetDeviceData(dev_id2, "hardware IPX", @@ -1257,7 +1284,8 @@ TEST_F(PolicyManagerImplTest2, EXPECT_EQ(::policy::DeviceConsent::kDeviceAllowed, consent); EXPECT_CALL(listener, OnCurrentDeviceIdUpdateRequired(app_id2)) .WillRepeatedly(Return(dev_id2)); - manager->AddApplication(app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id2, app_id2, HmiTypes(policy_table::AHT_DEFAULT)); EXPECT_TRUE((manager->GetCache())->IsDefaultPolicy(app_id2)); // Check keep context in default policy EXPECT_TRUE(manager->CanAppStealFocus(app_id2)); @@ -1267,7 +1295,10 @@ TEST_F(PolicyManagerImplTest2, CanAppStealFocus_SetPoliciesForAppUpdated_ExpectAppCanStealFocus) { // Arrange CreateLocalPT("sdl_preloaded_pt.json"); - manager->AddApplication(app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id2, app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener, GetDevicesIds(app_id2)) + .WillRepeatedly(Return(transport_manager::DeviceList())); GetPTU("valid_sdl_pt_update.json"); // Check keep context in updated policies for app EXPECT_TRUE(manager->CanAppKeepContext(app_id2)); @@ -1275,9 +1306,11 @@ TEST_F(PolicyManagerImplTest2, TEST_F(PolicyManagerImplTest2, GetCurrentDeviceId) { // Arrange - EXPECT_CALL(listener, OnCurrentDeviceIdUpdateRequired(app_id2)).Times(2); - EXPECT_EQ(custom_str::CustomString(""), manager->GetCurrentDeviceId(app_id2)); - EXPECT_EQ("", manager->GetCurrentDeviceId(app_id2)); + EXPECT_CALL(listener, OnCurrentDeviceIdUpdateRequired(dev_handle2, app_id2)) + .Times(2); + EXPECT_EQ(custom_str::CustomString(""), + manager->GetCurrentDeviceId(dev_handle2, app_id2)); + EXPECT_EQ("", manager->GetCurrentDeviceId(dev_handle2, app_id2)); } TEST_F(PolicyManagerImplTest2, @@ -1323,7 +1356,10 @@ TEST_F( manager->SetUserConsentForDevice(dev_id2, true); EXPECT_CALL(listener, OnCurrentDeviceIdUpdateRequired(app_id2)) .WillRepeatedly(Return(dev_id2)); - manager->AddApplication(app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id2, app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener, GetDevicesIds(app_id2)) + .WillRepeatedly(Return(transport_manager::DeviceList())); GetPTU("valid_sdl_pt_update.json"); ::policy::PermissionConsent perm_consent; @@ -1342,7 +1378,7 @@ TEST_F( perm_consent.group_permissions = groups_permissions; manager->SetUserConsentForApp(perm_consent); - manager->SendNotificationOnPermissionsUpdated(app_id2); + manager->SendNotificationOnPermissionsUpdated(dev_id2, app_id2); std::vector< ::policy::FunctionalGroupPermission> actual_groups_permissions; std::vector< ::policy::FunctionalGroupPermission>::iterator it; manager->GetPermissionsForApp(dev_id2, app_id2, actual_groups_permissions); @@ -1377,7 +1413,10 @@ TEST_F( pt->ReportErrors(&report); } // Add new app - manager->AddApplication(app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + manager->AddApplication( + dev_id2, app_id2, HmiTypes(policy_table::AHT_DEFAULT)); + EXPECT_CALL(listener, GetDevicesIds(app_id2)) + .WillRepeatedly(Return(transport_manager::DeviceList())); uint32_t result = manager->HeartBeatTimeout(app_id2); // By default hertbeat timeout is 0 EXPECT_EQ(0u, result); -- cgit v1.2.1