Index: third_party/libaddressinput/chromium/cpp/src/rule.cc |
diff --git a/third_party/libaddressinput/chromium/cpp/src/rule.cc b/third_party/libaddressinput/chromium/cpp/src/rule.cc |
index 43d5c4301fcdd40beac00a152105acb0e2004110..006ea58714e275971a9a6eb282d7cc2bcfe26293 100644 |
--- a/third_party/libaddressinput/chromium/cpp/src/rule.cc |
+++ b/third_party/libaddressinput/chromium/cpp/src/rule.cc |
@@ -111,49 +111,62 @@ void ParseAddressFieldsRequired(const std::string& required, |
} |
} |
-int GetAdminAreaMessageId(const std::string& admin_area_type) { |
+int GetAdminAreaMessageId(const std::string& admin_area_type, bool error) { |
if (admin_area_type == "area") { |
- return IDS_LIBADDRESSINPUT_I18N_AREA; |
+ return error ? IDS_LIBADDRESSINPUT_I18N_INVALID_AREA |
+ : IDS_LIBADDRESSINPUT_I18N_AREA; |
} |
if (admin_area_type == "county") { |
- return IDS_LIBADDRESSINPUT_I18N_COUNTY_LABEL; |
+ return error ? IDS_LIBADDRESSINPUT_I18N_INVALID_COUNTY_LABEL |
+ : IDS_LIBADDRESSINPUT_I18N_COUNTY_LABEL; |
} |
if (admin_area_type == "department") { |
- return IDS_LIBADDRESSINPUT_I18N_DEPARTMENT; |
+ return error ? IDS_LIBADDRESSINPUT_I18N_INVALID_DEPARTMENT |
+ : IDS_LIBADDRESSINPUT_I18N_DEPARTMENT; |
} |
if (admin_area_type == "district") { |
- return IDS_LIBADDRESSINPUT_I18N_DEPENDENT_LOCALITY_LABEL; |
+ return error ? IDS_LIBADDRESSINPUT_I18N_INVALID_DEPENDENT_LOCALITY_LABEL |
+ : IDS_LIBADDRESSINPUT_I18N_DEPENDENT_LOCALITY_LABEL; |
} |
if (admin_area_type == "do_si") { |
- return IDS_LIBADDRESSINPUT_I18N_DO_SI; |
+ return error ? IDS_LIBADDRESSINPUT_I18N_INVALID_DO_SI |
+ : IDS_LIBADDRESSINPUT_I18N_DO_SI; |
} |
if (admin_area_type == "emirate") { |
- return IDS_LIBADDRESSINPUT_I18N_EMIRATE; |
+ return error ? IDS_LIBADDRESSINPUT_I18N_INVALID_EMIRATE |
+ : IDS_LIBADDRESSINPUT_I18N_EMIRATE; |
} |
if (admin_area_type == "island") { |
- return IDS_LIBADDRESSINPUT_I18N_ISLAND; |
+ return error ? IDS_LIBADDRESSINPUT_I18N_INVALID_ISLAND |
+ : IDS_LIBADDRESSINPUT_I18N_ISLAND; |
} |
if (admin_area_type == "parish") { |
- return IDS_LIBADDRESSINPUT_I18N_PARISH; |
+ return error ? IDS_LIBADDRESSINPUT_I18N_INVALID_PARISH |
+ : IDS_LIBADDRESSINPUT_I18N_PARISH; |
} |
if (admin_area_type == "prefecture") { |
- return IDS_LIBADDRESSINPUT_I18N_PREFECTURE; |
+ return error ? IDS_LIBADDRESSINPUT_I18N_INVALID_PREFECTURE |
+ : IDS_LIBADDRESSINPUT_I18N_PREFECTURE; |
} |
if (admin_area_type == "province") { |
- return IDS_LIBADDRESSINPUT_I18N_PROVINCE; |
+ return error ? IDS_LIBADDRESSINPUT_I18N_INVALID_PROVINCE |
+ : IDS_LIBADDRESSINPUT_I18N_PROVINCE; |
} |
if (admin_area_type == "state") { |
- return IDS_LIBADDRESSINPUT_I18N_STATE_LABEL; |
+ return error ? IDS_LIBADDRESSINPUT_I18N_INVALID_STATE_LABEL |
+ : IDS_LIBADDRESSINPUT_I18N_STATE_LABEL; |
} |
return INVALID_MESSAGE_ID; |
} |
-int GetPostalCodeMessageId(const std::string& postal_code_type) { |
+int GetPostalCodeMessageId(const std::string& postal_code_type, bool error) { |
if (postal_code_type == "postal") { |
- return IDS_LIBADDRESSINPUT_I18N_POSTAL_CODE_LABEL; |
+ return error ? IDS_LIBADDRESSINPUT_I18N_INVALID_POSTAL_CODE_LABEL |
+ : IDS_LIBADDRESSINPUT_I18N_POSTAL_CODE_LABEL; |
} |
if (postal_code_type == "zip") { |
- return IDS_LIBADDRESSINPUT_I18N_ZIP_CODE_LABEL; |
+ return error ? IDS_LIBADDRESSINPUT_I18N_INVALID_ZIP_CODE_LABEL |
+ : IDS_LIBADDRESSINPUT_I18N_ZIP_CODE_LABEL; |
} |
return INVALID_MESSAGE_ID; |
} |
@@ -192,7 +205,9 @@ void Rule::CopyFrom(const Rule& rule) { |
language_ = rule.language_; |
postal_code_format_ = rule.postal_code_format_; |
admin_area_name_message_id_ = rule.admin_area_name_message_id_; |
+ invalid_admin_area_message_id_ = rule.invalid_admin_area_message_id_; |
postal_code_name_message_id_ = rule.postal_code_name_message_id_; |
+ invalid_postal_code_message_id_ = rule.invalid_postal_code_message_id_; |
} |
bool Rule::ParseSerializedRule(const std::string& serialized_rule) { |
@@ -230,15 +245,32 @@ bool Rule::ParseSerializedRule(const std::string& serialized_rule) { |
} |
if (json->GetStringValueForKey("state_name_type", &value)) { |
- admin_area_name_message_id_ = GetAdminAreaMessageId(value); |
+ admin_area_name_message_id_ = GetAdminAreaMessageId(value, false); |
+ invalid_admin_area_message_id_ = GetAdminAreaMessageId(value, true); |
} |
if (json->GetStringValueForKey("zip_name_type", &value)) { |
- postal_code_name_message_id_ = GetPostalCodeMessageId(value); |
+ postal_code_name_message_id_ = GetPostalCodeMessageId(value, false); |
+ invalid_postal_code_message_id_ = GetPostalCodeMessageId(value, true); |
} |
return true; |
} |
+int Rule::GetInvalidFieldMessageId(AddressField field) const { |
+ switch (field) { |
+ case ADMIN_AREA: |
+ return invalid_admin_area_message_id_; |
+ case LOCALITY: |
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_LOCALITY_LABEL; |
+ case DEPENDENT_LOCALITY: |
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_DEPENDENT_LOCALITY_LABEL; |
+ case POSTAL_CODE: |
+ return invalid_postal_code_message_id_; |
+ default: |
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_ENTRY; |
+ } |
+} |
+ |
} // namespace addressinput |
} // namespace i18n |