summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSerhii Niukalov (GitHub) <36993782+SNiukalov@users.noreply.github.com>2020-04-17 01:26:28 +0300
committerGitHub <noreply@github.com>2020-04-16 18:26:28 -0400
commit589ac12f05b6e55cea443e1ddc693f1e6a24d236 (patch)
tree9bc758e9cc765ad7c21e6ab9c6637afb007f6486
parentd2331b066ebb30305f1a5df644511f0f72a2381f (diff)
downloadsdl_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.cc2
-rw-r--r--src/components/application_manager/test/policy_handler_test.cc32
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_;