Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(61)

Unified Diff: third_party/libaddressinput/chromium/cpp/src/address_validator.cc

Issue 261013010: autocomplete: add ability to get full address (hidden behind a flag). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: self review Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/libaddressinput/chromium/cpp/src/address_validator.cc
diff --git a/third_party/libaddressinput/chromium/cpp/src/address_validator.cc b/third_party/libaddressinput/chromium/cpp/src/address_validator.cc
index 28325486e0585c2fb699fc4e70b20f1362f7087f..81c00e86cd2a39cc653705ccbc4382688f2a4ebb 100644
--- a/third_party/libaddressinput/chromium/cpp/src/address_validator.cc
+++ b/third_party/libaddressinput/chromium/cpp/src/address_validator.cc
@@ -34,6 +34,7 @@
#include <re2/re2.h>
#include "country_rules_aggregator.h"
+#include "grit.h"
#include "grit/libaddressinput_strings.h"
#include "region_data_constants.h"
#include "retriever.h"
@@ -97,6 +98,71 @@ bool IsEmptyStreetAddress(const std::vector<std::string>& street_address) {
return true;
}
+// Returns the ID of the string that should be displayed when the given field
+// is invalid in the context of |country_rule|.
+int GetInvalidFieldMessageId(const Rule& country_rule, AddressField field) {
+ switch (field) {
+ case LOCALITY:
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_LOCALITY_LABEL;
+ case DEPENDENT_LOCALITY:
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_DEPENDENT_LOCALITY_LABEL;
+
+ case ADMIN_AREA: {
+ const std::string& admin_area_name_type =
+ country_rule.GetAdminAreaNameType();
+ if (admin_area_name_type == "area") {
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_AREA;
+ }
+ if (admin_area_name_type == "county") {
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_COUNTY_LABEL;
+ }
+ if (admin_area_name_type == "department") {
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_DEPARTMENT;
+ }
+ if (admin_area_name_type == "district") {
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_DEPENDENT_LOCALITY_LABEL;
+ }
+ if (admin_area_name_type == "do_si") {
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_DO_SI;
+ }
+ if (admin_area_name_type == "emirate") {
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_EMIRATE;
+ }
+ if (admin_area_name_type == "island") {
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_ISLAND;
+ }
+ if (admin_area_name_type == "parish") {
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_PARISH;
+ }
+ if (admin_area_name_type == "prefecture") {
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_PREFECTURE;
+ }
+ if (admin_area_name_type == "province") {
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_PROVINCE;
+ }
+ if (admin_area_name_type == "state") {
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_STATE_LABEL;
+ }
+ return INVALID_MESSAGE_ID;
+ }
+
+ case POSTAL_CODE: {
+ const std::string& postal_code_name_type =
+ country_rule.GetPostalCodeNameType();
+ if (postal_code_name_type == "postal") {
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_POSTAL_CODE_LABEL;
+ }
+ if (postal_code_name_type == "zip") {
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_ZIP_CODE_LABEL;
+ }
+ return INVALID_MESSAGE_ID;
+ }
+
+ default:
+ return IDS_LIBADDRESSINPUT_I18N_INVALID_ENTRY;
+ }
+}
+
// Collects rulesets based on whether they have a parent in the given list.
class ParentedRulesetCollector {
public:
@@ -207,7 +273,7 @@ class AddressValidatorImpl : public AddressValidator {
problems->push_back(AddressProblem(
POSTAL_CODE,
AddressProblem::UNRECOGNIZED_FORMAT,
- country_rule.GetInvalidPostalCodeMessageId()));
+ GetInvalidFieldMessageId(country_rule, POSTAL_CODE)));
}
while (ruleset != NULL) {
@@ -224,7 +290,7 @@ class AddressValidatorImpl : public AddressValidator {
problems->push_back(AddressProblem(
sub_field_type,
AddressProblem::UNKNOWN_VALUE,
- country_rule.GetInvalidFieldMessageId(sub_field_type)));
+ GetInvalidFieldMessageId(country_rule, sub_field_type)));
}
// Validate sub-region specific postal code format. A sub-region specifies
@@ -240,7 +306,7 @@ class AddressValidatorImpl : public AddressValidator {
problems->push_back(AddressProblem(
POSTAL_CODE,
AddressProblem::MISMATCHING_VALUE,
- country_rule.GetInvalidPostalCodeMessageId()));
+ GetInvalidFieldMessageId(country_rule, POSTAL_CODE)));
}
ruleset = ruleset->GetSubRegionRuleset(sub_key);
« no previous file with comments | « third_party/libaddressinput/chromium/cpp/src/address_ui.cc ('k') | third_party/libaddressinput/chromium/cpp/src/rule.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698