diff options
author | Serhii Niukalov (GitHub) <36993782+SNiukalov@users.noreply.github.com> | 2020-04-17 01:26:28 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-16 18:26:28 -0400 |
commit | 589ac12f05b6e55cea443e1ddc693f1e6a24d236 (patch) | |
tree | 9bc758e9cc765ad7c21e6ab9c6637afb007f6486 | |
parent | d2331b066ebb30305f1a5df644511f0f72a2381f (diff) | |
download | sdl_core-589ac12f05b6e55cea443e1ddc693f1e6a24d236.tar.gz |
Fix/Send OnAppPropertiesChange in case one of nicknames is removed (#3336)
* Update compare for the nicknames
* UTs update
Co-authored-by: sniukalov <sniukaov@luxoft.com>
-rw-r--r-- | src/components/application_manager/src/policies/policy_handler.cc | 2 | ||||
-rw-r--r-- | src/components/application_manager/test/policy_handler_test.cc | 32 |
2 files changed, 29 insertions, 5 deletions
diff --git a/src/components/application_manager/src/policies/policy_handler.cc b/src/components/application_manager/src/policies/policy_handler.cc index f41bb45dbf..9503f6e0b6 100644 --- a/src/components/application_manager/src/policies/policy_handler.cc +++ b/src/components/application_manager/src/policies/policy_handler.cc @@ -2142,7 +2142,7 @@ PolicyHandler::AppPropertiesState PolicyHandler::GetAppPropertiesStatus( const smart_objects::SmartArray* nicknames_array = properties[strings::nicknames].asArray(); - if (nicknames_array->empty() && !nicknames.empty()) { + if (nicknames_array->size() != nicknames.size()) { return AppPropertiesState::NICKNAMES_CHANGED; } diff --git a/src/components/application_manager/test/policy_handler_test.cc b/src/components/application_manager/test/policy_handler_test.cc index 7a49431440..f5eaaa2184 100644 --- a/src/components/application_manager/test/policy_handler_test.cc +++ b/src/components/application_manager/test/policy_handler_test.cc @@ -31,6 +31,7 @@ */ #include <fstream> +#include <memory> #include <string> #include <vector> #include "gmock/gmock.h" @@ -92,9 +93,12 @@ using ::testing::SetArgReferee; typedef NiceMock<application_manager_test::MockRPCService> MockRPCService; +namespace { +const std::string kFakeNickname = "fake_nickname"; const std::string kDummyData = "some_data"; const WindowID kDefaultWindowId = mobile_apis::PredefinedWindows::DEFAULT_WINDOW; +} // namespace class PolicyHandlerTest : public ::testing::Test { public: @@ -3008,8 +3012,6 @@ TEST_F(PolicyHandlerTest, GetAppPropertiesStatus_EndPointNotChanged_SUCCESS) { TEST_F(PolicyHandlerTest, GetAppPropertiesStatus_NicknameChanged_SUCCESS) { ChangePolicyManagerToMock(); - const std::string kFakeNickname = "fake_nickname"; - smart_objects::SmartObject properties; properties[strings::app_id] = kPolicyAppId_; properties[strings::nicknames] = @@ -3031,10 +3033,32 @@ TEST_F(PolicyHandlerTest, GetAppPropertiesStatus_NicknameChanged_SUCCESS) { policy_handler_.GetAppPropertiesStatus(properties, kPolicyAppId_)); } -TEST_F(PolicyHandlerTest, GetAppPropertiesStatus_NicknameNotChanged_SUCCESS) { +TEST_F(PolicyHandlerTest, + GetAppPropertiesStatus_RemoveNickname_NicknamesChanged) { ChangePolicyManagerToMock(); - const std::string kFakeNickname = "fake_nickname"; + smart_objects::SmartObject properties; + properties[strings::app_id] = kPolicyAppId_; + properties[strings::nicknames] = + smart_objects::SmartObject(smart_objects::SmartType_Array); + properties[strings::nicknames].asArray()->push_back( + smart_objects::SmartObject(kFakeNickname)); + + auto nicknames = std::make_shared<policy::StringArray>(2, kFakeNickname); + + const auto expected_app_properties_state = + policy::PolicyHandlerInterface::AppPropertiesState::NICKNAMES_CHANGED; + + EXPECT_CALL(*mock_policy_manager_, GetAppProperties(kPolicyAppId_, _)) + .WillOnce(Return(true)); + EXPECT_CALL(*mock_policy_manager_, GetInitialAppData(kPolicyAppId_, _, _)) + .WillOnce(DoAll(SetArgPointee<1>(*nicknames), Return(true))); + EXPECT_EQ(expected_app_properties_state, + policy_handler_.GetAppPropertiesStatus(properties, kPolicyAppId_)); +} + +TEST_F(PolicyHandlerTest, GetAppPropertiesStatus_NicknameNotChanged_SUCCESS) { + ChangePolicyManagerToMock(); smart_objects::SmartObject properties; properties[strings::app_id] = kPolicyAppId_; |