summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAKalinich-Luxoft <AKalinich@luxoft.com>2017-06-19 16:26:36 +0300
committerAKalinich-Luxoft <AKalinich@luxoft.com>2017-06-19 16:26:36 +0300
commit60f57672d36c84b805d2e40481be1555e3e6ffa8 (patch)
tree55e27bedc697c7aa70a21a95be081c5be528e3a1
parent817052ffe35991d6927e9176528821323b4e6812 (diff)
downloadsdl_core-60f57672d36c84b805d2e40481be1555e3e6ffa8.tar.gz
Fix Consumer friendly message default language checking
If “en-us” is not present for any message, the table shall be rejected, PM should log error and shut SDL down. However this works only for external policies. Added missed checks for regular policies. kMandatoryLanguage was renamed to default_language_
-rw-r--r--src/components/policy/policy_external/include/policy/policy_table/types.h2
-rw-r--r--src/components/policy/policy_external/src/policy_table/types.cc11
-rw-r--r--src/components/policy/policy_regular/include/policy/policy_table/types.h1
-rw-r--r--src/components/policy/policy_regular/src/policy_table/types.cc11
4 files changed, 19 insertions, 6 deletions
diff --git a/src/components/policy/policy_external/include/policy/policy_table/types.h b/src/components/policy/policy_external/include/policy/policy_table/types.h
index 774ef3ee59..8785f4d8e9 100644
--- a/src/components/policy/policy_external/include/policy/policy_table/types.h
+++ b/src/components/policy/policy_external/include/policy/policy_table/types.h
@@ -360,7 +360,7 @@ struct MessageLanguages : CompositeType {
private:
bool Validate() const;
- static const std::string kMandatoryLanguage_;
+ static const std::string default_language_;
};
struct ConsumerFriendlyMessages : CompositeType {
diff --git a/src/components/policy/policy_external/src/policy_table/types.cc b/src/components/policy/policy_external/src/policy_table/types.cc
index d7dd986abc..a02f1efe9d 100644
--- a/src/components/policy/policy_external/src/policy_table/types.cc
+++ b/src/components/policy/policy_external/src/policy_table/types.cc
@@ -890,7 +890,7 @@ void MessageString::SetPolicyTableType(PolicyTableType pt_type) {
}
// MessageLanguages methods
-const std::string MessageLanguages::kMandatoryLanguage_("en-us");
+const std::string MessageLanguages::default_language_("en-us");
MessageLanguages::MessageLanguages() : CompositeType(kUninitialized) {}
@@ -914,7 +914,7 @@ bool MessageLanguages::is_valid() const {
return false;
}
// Each RPC must have message in english
- if (languages.end() == languages.find(kMandatoryLanguage_)) {
+ if (languages.end() == languages.find(default_language_)) {
return false;
}
return Validate();
@@ -947,9 +947,10 @@ void MessageLanguages::ReportErrors(rpc::ValidationReport* report__) const {
if (!languages.is_valid()) {
languages.ReportErrors(&report__->ReportSubobject("languages"));
}
- if (languages.end() == languages.find(kMandatoryLanguage_)) {
- report__->set_validation_info("no mandatory language '" +
- kMandatoryLanguage_ + "' is present");
+ if (languages.end() == languages.find(default_language_)) {
+ report__->set_validation_info(
+ "this message does not support the default language '" +
+ default_language_ + "'");
}
}
diff --git a/src/components/policy/policy_regular/include/policy/policy_table/types.h b/src/components/policy/policy_regular/include/policy/policy_table/types.h
index 66fddee592..f6dceb30ed 100644
--- a/src/components/policy/policy_regular/include/policy/policy_table/types.h
+++ b/src/components/policy/policy_regular/include/policy/policy_table/types.h
@@ -298,6 +298,7 @@ struct MessageLanguages : CompositeType {
virtual void SetPolicyTableType(PolicyTableType pt_type);
private:
+ static const std::string default_language_;
bool Validate() const;
};
diff --git a/src/components/policy/policy_regular/src/policy_table/types.cc b/src/components/policy/policy_regular/src/policy_table/types.cc
index 7928973919..c448167e53 100644
--- a/src/components/policy/policy_regular/src/policy_table/types.cc
+++ b/src/components/policy/policy_regular/src/policy_table/types.cc
@@ -737,6 +737,8 @@ void MessageString::SetPolicyTableType(PolicyTableType pt_type) {
}
// MessageLanguages methods
+const std::string MessageLanguages::default_language_("en-us");
+
MessageLanguages::MessageLanguages() : CompositeType(kUninitialized) {}
MessageLanguages::MessageLanguages(const Languages& languages)
: CompositeType(kUninitialized), languages(languages) {}
@@ -753,6 +755,10 @@ bool MessageLanguages::is_valid() const {
if (!languages.is_valid()) {
return false;
}
+ // Each RPC must have message in english
+ if (languages.end() == languages.find(default_language_)) {
+ return false;
+ }
return Validate();
}
bool MessageLanguages::is_initialized() const {
@@ -781,6 +787,11 @@ void MessageLanguages::ReportErrors(rpc::ValidationReport* report__) const {
if (!languages.is_valid()) {
languages.ReportErrors(&report__->ReportSubobject("languages"));
}
+ if (languages.end() == languages.find(default_language_)) {
+ report__->set_validation_info(
+ "this message does not support the default language '" +
+ default_language_ + "'");
+ }
}
void MessageLanguages::SetPolicyTableType(PolicyTableType pt_type) {