| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
| 11 #include "base/strings/utf_string_conversions.h" | 11 #include "base/strings/utf_string_conversions.h" |
| 12 #include "components/autofill/core/browser/address.h" | 12 #include "components/autofill/core/browser/address.h" |
| 13 #include "components/autofill/core/browser/autofill_type.h" | 13 #include "components/autofill/core/browser/autofill_type.h" |
| 14 #include "components/autofill/core/browser/country_names.h" |
| 14 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
| 15 | 16 |
| 16 using base::ASCIIToUTF16; | 17 using base::ASCIIToUTF16; |
| 17 | 18 |
| 18 namespace autofill { | 19 namespace autofill { |
| 19 | 20 |
| 21 class AddressTest : public testing::Test { |
| 22 public: |
| 23 AddressTest() { CountryNames::SetLocaleString("en-US"); } |
| 24 }; |
| 25 |
| 20 // Test that country data can be properly returned as either a country code or a | 26 // Test that country data can be properly returned as either a country code or a |
| 21 // localized country name. | 27 // localized country name. |
| 22 TEST(AddressTest, GetCountry) { | 28 TEST_F(AddressTest, GetCountry) { |
| 23 Address address; | 29 Address address; |
| 24 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_COUNTRY)); | 30 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_COUNTRY)); |
| 25 | 31 |
| 26 // Make sure that nothing breaks when the country code is missing. | 32 // Make sure that nothing breaks when the country code is missing. |
| 27 base::string16 country = | 33 base::string16 country = |
| 28 address.GetInfo(AutofillType(ADDRESS_HOME_COUNTRY), "en-US"); | 34 address.GetInfo(AutofillType(ADDRESS_HOME_COUNTRY), "en-US"); |
| 29 EXPECT_EQ(base::string16(), country); | 35 EXPECT_EQ(base::string16(), country); |
| 30 | 36 |
| 31 address.SetInfo( | 37 address.SetInfo( |
| 32 AutofillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("US"), "en-US"); | 38 AutofillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("US"), "en-US"); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 44 EXPECT_EQ(ASCIIToUTF16("Canada"), country); | 50 EXPECT_EQ(ASCIIToUTF16("Canada"), country); |
| 45 country = address.GetInfo( | 51 country = address.GetInfo( |
| 46 AutofillType(HTML_TYPE_COUNTRY_NAME, HTML_MODE_NONE), "en-US"); | 52 AutofillType(HTML_TYPE_COUNTRY_NAME, HTML_MODE_NONE), "en-US"); |
| 47 EXPECT_EQ(ASCIIToUTF16("Canada"), country); | 53 EXPECT_EQ(ASCIIToUTF16("Canada"), country); |
| 48 country = address.GetInfo( | 54 country = address.GetInfo( |
| 49 AutofillType(HTML_TYPE_COUNTRY_CODE, HTML_MODE_NONE), "en-US"); | 55 AutofillType(HTML_TYPE_COUNTRY_CODE, HTML_MODE_NONE), "en-US"); |
| 50 EXPECT_EQ(ASCIIToUTF16("CA"), country); | 56 EXPECT_EQ(ASCIIToUTF16("CA"), country); |
| 51 } | 57 } |
| 52 | 58 |
| 53 // Test that we properly detect country codes appropriate for each country. | 59 // Test that we properly detect country codes appropriate for each country. |
| 54 TEST(AddressTest, SetCountry) { | 60 TEST_F(AddressTest, SetCountry) { |
| 55 Address address; | 61 Address address; |
| 56 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_COUNTRY)); | 62 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_COUNTRY)); |
| 57 | 63 |
| 58 // Test basic conversion. | 64 // Test basic conversion. |
| 59 address.SetInfo( | 65 address.SetInfo( |
| 60 AutofillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("United States"), | 66 AutofillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("United States"), |
| 61 "en-US"); | 67 "en-US"); |
| 62 base::string16 country = | 68 base::string16 country = |
| 63 address.GetInfo(AutofillType(ADDRESS_HOME_COUNTRY), "en-US"); | 69 address.GetInfo(AutofillType(ADDRESS_HOME_COUNTRY), "en-US"); |
| 64 EXPECT_EQ(ASCIIToUTF16("US"), address.GetRawInfo(ADDRESS_HOME_COUNTRY)); | 70 EXPECT_EQ(ASCIIToUTF16("US"), address.GetRawInfo(ADDRESS_HOME_COUNTRY)); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 EXPECT_EQ(ASCIIToUTF16("Canada"), country); | 114 EXPECT_EQ(ASCIIToUTF16("Canada"), country); |
| 109 | 115 |
| 110 // Test setting the country based on invalid data with an HTML field type. | 116 // Test setting the country based on invalid data with an HTML field type. |
| 111 address.SetInfo(html_type_country_code, ASCIIToUTF16("unknown"), "en-US"); | 117 address.SetInfo(html_type_country_code, ASCIIToUTF16("unknown"), "en-US"); |
| 112 country = address.GetInfo(AutofillType(ADDRESS_HOME_COUNTRY), "en-US"); | 118 country = address.GetInfo(AutofillType(ADDRESS_HOME_COUNTRY), "en-US"); |
| 113 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_COUNTRY)); | 119 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_COUNTRY)); |
| 114 EXPECT_EQ(base::string16(), country); | 120 EXPECT_EQ(base::string16(), country); |
| 115 } | 121 } |
| 116 | 122 |
| 117 // Test that we properly match typed values to stored country data. | 123 // Test that we properly match typed values to stored country data. |
| 118 TEST(AddressTest, IsCountry) { | 124 TEST_F(AddressTest, IsCountry) { |
| 119 Address address; | 125 Address address; |
| 120 address.SetRawInfo(ADDRESS_HOME_COUNTRY, ASCIIToUTF16("US")); | 126 address.SetRawInfo(ADDRESS_HOME_COUNTRY, ASCIIToUTF16("US")); |
| 121 | 127 |
| 122 const char* const kValidMatches[] = { | 128 const char* const kValidMatches[] = { |
| 123 "United States", | 129 "United States", |
| 124 "USA", | 130 "USA", |
| 125 "US", | 131 "US", |
| 126 "United states", | 132 "United states", |
| 127 "us" | 133 "us" |
| 128 }; | 134 }; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 148 | 154 |
| 149 // Make sure that garbage values don't match when the country code is empty. | 155 // Make sure that garbage values don't match when the country code is empty. |
| 150 address.SetRawInfo(ADDRESS_HOME_COUNTRY, base::string16()); | 156 address.SetRawInfo(ADDRESS_HOME_COUNTRY, base::string16()); |
| 151 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_COUNTRY)); | 157 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_COUNTRY)); |
| 152 ServerFieldTypeSet matching_types; | 158 ServerFieldTypeSet matching_types; |
| 153 address.GetMatchingTypes(ASCIIToUTF16("Garbage"), "US", &matching_types); | 159 address.GetMatchingTypes(ASCIIToUTF16("Garbage"), "US", &matching_types); |
| 154 EXPECT_EQ(0U, matching_types.size()); | 160 EXPECT_EQ(0U, matching_types.size()); |
| 155 } | 161 } |
| 156 | 162 |
| 157 // Verifies that Address::GetInfo() correctly combines address lines. | 163 // Verifies that Address::GetInfo() correctly combines address lines. |
| 158 TEST(AddressTest, GetStreetAddress) { | 164 TEST_F(AddressTest, GetStreetAddress) { |
| 159 const AutofillType type = AutofillType(ADDRESS_HOME_STREET_ADDRESS); | 165 const AutofillType type = AutofillType(ADDRESS_HOME_STREET_ADDRESS); |
| 160 | 166 |
| 161 // Address has no address lines. | 167 // Address has no address lines. |
| 162 Address address; | 168 Address address; |
| 163 EXPECT_TRUE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty()); | 169 EXPECT_TRUE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty()); |
| 164 EXPECT_TRUE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty()); | 170 EXPECT_TRUE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty()); |
| 165 EXPECT_TRUE(address.GetRawInfo(ADDRESS_HOME_LINE3).empty()); | 171 EXPECT_TRUE(address.GetRawInfo(ADDRESS_HOME_LINE3).empty()); |
| 166 EXPECT_EQ(base::string16(), address.GetInfo(type, "en-US")); | 172 EXPECT_EQ(base::string16(), address.GetInfo(type, "en-US")); |
| 167 | 173 |
| 168 // Address has only line 1. | 174 // Address has only line 1. |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 208 EXPECT_TRUE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty()); | 214 EXPECT_TRUE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty()); |
| 209 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE3).empty()); | 215 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE3).empty()); |
| 210 EXPECT_EQ(ASCIIToUTF16("123 Example Ave.\n" | 216 EXPECT_EQ(ASCIIToUTF16("123 Example Ave.\n" |
| 211 "\n" | 217 "\n" |
| 212 "Living room couch"), | 218 "Living room couch"), |
| 213 address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS)); | 219 address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS)); |
| 214 } | 220 } |
| 215 | 221 |
| 216 // Verifies that overwriting an address with N lines with one that has fewer | 222 // Verifies that overwriting an address with N lines with one that has fewer |
| 217 // than N lines does not result in an address with blank lines at the end. | 223 // than N lines does not result in an address with blank lines at the end. |
| 218 TEST(AddressTest, GetStreetAddressAfterOverwritingLongAddressWithShorterOne) { | 224 TEST_F(AddressTest, GetStreetAddressAfterOverwritingLongAddressWithShorterOne) { |
| 219 // Start with an address that has two lines. | 225 // Start with an address that has two lines. |
| 220 Address address; | 226 Address address; |
| 221 address.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Example Ave.")); | 227 address.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Example Ave.")); |
| 222 address.SetRawInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Apt. 42")); | 228 address.SetRawInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Apt. 42")); |
| 223 | 229 |
| 224 // Now clear out the second address line. | 230 // Now clear out the second address line. |
| 225 address.SetRawInfo(ADDRESS_HOME_LINE2, base::string16()); | 231 address.SetRawInfo(ADDRESS_HOME_LINE2, base::string16()); |
| 226 EXPECT_EQ(ASCIIToUTF16("123 Example Ave."), | 232 EXPECT_EQ(ASCIIToUTF16("123 Example Ave."), |
| 227 address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS)); | 233 address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS)); |
| 228 | 234 |
| 229 // Now clear out the first address line as well. | 235 // Now clear out the first address line as well. |
| 230 address.SetRawInfo(ADDRESS_HOME_LINE1, base::string16()); | 236 address.SetRawInfo(ADDRESS_HOME_LINE1, base::string16()); |
| 231 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS)); | 237 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS)); |
| 232 } | 238 } |
| 233 | 239 |
| 234 // Verifies that Address::SetRawInfo() is able to split address lines correctly. | 240 // Verifies that Address::SetRawInfo() is able to split address lines correctly. |
| 235 TEST(AddressTest, SetRawStreetAddress) { | 241 TEST_F(AddressTest, SetRawStreetAddress) { |
| 236 const base::string16 empty_street_address; | 242 const base::string16 empty_street_address; |
| 237 const base::string16 short_street_address = ASCIIToUTF16("456 Nowhere Ln."); | 243 const base::string16 short_street_address = ASCIIToUTF16("456 Nowhere Ln."); |
| 238 const base::string16 long_street_address = | 244 const base::string16 long_street_address = |
| 239 ASCIIToUTF16("123 Example Ave.\n" | 245 ASCIIToUTF16("123 Example Ave.\n" |
| 240 "Apt. 42\n" | 246 "Apt. 42\n" |
| 241 "(The one with the blue door)"); | 247 "(The one with the blue door)"); |
| 242 | 248 |
| 243 Address address; | 249 Address address; |
| 244 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1)); | 250 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1)); |
| 245 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2)); | 251 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2)); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 258 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2)); | 264 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2)); |
| 259 | 265 |
| 260 // An empty address should clear out all address lines. | 266 // An empty address should clear out all address lines. |
| 261 address.SetRawInfo(ADDRESS_HOME_STREET_ADDRESS, long_street_address); | 267 address.SetRawInfo(ADDRESS_HOME_STREET_ADDRESS, long_street_address); |
| 262 address.SetRawInfo(ADDRESS_HOME_STREET_ADDRESS, empty_street_address); | 268 address.SetRawInfo(ADDRESS_HOME_STREET_ADDRESS, empty_street_address); |
| 263 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1)); | 269 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1)); |
| 264 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2)); | 270 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2)); |
| 265 } | 271 } |
| 266 | 272 |
| 267 // Street addresses should be set properly. | 273 // Street addresses should be set properly. |
| 268 TEST(AddressTest, SetStreetAddress) { | 274 TEST_F(AddressTest, SetStreetAddress) { |
| 269 const base::string16 empty_street_address; | 275 const base::string16 empty_street_address; |
| 270 const base::string16 multi_line_street_address = | 276 const base::string16 multi_line_street_address = |
| 271 ASCIIToUTF16("789 Fancy Pkwy.\n" | 277 ASCIIToUTF16("789 Fancy Pkwy.\n" |
| 272 "Unit 3.14\n" | 278 "Unit 3.14\n" |
| 273 "Box 9"); | 279 "Box 9"); |
| 274 const base::string16 single_line_street_address = | 280 const base::string16 single_line_street_address = |
| 275 ASCIIToUTF16("123 Main, Apt 7"); | 281 ASCIIToUTF16("123 Main, Apt 7"); |
| 276 const AutofillType type = AutofillType(ADDRESS_HOME_STREET_ADDRESS); | 282 const AutofillType type = AutofillType(ADDRESS_HOME_STREET_ADDRESS); |
| 277 | 283 |
| 278 // Start with a non-empty address. | 284 // Start with a non-empty address. |
| (...skipping 25 matching lines...) Expand all Loading... |
| 304 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty()); | 310 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty()); |
| 305 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE3).empty()); | 311 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE3).empty()); |
| 306 EXPECT_TRUE(address.SetInfo(type, empty_street_address, "en-US")); | 312 EXPECT_TRUE(address.SetInfo(type, empty_street_address, "en-US")); |
| 307 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1)); | 313 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1)); |
| 308 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2)); | 314 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2)); |
| 309 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE3)); | 315 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE3)); |
| 310 } | 316 } |
| 311 | 317 |
| 312 // Verifies that Address::SetInfio() rejects setting data for | 318 // Verifies that Address::SetInfio() rejects setting data for |
| 313 // ADDRESS_HOME_STREET_ADDRESS if the data has any interior blank lines. | 319 // ADDRESS_HOME_STREET_ADDRESS if the data has any interior blank lines. |
| 314 TEST(AddressTest, SetStreetAddressRejectsAddressesWithInteriorBlankLines) { | 320 TEST_F(AddressTest, SetStreetAddressRejectsAddressesWithInteriorBlankLines) { |
| 315 // Start with a non-empty address. | 321 // Start with a non-empty address. |
| 316 Address address; | 322 Address address; |
| 317 address.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Example Ave.")); | 323 address.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Example Ave.")); |
| 318 address.SetRawInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Apt. 42")); | 324 address.SetRawInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Apt. 42")); |
| 319 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty()); | 325 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty()); |
| 320 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty()); | 326 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty()); |
| 321 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS).empty()); | 327 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS).empty()); |
| 322 | 328 |
| 323 // Attempting to set an address with interior blank lines should fail, and | 329 // Attempting to set an address with interior blank lines should fail, and |
| 324 // clear out the previously stored address. | 330 // clear out the previously stored address. |
| 325 EXPECT_FALSE(address.SetInfo(AutofillType(ADDRESS_HOME_STREET_ADDRESS), | 331 EXPECT_FALSE(address.SetInfo(AutofillType(ADDRESS_HOME_STREET_ADDRESS), |
| 326 ASCIIToUTF16("Address line 1\n" | 332 ASCIIToUTF16("Address line 1\n" |
| 327 "\n" | 333 "\n" |
| 328 "Address line 3"), | 334 "Address line 3"), |
| 329 "en-US")); | 335 "en-US")); |
| 330 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1)); | 336 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1)); |
| 331 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2)); | 337 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2)); |
| 332 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS)); | 338 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS)); |
| 333 } | 339 } |
| 334 | 340 |
| 335 // Verifies that Address::SetInfio() rejects setting data for | 341 // Verifies that Address::SetInfio() rejects setting data for |
| 336 // ADDRESS_HOME_STREET_ADDRESS if the data has any leading blank lines. | 342 // ADDRESS_HOME_STREET_ADDRESS if the data has any leading blank lines. |
| 337 TEST(AddressTest, SetStreetAddressRejectsAddressesWithLeadingBlankLines) { | 343 TEST_F(AddressTest, SetStreetAddressRejectsAddressesWithLeadingBlankLines) { |
| 338 // Start with a non-empty address. | 344 // Start with a non-empty address. |
| 339 Address address; | 345 Address address; |
| 340 address.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Example Ave.")); | 346 address.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Example Ave.")); |
| 341 address.SetRawInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Apt. 42")); | 347 address.SetRawInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Apt. 42")); |
| 342 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty()); | 348 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty()); |
| 343 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty()); | 349 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty()); |
| 344 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS).empty()); | 350 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS).empty()); |
| 345 | 351 |
| 346 // Attempting to set an address with leading blank lines should fail, and | 352 // Attempting to set an address with leading blank lines should fail, and |
| 347 // clear out the previously stored address. | 353 // clear out the previously stored address. |
| 348 EXPECT_FALSE(address.SetInfo(AutofillType(ADDRESS_HOME_STREET_ADDRESS), | 354 EXPECT_FALSE(address.SetInfo(AutofillType(ADDRESS_HOME_STREET_ADDRESS), |
| 349 ASCIIToUTF16("\n" | 355 ASCIIToUTF16("\n" |
| 350 "Address line 2" | 356 "Address line 2" |
| 351 "Address line 3"), | 357 "Address line 3"), |
| 352 "en-US")); | 358 "en-US")); |
| 353 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1)); | 359 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1)); |
| 354 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2)); | 360 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2)); |
| 355 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS)); | 361 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS)); |
| 356 } | 362 } |
| 357 | 363 |
| 358 // Verifies that Address::SetInfio() rejects setting data for | 364 // Verifies that Address::SetInfio() rejects setting data for |
| 359 // ADDRESS_HOME_STREET_ADDRESS if the data has any trailing blank lines. | 365 // ADDRESS_HOME_STREET_ADDRESS if the data has any trailing blank lines. |
| 360 TEST(AddressTest, SetStreetAddressRejectsAddressesWithTrailingBlankLines) { | 366 TEST_F(AddressTest, SetStreetAddressRejectsAddressesWithTrailingBlankLines) { |
| 361 // Start with a non-empty address. | 367 // Start with a non-empty address. |
| 362 Address address; | 368 Address address; |
| 363 address.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Example Ave.")); | 369 address.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Example Ave.")); |
| 364 address.SetRawInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Apt. 42")); | 370 address.SetRawInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Apt. 42")); |
| 365 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty()); | 371 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty()); |
| 366 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty()); | 372 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty()); |
| 367 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS).empty()); | 373 EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS).empty()); |
| 368 | 374 |
| 369 // Attempting to set an address with leading blank lines should fail, and | 375 // Attempting to set an address with leading blank lines should fail, and |
| 370 // clear out the previously stored address. | 376 // clear out the previously stored address. |
| 371 EXPECT_FALSE(address.SetInfo(AutofillType(ADDRESS_HOME_STREET_ADDRESS), | 377 EXPECT_FALSE(address.SetInfo(AutofillType(ADDRESS_HOME_STREET_ADDRESS), |
| 372 ASCIIToUTF16("Address line 1" | 378 ASCIIToUTF16("Address line 1" |
| 373 "Address line 2" | 379 "Address line 2" |
| 374 "\n"), | 380 "\n"), |
| 375 "en-US")); | 381 "en-US")); |
| 376 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1)); | 382 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1)); |
| 377 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2)); | 383 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2)); |
| 378 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS)); | 384 EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS)); |
| 379 } | 385 } |
| 380 | 386 |
| 381 } // namespace autofill | 387 } // namespace autofill |
| OLD | NEW |