autofill_dialog_i18n_input_unittest.cc revision effb81e5f8246d0db0270817048dc992db66e9fb
146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// found in the LICENSE file. 446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "chrome/browser/ui/autofill/autofill_dialog_i18n_input.h" 646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "components/autofill/core/browser/field_types.h" 846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "third_party/libaddressinput/chromium/cpp/include/libaddressinput/address_ui.h" 1046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace autofill { 1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace i18ninput { 1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace { 1546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if defined(OS_MACOSX) 1746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)const size_t kNumberOfAddressLinesUS = 7; 1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#else 1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)const size_t kNumberOfAddressLinesUS = 6; 2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif 2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} // namespace 2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)TEST(AutofillDialogI18nInput, USShippingAddress) { 2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DetailInputs inputs; 2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) BuildAddressInputs(common::ADDRESS_TYPE_SHIPPING, "US", &inputs); 2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ASSERT_EQ(kNumberOfAddressLinesUS, inputs.size()); 2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_EQ(NAME_FULL, inputs[0].type); 3046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_EQ(ADDRESS_HOME_COUNTRY, inputs[kNumberOfAddressLinesUS - 1].type); 3146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 3246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)TEST(AutofillDialogI18nInput, USBillingAddress) { 3446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DetailInputs inputs; 3546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) BuildAddressInputs(common::ADDRESS_TYPE_BILLING, "US", &inputs); 3646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ASSERT_EQ(kNumberOfAddressLinesUS, inputs.size()); 385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EXPECT_EQ(NAME_BILLING_FULL, inputs[0].type); 395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EXPECT_EQ(ADDRESS_BILLING_COUNTRY, inputs[kNumberOfAddressLinesUS - 1].type); 405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 4146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 4246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)TEST(AutofillDialogI18nInput, USCityStateAndZipCodeShareInputRow) { 4346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DetailInputs inputs; 4446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) BuildAddressInputs(common::ADDRESS_TYPE_SHIPPING, "US", &inputs); 4546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ASSERT_EQ(kNumberOfAddressLinesUS, inputs.size()); 4646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 4746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if defined(OS_MACOSX) 4846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) int input_index = 3; 4946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#else 5046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) int input_index = 2; 5146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif 5246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 5346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) // Inputs before or after [ City ] [ State ] [ Zip ] should be on other lines. 5446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_NE(inputs[input_index - 1].length, DetailInput::SHORT); 5546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 5646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const DetailInput& city = inputs[input_index++]; 5746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_EQ(ADDRESS_HOME_CITY, city.type); 5846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_EQ(city.length, DetailInput::SHORT); 5946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 6046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const DetailInput& state = inputs[input_index++]; 6146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_EQ(ADDRESS_HOME_STATE, state.type); 6246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_EQ(state.length, DetailInput::SHORT); 6346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 6446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const DetailInput& zip = inputs[input_index++]; 6546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_EQ(ADDRESS_HOME_ZIP, zip.type); 6646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_EQ(zip.length, DetailInput::SHORT); 6746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 6846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_NE(inputs[input_index].length, DetailInput::SHORT); 6946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 7046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 7146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)TEST(AutofillDialogI18nInput, IvoryCoastNoStreetLine2) { 7246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DetailInputs inputs; 7346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) BuildAddressInputs(common::ADDRESS_TYPE_SHIPPING, "CI", &inputs); 7446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) for (size_t i = 0; i < inputs.size(); ++i) { 7546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_NE(ADDRESS_HOME_LINE2, inputs[i].type); 7646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) } 7746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 7846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 7946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)TEST(AutofillDialogI18nInput, FullySupportedCountries) { 8046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) const std::vector<std::string>& regions = 8146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ::i18n::addressinput::GetRegionCodes(); 8246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) for (size_t i = 0; i < regions.size(); ++i) { 8346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) bool should_be_supported = !(regions[i] == "KR" || regions[i] == "CN"); 8446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) EXPECT_EQ(should_be_supported, CountryIsFullySupported(regions[i])); 8546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) } 8646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 8746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 8846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} // namespace i18ninput 8946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} // namespace autofill 9046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)