1f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// Copyright (C) 2013 Google Inc. 2f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// 3f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// Licensed under the Apache License, Version 2.0 (the "License"); 4f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// you may not use this file except in compliance with the License. 5f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// You may obtain a copy of the License at 6f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// 7f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// http://www.apache.org/licenses/LICENSE-2.0 8f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// 9f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// Unless required by applicable law or agreed to in writing, software 10f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// distributed under the License is distributed on an "AS IS" BASIS, 11f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// See the License for the specific language governing permissions and 13f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// limitations under the License. 14f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org 15f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org#include <libaddressinput/localization.h> 16f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org 17e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com#include <libaddressinput/address_data.h> 18e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com#include <libaddressinput/address_field.h> 19e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com#include <libaddressinput/address_problem.h> 206c42355ce8c105bbadf57deb999c777b5c49df59roubert@google.com#include <libaddressinput/util/basictypes.h> 21e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com 22f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org#include <string> 239f47fe3ed525accac995b095d408a825673a2ee1roubert@google.com#include <vector> 24f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org 25f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org#include <gtest/gtest.h> 26f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org 27f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org#include "grit.h" 28f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org#include "messages.h" 29f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org 30f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.orgnamespace { 31f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org 32e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.comusing i18n::addressinput::AddressData; 33e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.comusing i18n::addressinput::AddressField; 34f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.orgusing i18n::addressinput::INVALID_MESSAGE_ID; 35f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.orgusing i18n::addressinput::Localization; 369f47fe3ed525accac995b095d408a825673a2ee1roubert@google.com 379f47fe3ed525accac995b095d408a825673a2ee1roubert@google.comusing i18n::addressinput::COUNTRY; 389f47fe3ed525accac995b095d408a825673a2ee1roubert@google.comusing i18n::addressinput::ADMIN_AREA; 399f47fe3ed525accac995b095d408a825673a2ee1roubert@google.comusing i18n::addressinput::LOCALITY; 409f47fe3ed525accac995b095d408a825673a2ee1roubert@google.comusing i18n::addressinput::DEPENDENT_LOCALITY; 41e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.comusing i18n::addressinput::SORTING_CODE; 429f47fe3ed525accac995b095d408a825673a2ee1roubert@google.comusing i18n::addressinput::POSTAL_CODE; 43e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.comusing i18n::addressinput::STREET_ADDRESS; 44b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.orgusing i18n::addressinput::ORGANIZATION; 459f47fe3ed525accac995b095d408a825673a2ee1roubert@google.comusing i18n::addressinput::RECIPIENT; 469f47fe3ed525accac995b095d408a825673a2ee1roubert@google.com 479f47fe3ed525accac995b095d408a825673a2ee1roubert@google.comusing i18n::addressinput::MISSING_REQUIRED_FIELD; 48e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.comusing i18n::addressinput::UNKNOWN_VALUE; 499f47fe3ed525accac995b095d408a825673a2ee1roubert@google.comusing i18n::addressinput::INVALID_FORMAT; 509f47fe3ed525accac995b095d408a825673a2ee1roubert@google.comusing i18n::addressinput::MISMATCHING_VALUE; 51e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.comusing i18n::addressinput::USES_P_O_BOX; 52f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org 53f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// Tests for Localization object. 54f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.orgclass LocalizationTest : public testing::TestWithParam<int> { 55f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org protected: 566c42355ce8c105bbadf57deb999c777b5c49df59roubert@google.com LocalizationTest() {} 57f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org Localization localization_; 586c42355ce8c105bbadf57deb999c777b5c49df59roubert@google.com 596c42355ce8c105bbadf57deb999c777b5c49df59roubert@google.com private: 606c42355ce8c105bbadf57deb999c777b5c49df59roubert@google.com DISALLOW_COPY_AND_ASSIGN(LocalizationTest); 61f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org}; 62f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org 63f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// Verifies that a custom message getter can be used. 64947ce24396bbb66ec5fcd14a73f85f4e32c3dcc0rouslan@chromium.orgstatic const char kValidMessage[] = "Data"; 65f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.orgstd::string GetValidMessage(int message_id) { return kValidMessage; } 66f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.orgTEST_P(LocalizationTest, ValidStringGetterCanBeUsed) { 670286d15a542e34d770d366f84fbc8c1d2116d970rouslan@chromium.org localization_.SetGetter(&GetValidMessage); 68f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org EXPECT_EQ(kValidMessage, localization_.GetString(GetParam())); 69f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org} 70f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org 71f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// Verifies that the default language for messages does not have empty strings. 72f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.orgTEST_P(LocalizationTest, DefaultStringIsNotEmpty) { 73f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org EXPECT_FALSE(localization_.GetString(GetParam()).empty()); 74f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org} 75f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org 7691de79c2a6ae5ca94594a503020ee1f08c1e559frouslan@chromium.org// Verifies that the messages do not have newlines. 7791de79c2a6ae5ca94594a503020ee1f08c1e559frouslan@chromium.orgTEST_P(LocalizationTest, NoNewline) { 7891de79c2a6ae5ca94594a503020ee1f08c1e559frouslan@chromium.org EXPECT_EQ(std::string::npos, localization_.GetString(GetParam()).find('\n')); 7991de79c2a6ae5ca94594a503020ee1f08c1e559frouslan@chromium.org} 8091de79c2a6ae5ca94594a503020ee1f08c1e559frouslan@chromium.org 8191de79c2a6ae5ca94594a503020ee1f08c1e559frouslan@chromium.org// Verifies that the messages do not have double spaces. 8291de79c2a6ae5ca94594a503020ee1f08c1e559frouslan@chromium.orgTEST_P(LocalizationTest, NoDoubleSpace) { 8391de79c2a6ae5ca94594a503020ee1f08c1e559frouslan@chromium.org EXPECT_EQ(std::string::npos, 8491de79c2a6ae5ca94594a503020ee1f08c1e559frouslan@chromium.org localization_.GetString(GetParam()).find(std::string(2U, ' '))); 8591de79c2a6ae5ca94594a503020ee1f08c1e559frouslan@chromium.org} 8691de79c2a6ae5ca94594a503020ee1f08c1e559frouslan@chromium.org 87f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// Tests all message identifiers. 88f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.orgINSTANTIATE_TEST_CASE_P( 89f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org AllMessages, LocalizationTest, 90e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com testing::Values( 91e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_COUNTRY_OR_REGION_LABEL, 92e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_LOCALITY_LABEL, 93e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_ADDRESS_LINE_1_LABEL, 94e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_POSTAL_CODE_LABEL, 95e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_ZIP_CODE_LABEL, 96e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_AREA, 97e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_COUNTY, 98e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_DEPARTMENT, 99e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_DISTRICT, 100e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_DO_SI, 101e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_EMIRATE, 102e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_ISLAND, 103e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_PARISH, 104e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_PREFECTURE, 105e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_PROVINCE, 106e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_STATE, 107b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org IDS_LIBADDRESSINPUT_ORGANIZATION_LABEL, 108e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_RECIPIENT_LABEL, 109e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_MISSING_REQUIRED_FIELD, 110e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_MISSING_REQUIRED_POSTAL_CODE_EXAMPLE_AND_URL, 111e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_MISSING_REQUIRED_POSTAL_CODE_EXAMPLE, 112e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_MISSING_REQUIRED_ZIP_CODE_EXAMPLE_AND_URL, 113e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_MISSING_REQUIRED_ZIP_CODE_EXAMPLE, 114e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_UNKNOWN_VALUE, 115e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_UNRECOGNIZED_FORMAT_POSTAL_CODE_EXAMPLE_AND_URL, 116e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_UNRECOGNIZED_FORMAT_POSTAL_CODE_EXAMPLE, 117e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_UNRECOGNIZED_FORMAT_POSTAL_CODE, 118e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_UNRECOGNIZED_FORMAT_ZIP_CODE_EXAMPLE_AND_URL, 119e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_UNRECOGNIZED_FORMAT_ZIP_CODE_EXAMPLE, 120e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_UNRECOGNIZED_FORMAT_ZIP, 121e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_MISMATCHING_VALUE_POSTAL_CODE_URL, 122e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_MISMATCHING_VALUE_POSTAL_CODE, 123e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_MISMATCHING_VALUE_ZIP_URL, 124e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_MISMATCHING_VALUE_ZIP, 125e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com IDS_LIBADDRESSINPUT_PO_BOX_FORBIDDEN_VALUE)); 126f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org 127f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// Verifies that an invalid message identifier results in an empty string in the 128f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org// default configuration. 129f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.orgTEST_F(LocalizationTest, InvalidMessageIsEmptyString) { 130f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org EXPECT_TRUE(localization_.GetString(INVALID_MESSAGE_ID).empty()); 131f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org} 132f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org 133e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.comTEST(LocalizationGetErrorMessageTest, MissingRequiredPostalCode) { 134e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com Localization localization; 135e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com AddressData address; 136e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address.region_code = "CH"; 137e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("You must provide a postal code, for example 2544." 138e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com " Don't know your postal code? Find it out" 139e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com " <a href=\"http://www.post.ch/db/owa/pv_plz_pack/pr_main\">" 140e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "here</a>.", 141e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 142e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com MISSING_REQUIRED_FIELD, true, true)); 14365a674171223dd2912f5e07bac3662e017fa1621rouslan@chromium.org EXPECT_EQ("You must provide a postal code, for example 2544.", 144e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 145e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com MISSING_REQUIRED_FIELD, true, false)); 146e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com EXPECT_EQ("You can't leave this empty.", 147e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 148e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com MISSING_REQUIRED_FIELD, false, false)); 149e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com EXPECT_EQ("You can't leave this empty.", 150e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 151e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com MISSING_REQUIRED_FIELD, false, true)); 152e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com} 153e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com 154e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.comTEST(LocalizationGetErrorMessageTest, MissingRequiredZipCode) { 155e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com Localization localization; 156e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com AddressData address; 157e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address.region_code = "US"; 158e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("You must provide a ZIP code, for example 95014." 159e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com " Don't know your ZIP code? Find it out" 160e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com " <a href=\"https://tools.usps.com/go/ZipLookupAction!" 161e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "input.action\">here</a>.", 162e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 163e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com MISSING_REQUIRED_FIELD, true, true)); 16465a674171223dd2912f5e07bac3662e017fa1621rouslan@chromium.org EXPECT_EQ("You must provide a ZIP code, for example 95014.", 165e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 166e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com MISSING_REQUIRED_FIELD, true, false)); 167e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com EXPECT_EQ("You can't leave this empty.", 168e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 169e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com MISSING_REQUIRED_FIELD, false, false)); 170e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com EXPECT_EQ("You can't leave this empty.", 171e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 172e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com MISSING_REQUIRED_FIELD, false, true)); 173e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com} 174e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com 175e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.comTEST(LocalizationGetErrorMessageTest, MissingRequiredOtherFields) { 176e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com Localization localization; 177e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com AddressData address; 178e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address.region_code = "US"; 179e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com std::vector<AddressField> other_fields; 180e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com other_fields.push_back(COUNTRY); 181e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com other_fields.push_back(ADMIN_AREA); 182e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com other_fields.push_back(LOCALITY); 183e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com other_fields.push_back(DEPENDENT_LOCALITY); 184e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com other_fields.push_back(SORTING_CODE); 185e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com other_fields.push_back(STREET_ADDRESS); 186b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org other_fields.push_back(ORGANIZATION); 187e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com other_fields.push_back(RECIPIENT); 188e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com for (std::vector<AddressField>::iterator it = other_fields.begin(); 189e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com it != other_fields.end(); it++) { 190e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com EXPECT_EQ("You can't leave this empty.", 191e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 192e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, *it, MISSING_REQUIRED_FIELD, true, true)); 193e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com EXPECT_EQ("You can't leave this empty.", 194e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 195e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, *it, MISSING_REQUIRED_FIELD, true, false)); 196e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com EXPECT_EQ("You can't leave this empty.", 197e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 198e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, *it, MISSING_REQUIRED_FIELD, false, false)); 199e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com EXPECT_EQ("You can't leave this empty.", 200e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 201e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, *it, MISSING_REQUIRED_FIELD, false, true)); 202e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com } 203e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com} 204e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com 205e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.comTEST(LocalizationGetErrorMessageTest, UnknownValueOtherFields) { 206e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com Localization localization; 207e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com AddressData address; 208e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address.region_code = "US"; 209e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address.administrative_area = "bad admin area"; 210e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address.locality = "bad locality"; 211e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address.dependent_locality = "bad dependent locality"; 212e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address.sorting_code = "bad sorting code"; 213e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com std::vector<std::string> address_line; 214e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address_line.push_back("bad address line 1"); 215e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address_line.push_back("bad address line 2"); 216e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address.address_line = address_line; 217b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org address.organization = "bad organization"; 218e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address.recipient = "bad recipient"; 219e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("US " 220e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 221e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 222e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, COUNTRY, UNKNOWN_VALUE, true, true)); 223e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("US " 224e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 225e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 226e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, COUNTRY, UNKNOWN_VALUE, true, false)); 227e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("US " 228e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 229e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 230e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, COUNTRY, UNKNOWN_VALUE, false, false)); 231e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("US " 232e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 233e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 234e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, COUNTRY, UNKNOWN_VALUE, false, true)); 235e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad admin area " 236e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 237e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 238e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, ADMIN_AREA, UNKNOWN_VALUE, true, true)); 239e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad admin area " 240e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 241e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 242e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, ADMIN_AREA, UNKNOWN_VALUE, true, false)); 243e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad admin area " 244e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 245e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 246e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, ADMIN_AREA, UNKNOWN_VALUE, false, false)); 247e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad admin area " 248e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 249e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 250e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, ADMIN_AREA, UNKNOWN_VALUE, false, true)); 251e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad locality " 252e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 253e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 254e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, LOCALITY, UNKNOWN_VALUE, true, true)); 255e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad locality " 256e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 257e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 258e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, LOCALITY, UNKNOWN_VALUE, true, false)); 259e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad locality " 260e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 261e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 262e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, LOCALITY, UNKNOWN_VALUE, false, false)); 263e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad locality " 264e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 265e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 266e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, LOCALITY, UNKNOWN_VALUE, false, true)); 267e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad dependent locality " 268e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 269e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 270e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, DEPENDENT_LOCALITY, UNKNOWN_VALUE, true, true)); 271e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad dependent locality " 272e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 273e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 274e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, DEPENDENT_LOCALITY, UNKNOWN_VALUE, true, false)); 275e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad dependent locality " 276e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 277e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 278e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, DEPENDENT_LOCALITY, UNKNOWN_VALUE, false, false)); 279e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad dependent locality " 280e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 281e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 282e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, DEPENDENT_LOCALITY, UNKNOWN_VALUE, false, true)); 283e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad sorting code " 284e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 285e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 286e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, SORTING_CODE, UNKNOWN_VALUE, true, true)); 287e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad sorting code " 288e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 289e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 290e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, SORTING_CODE, UNKNOWN_VALUE, true, false)); 291e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad sorting code " 292e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 293e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 294e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, SORTING_CODE, UNKNOWN_VALUE, false, false)); 295e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad sorting code " 296e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 297e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 298e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, SORTING_CODE, UNKNOWN_VALUE, false, true)); 299e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad address line 1 " 300e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 301e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 302e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, STREET_ADDRESS, UNKNOWN_VALUE, true, true)); 303e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad address line 1 " 304e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 305e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 306e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, STREET_ADDRESS, UNKNOWN_VALUE, true, false)); 307e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad address line 1 " 308e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 309e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 310e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, STREET_ADDRESS, UNKNOWN_VALUE, false, false)); 311e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad address line 1 " 312e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 313e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 314e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, STREET_ADDRESS, UNKNOWN_VALUE, false, true)); 315b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org EXPECT_EQ("bad organization " 316b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org "is not recognized as a known value for this field.", 317b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org localization.GetErrorMessage( 318b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org address, ORGANIZATION, UNKNOWN_VALUE, true, true)); 319b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org EXPECT_EQ("bad organization " 320b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org "is not recognized as a known value for this field.", 321b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org localization.GetErrorMessage( 322b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org address, ORGANIZATION, UNKNOWN_VALUE, true, false)); 323b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org EXPECT_EQ("bad organization " 324b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org "is not recognized as a known value for this field.", 325b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org localization.GetErrorMessage( 326b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org address, ORGANIZATION, UNKNOWN_VALUE, false, false)); 327b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org EXPECT_EQ("bad organization " 328b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org "is not recognized as a known value for this field.", 329b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org localization.GetErrorMessage( 330b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org address, ORGANIZATION, UNKNOWN_VALUE, false, true)); 331e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad recipient " 332e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 333e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 334e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, RECIPIENT, UNKNOWN_VALUE, true, true)); 335e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad recipient " 336e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 337e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 338e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, RECIPIENT, UNKNOWN_VALUE, true, false)); 339e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad recipient " 340e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 341e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 342e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, RECIPIENT, UNKNOWN_VALUE, false, false)); 343e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("bad recipient " 344e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "is not recognized as a known value for this field.", 345e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 346e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, RECIPIENT, UNKNOWN_VALUE, false, true)); 347e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com} 348e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com 349e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.comTEST(LocalizationGetErrorMessageTest, InvalidFormatPostalCode) { 350e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com Localization localization; 351e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com AddressData address; 352e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address.region_code = "CH"; 353e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("This postal code format is not recognized. Example " 354e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com "of a valid postal code: 2544." 355e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com " Don't know your postal code? Find it out" 356e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com " <a href=\"http://www.post.ch/db/owa/pv_plz_pack/pr_main\">" 357e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "here</a>.", 358e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 359e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com INVALID_FORMAT, true, true)); 360e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("This postal code format is not recognized. Example " 36165a674171223dd2912f5e07bac3662e017fa1621rouslan@chromium.org "of a valid postal code: 2544.", 362e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 363e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com INVALID_FORMAT, true, false)); 364e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com EXPECT_EQ("This postal code format is not recognized.", 365e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 366e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com INVALID_FORMAT, false, false)); 367e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com EXPECT_EQ("This postal code format is not recognized.", 368e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 369e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com INVALID_FORMAT, false, true)); 370e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com} 371e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com 372e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.comTEST(LocalizationGetErrorMessageTest, InvalidFormatZipCode) { 373e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com Localization localization; 374e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com AddressData address; 375e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address.region_code = "US"; 376e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("This ZIP code format is not recognized. Example of " 377e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com "a valid ZIP code: 95014." 378e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com " Don't know your ZIP code? Find it out" 379e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com " <a href=\"https://tools.usps.com/go/ZipLookupAction!" 380e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "input.action\">here</a>.", 381e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 382e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com INVALID_FORMAT, true, true)); 383e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("This ZIP code format is not recognized. Example of " 38465a674171223dd2912f5e07bac3662e017fa1621rouslan@chromium.org "a valid ZIP code: 95014.", 385e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 386e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com INVALID_FORMAT, true, false)); 387e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com EXPECT_EQ("This ZIP code format is not recognized.", 388e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 389e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com INVALID_FORMAT, false, false)); 390e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com EXPECT_EQ("This ZIP code format is not recognized.", 391e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 392e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com INVALID_FORMAT, false, true)); 393e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com} 394e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com 395e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.comTEST(LocalizationGetErrorMessageTest, MismatchingValuePostalCode) { 396e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com Localization localization; 397e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com AddressData address; 398e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address.region_code = "CH"; 399e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("This postal code does not appear to match the rest " 400e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com "of this address." 401e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com " Don't know your postal code? Find it out" 402e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com " <a href=\"http://www.post.ch/db/owa/pv_plz_pack/pr_main\">" 403e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "here</a>.", 404e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 405e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com MISMATCHING_VALUE, true, true)); 406e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("This postal code does not appear to match the rest " 407e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "of this address.", 408e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 409e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com MISMATCHING_VALUE, true, false)); 410e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("This postal code does not appear to match the rest " 411e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "of this address.", 412e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 413e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com MISMATCHING_VALUE, false, false)); 414e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("This postal code does not appear to match the rest " 415e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com "of this address." 416e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com " Don't know your postal code? Find it out" 417e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com " <a href=\"http://www.post.ch/db/owa/pv_plz_pack/pr_main\">" 418e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "here</a>.", 419e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 420e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com MISMATCHING_VALUE, false, true)); 421e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com} 422e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com 423e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.comTEST(LocalizationGetErrorMessageTest, MismatchingValueZipCode) { 424e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com Localization localization; 425e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com AddressData address; 426e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address.region_code = "US"; 427e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("This ZIP code does not appear to match the rest of " 428e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com "this address." 429e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com " Don't know your ZIP code? Find it out" 430e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com " <a href=\"https://tools.usps.com/go/ZipLookupAction!" 431e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "input.action\">here</a>.", 432e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 433e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com MISMATCHING_VALUE, true, true)); 434e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("This ZIP code does not appear to match the rest of " 435e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "this address.", 436e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 437e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com MISMATCHING_VALUE, true, false)); 438e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("This ZIP code does not appear to match the rest of " 439e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "this address.", 440e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 441e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com MISMATCHING_VALUE, false, false)); 442e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("This ZIP code does not appear to match the rest of " 443e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com "this address." 444e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com " Don't know your ZIP code? Find it out" 445e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com " <a href=\"https://tools.usps.com/go/ZipLookupAction!" 446e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com "input.action\">here</a>.", 447e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage(address, POSTAL_CODE, 448e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com MISMATCHING_VALUE, false, true)); 449e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com} 450e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com 451e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.comTEST(LocalizationGetErrorMessageTest, UsesPOBoxOtherFields) { 452e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com Localization localization; 453e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com AddressData address; 454e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address.region_code = "US"; 455e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com std::vector<AddressField> other_fields; 456e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com other_fields.push_back(COUNTRY); 457e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com other_fields.push_back(ADMIN_AREA); 458e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com other_fields.push_back(LOCALITY); 459e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com other_fields.push_back(DEPENDENT_LOCALITY); 460e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com other_fields.push_back(SORTING_CODE); 461e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com other_fields.push_back(STREET_ADDRESS); 462b52a2aeb63a28914850f3ed81cd7fd26ecdd4cdcrouslan@chromium.org other_fields.push_back(ORGANIZATION); 463e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com other_fields.push_back(RECIPIENT); 464e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com for (std::vector<AddressField>::iterator it = other_fields.begin(); 465e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com it != other_fields.end(); it++) { 466e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("This address line appears to contain a post " 467e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com "office box. Please use a street" 46891de79c2a6ae5ca94594a503020ee1f08c1e559frouslan@chromium.org " or building address.", 469e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 470e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, *it, USES_P_O_BOX, true, true)); 471e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("This address line appears to contain a post " 472e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com "office box. Please use a street" 47391de79c2a6ae5ca94594a503020ee1f08c1e559frouslan@chromium.org " or building address.", 474e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 475e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, *it, USES_P_O_BOX, true, false)); 476e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("This address line appears to contain a post " 477e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com "office box. Please use a street" 47891de79c2a6ae5ca94594a503020ee1f08c1e559frouslan@chromium.org " or building address.", 479e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 480e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, *it, USES_P_O_BOX, false, false)); 481e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com EXPECT_EQ("This address line appears to contain a post " 482e1083998394470811ecc73cc3263b0af82b0a7e1roubert@google.com "office box. Please use a street" 48391de79c2a6ae5ca94594a503020ee1f08c1e559frouslan@chromium.org " or building address.", 484e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com localization.GetErrorMessage( 485e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com address, *it, USES_P_O_BOX, false, true)); 486e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com } 487e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com} 488e66bf12636bf12067bd8b199b8e6c1035315d2aakeghani@google.com 489f80a0c70943fe82b268e14c4173a7f1ee2304ecbrouslan@chromium.org} // namespace 490