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

Side by Side Diff: chrome/browser/autofill/address_unittest.cc

Issue 6484022: Autofill i18n: Set postal code and state field labels based on the selected country. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Properly merged with ToT Created 9 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include <string>
6
7 #include "base/string16.h"
8 #include "base/utf_string_conversions.h"
9 #include "chrome/browser/autofill/address.h"
10 #include "chrome/browser/autofill/autofill_type.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 // Test that the getters and setters for country code are working.
14 TEST(AddressTest, CountryCode) {
15 Address address;
16 EXPECT_EQ(std::string(), address.country_code());
17
18 address.set_country_code("US");
19 EXPECT_EQ("US", address.country_code());
20
21 address.set_country_code("CA");
22 EXPECT_EQ("CA", address.country_code());
23 }
24
25 // Test that country codes are properly decoded as country names.
26 TEST(AddressTest, GetCountry) {
27 Address address;
28 EXPECT_EQ(std::string(), address.country_code());
29
30 // Make sure that nothing breaks when the country code is missing.
31 string16 country = address.GetFieldText(AutoFillType(ADDRESS_HOME_COUNTRY));
32 EXPECT_EQ(string16(), country);
33
34 address.set_country_code("US");
35 country = address.GetFieldText(AutoFillType(ADDRESS_HOME_COUNTRY));
36 EXPECT_EQ(ASCIIToUTF16("United States"), country);
37
38 address.set_country_code("CA");
39 country = address.GetFieldText(AutoFillType(ADDRESS_HOME_COUNTRY));
40 EXPECT_EQ(ASCIIToUTF16("Canada"), country);
41 }
42
43 // Test that we properly detect country codes appropriate for each country.
44 TEST(AddressTest, SetCountry) {
45 Address address;
46 EXPECT_EQ(std::string(), address.country_code());
47
48 // Test basic conversion.
49 address.SetInfo(AutoFillType(ADDRESS_HOME_COUNTRY),
50 ASCIIToUTF16("United States"));
51 string16 country = address.GetFieldText(AutoFillType(ADDRESS_HOME_COUNTRY));
52 EXPECT_EQ("US", address.country_code());
53 EXPECT_EQ(ASCIIToUTF16("United States"), country);
54
55 // Test basic synonym detection.
56 address.SetInfo(AutoFillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("USA"));
57 country = address.GetFieldText(AutoFillType(ADDRESS_HOME_COUNTRY));
58 EXPECT_EQ("US", address.country_code());
59 EXPECT_EQ(ASCIIToUTF16("United States"), country);
60
61 // Test case-insensitivity.
62 address.SetInfo(AutoFillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("canADA"));
63 country = address.GetFieldText(AutoFillType(ADDRESS_HOME_COUNTRY));
64 EXPECT_EQ("CA", address.country_code());
65 EXPECT_EQ(ASCIIToUTF16("Canada"), country);
66
67 // Test country code detection.
68 address.SetInfo(AutoFillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("JP"));
69 country = address.GetFieldText(AutoFillType(ADDRESS_HOME_COUNTRY));
70 EXPECT_EQ("JP", address.country_code());
71 EXPECT_EQ(ASCIIToUTF16("Japan"), country);
72
73 // Test that we ignore unknown countries.
74 address.SetInfo(AutoFillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("Unknown"));
75 country = address.GetFieldText(AutoFillType(ADDRESS_HOME_COUNTRY));
76 EXPECT_EQ(std::string(), address.country_code());
77 EXPECT_EQ(string16(), country);
78 }
79
80 // Test that we properly match typed values to stored country data.
81 TEST(AddressTest, IsCountry) {
82 Address address;
83 address.set_country_code("US");
84
85 const char* const kValidMatches[] = {
86 "United States",
87 "USA",
88 "US",
89 "United states",
90 "us"
91 };
92 for (size_t i = 0; i < arraysize(kValidMatches); ++i) {
93 SCOPED_TRACE(kValidMatches[i]);
94 FieldTypeSet possible_field_types;
95 address.GetPossibleFieldTypes(ASCIIToUTF16(kValidMatches[i]),
96 &possible_field_types);
97 ASSERT_EQ(1U, possible_field_types.size());
98 EXPECT_EQ(ADDRESS_HOME_COUNTRY, *possible_field_types.begin());
99 }
100
101 const char* const kInvalidMatches[] = {
102 "United",
103 "Garbage"
104 };
105 for (size_t i = 0; i < arraysize(kInvalidMatches); ++i) {
106 FieldTypeSet possible_field_types;
107 address.GetPossibleFieldTypes(ASCIIToUTF16(kInvalidMatches[i]),
108 &possible_field_types);
109 EXPECT_EQ(0U, possible_field_types.size());
110 }
111
112 // Make sure that garbage values don't match when the country code is empty.
113 address.set_country_code("");
114 EXPECT_EQ(std::string(), address.country_code());
115 FieldTypeSet possible_field_types;
116 address.GetPossibleFieldTypes(ASCIIToUTF16("Garbage"),
117 &possible_field_types);
118 EXPECT_EQ(0U, possible_field_types.size());
119 }
OLDNEW
« no previous file with comments | « chrome/browser/autofill/address.cc ('k') | chrome/browser/autofill/autofill_address_model_mac_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698