summaryrefslogtreecommitdiffstats
path: root/chromium/components/autofill/core/browser/address_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/autofill/core/browser/address_unittest.cc')
-rw-r--r--chromium/components/autofill/core/browser/address_unittest.cc350
1 files changed, 0 insertions, 350 deletions
diff --git a/chromium/components/autofill/core/browser/address_unittest.cc b/chromium/components/autofill/core/browser/address_unittest.cc
deleted file mode 100644
index 51795c7482c..00000000000
--- a/chromium/components/autofill/core/browser/address_unittest.cc
+++ /dev/null
@@ -1,350 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <string>
-
-#include "base/strings/string16.h"
-#include "base/strings/utf_string_conversions.h"
-#include "components/autofill/core/browser/address.h"
-#include "components/autofill/core/browser/autofill_type.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace autofill {
-
-// Test that country data can be properly returned as either a country code or a
-// localized country name.
-TEST(AddressTest, GetCountry) {
- Address address;
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_COUNTRY));
-
- // Make sure that nothing breaks when the country code is missing.
- base::string16 country =
- address.GetInfo(AutofillType(ADDRESS_HOME_COUNTRY), "en-US");
- EXPECT_EQ(base::string16(), country);
-
- address.SetInfo(
- AutofillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("US"), "en-US");
- country = address.GetInfo(AutofillType(ADDRESS_HOME_COUNTRY), "en-US");
- EXPECT_EQ(ASCIIToUTF16("United States"), country);
- country = address.GetInfo(
- AutofillType(HTML_TYPE_COUNTRY_NAME, HTML_MODE_NONE), "en-US");
- EXPECT_EQ(ASCIIToUTF16("United States"), country);
- country = address.GetInfo(
- AutofillType(HTML_TYPE_COUNTRY_CODE, HTML_MODE_NONE), "en-US");
- EXPECT_EQ(ASCIIToUTF16("US"), country);
-
- address.SetRawInfo(ADDRESS_HOME_COUNTRY, ASCIIToUTF16("CA"));
- country = address.GetInfo(AutofillType(ADDRESS_HOME_COUNTRY), "en-US");
- EXPECT_EQ(ASCIIToUTF16("Canada"), country);
- country = address.GetInfo(
- AutofillType(HTML_TYPE_COUNTRY_NAME, HTML_MODE_NONE), "en-US");
- EXPECT_EQ(ASCIIToUTF16("Canada"), country);
- country = address.GetInfo(
- AutofillType(HTML_TYPE_COUNTRY_CODE, HTML_MODE_NONE), "en-US");
- EXPECT_EQ(ASCIIToUTF16("CA"), country);
-}
-
-// Test that we properly detect country codes appropriate for each country.
-TEST(AddressTest, SetCountry) {
- Address address;
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_COUNTRY));
-
- // Test basic conversion.
- address.SetInfo(
- AutofillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("United States"),
- "en-US");
- base::string16 country =
- address.GetInfo(AutofillType(ADDRESS_HOME_COUNTRY), "en-US");
- EXPECT_EQ(ASCIIToUTF16("US"), address.GetRawInfo(ADDRESS_HOME_COUNTRY));
- EXPECT_EQ(ASCIIToUTF16("United States"), country);
-
- // Test basic synonym detection.
- address.SetInfo(
- AutofillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("USA"), "en-US");
- country = address.GetInfo(AutofillType(ADDRESS_HOME_COUNTRY), "en-US");
- EXPECT_EQ(ASCIIToUTF16("US"), address.GetRawInfo(ADDRESS_HOME_COUNTRY));
- EXPECT_EQ(ASCIIToUTF16("United States"), country);
-
- // Test case-insensitivity.
- address.SetInfo(
- AutofillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("canADA"), "en-US");
- country = address.GetInfo(AutofillType(ADDRESS_HOME_COUNTRY), "en-US");
- EXPECT_EQ(ASCIIToUTF16("CA"), address.GetRawInfo(ADDRESS_HOME_COUNTRY));
- EXPECT_EQ(ASCIIToUTF16("Canada"), country);
-
- // Test country code detection.
- address.SetInfo(
- AutofillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("JP"), "en-US");
- country = address.GetInfo(AutofillType(ADDRESS_HOME_COUNTRY), "en-US");
- EXPECT_EQ(ASCIIToUTF16("JP"), address.GetRawInfo(ADDRESS_HOME_COUNTRY));
- EXPECT_EQ(ASCIIToUTF16("Japan"), country);
-
- // Test that we ignore unknown countries.
- address.SetInfo(
- AutofillType(ADDRESS_HOME_COUNTRY), ASCIIToUTF16("Unknown"), "en-US");
- country = address.GetInfo(AutofillType(ADDRESS_HOME_COUNTRY), "en-US");
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_COUNTRY));
- EXPECT_EQ(base::string16(), country);
-
- // Test setting the country based on an HTML field type.
- AutofillType html_type_country_code =
- AutofillType(HTML_TYPE_COUNTRY_CODE, HTML_MODE_NONE);
- address.SetInfo(html_type_country_code, ASCIIToUTF16("US"), "en-US");
- country = address.GetInfo(AutofillType(ADDRESS_HOME_COUNTRY), "en-US");
- EXPECT_EQ(ASCIIToUTF16("US"), address.GetRawInfo(ADDRESS_HOME_COUNTRY));
- EXPECT_EQ(ASCIIToUTF16("United States"), country);
-
- // Test case-insensitivity when setting the country based on an HTML field
- // type.
- address.SetInfo(html_type_country_code, ASCIIToUTF16("cA"), "en-US");
- country = address.GetInfo(AutofillType(ADDRESS_HOME_COUNTRY), "en-US");
- EXPECT_EQ(ASCIIToUTF16("CA"), address.GetRawInfo(ADDRESS_HOME_COUNTRY));
- EXPECT_EQ(ASCIIToUTF16("Canada"), country);
-
- // Test setting the country based on invalid data with an HTML field type.
- address.SetInfo(html_type_country_code, ASCIIToUTF16("unknown"), "en-US");
- country = address.GetInfo(AutofillType(ADDRESS_HOME_COUNTRY), "en-US");
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_COUNTRY));
- EXPECT_EQ(base::string16(), country);
-}
-
-// Test that we properly match typed values to stored country data.
-TEST(AddressTest, IsCountry) {
- Address address;
- address.SetRawInfo(ADDRESS_HOME_COUNTRY, ASCIIToUTF16("US"));
-
- const char* const kValidMatches[] = {
- "United States",
- "USA",
- "US",
- "United states",
- "us"
- };
- for (size_t i = 0; i < arraysize(kValidMatches); ++i) {
- SCOPED_TRACE(kValidMatches[i]);
- ServerFieldTypeSet matching_types;
- address.GetMatchingTypes(ASCIIToUTF16(kValidMatches[i]), "US",
- &matching_types);
- ASSERT_EQ(1U, matching_types.size());
- EXPECT_EQ(ADDRESS_HOME_COUNTRY, *matching_types.begin());
- }
-
- const char* const kInvalidMatches[] = {
- "United",
- "Garbage"
- };
- for (size_t i = 0; i < arraysize(kInvalidMatches); ++i) {
- ServerFieldTypeSet matching_types;
- address.GetMatchingTypes(ASCIIToUTF16(kInvalidMatches[i]), "US",
- &matching_types);
- EXPECT_EQ(0U, matching_types.size());
- }
-
- // Make sure that garbage values don't match when the country code is empty.
- address.SetRawInfo(ADDRESS_HOME_COUNTRY, base::string16());
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_COUNTRY));
- ServerFieldTypeSet matching_types;
- address.GetMatchingTypes(ASCIIToUTF16("Garbage"), "US", &matching_types);
- EXPECT_EQ(0U, matching_types.size());
-}
-
-// Verifies that Address::GetInfo() correctly combines address lines.
-TEST(AddressTest, GetStreetAddress) {
- const AutofillType type = AutofillType(ADDRESS_HOME_STREET_ADDRESS);
-
- // Address has no address lines.
- Address address;
- EXPECT_TRUE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty());
- EXPECT_TRUE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty());
- EXPECT_EQ(base::string16(), address.GetInfo(type, "en-US"));
-
- // Address has only line 1.
- address.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Example Ave."));
- EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty());
- EXPECT_TRUE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty());
- EXPECT_EQ(ASCIIToUTF16("123 Example Ave."), address.GetInfo(type, "en-US"));
-
- // Address has only line 2.
- address.SetRawInfo(ADDRESS_HOME_LINE1, base::string16());
- address.SetRawInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Apt 42."));
- EXPECT_TRUE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty());
- EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty());
- EXPECT_EQ(ASCIIToUTF16("\nApt 42."), address.GetInfo(type, "en-US"));
-
- // Address has lines 1 and 2.
- address.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Example Ave."));
- address.SetRawInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Apt. 42"));
- EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty());
- EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty());
- EXPECT_EQ(ASCIIToUTF16("123 Example Ave.\n"
- "Apt. 42"),
- address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS));
- EXPECT_EQ(ASCIIToUTF16("123 Example Ave.\n"
- "Apt. 42"),
- address.GetInfo(type, "en-US"));
-}
-
-// Verifies that overwriting an address with N lines with one that has fewer
-// than N lines does not result in an address with blank lines at the end.
-TEST(AddressTest, GetStreetAddressAfterOverwritingLongAddressWithShorterOne) {
- // Start with an address that has two lines.
- Address address;
- address.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Example Ave."));
- address.SetRawInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Apt. 42"));
-
- // Now clear out the second address line.
- address.SetRawInfo(ADDRESS_HOME_LINE2, base::string16());
- EXPECT_EQ(ASCIIToUTF16("123 Example Ave."),
- address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS));
-
- // Now clear out the first address line as well.
- address.SetRawInfo(ADDRESS_HOME_LINE1, base::string16());
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS));
-}
-
-// Verifies that Address::SetRawInfo() is able to split address lines correctly.
-TEST(AddressTest, SetRawStreetAddress) {
- const base::string16 empty_street_address;
- const base::string16 short_street_address = ASCIIToUTF16("456 Nowhere Ln.");
- const base::string16 long_street_address =
- ASCIIToUTF16("123 Example Ave.\n"
- "Apt. 42\n"
- "(The one with the blue door)");
-
- Address address;
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1));
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2));
-
- address.SetRawInfo(ADDRESS_HOME_STREET_ADDRESS, long_street_address);
- EXPECT_EQ(ASCIIToUTF16("123 Example Ave."),
- address.GetRawInfo(ADDRESS_HOME_LINE1));
- EXPECT_EQ(ASCIIToUTF16("Apt. 42"), address.GetRawInfo(ADDRESS_HOME_LINE2));
- EXPECT_EQ(long_street_address,
- address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS));
-
- // A short address should clear out unused address lines.
- address.SetRawInfo(ADDRESS_HOME_STREET_ADDRESS, short_street_address);
- EXPECT_EQ(ASCIIToUTF16("456 Nowhere Ln."),
- address.GetRawInfo(ADDRESS_HOME_LINE1));
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2));
-
- // An empty address should clear out all address lines.
- address.SetRawInfo(ADDRESS_HOME_STREET_ADDRESS, long_street_address);
- address.SetRawInfo(ADDRESS_HOME_STREET_ADDRESS, empty_street_address);
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1));
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2));
-}
-
-// Verifies that Address::SetInfo() rejects setting data for
-// ADDRESS_HOME_STREET_ADDRESS without newlines, as there is no good general way
-// to parse that data into the consituent address lines. Addresses without
-// newlines should be set properly.
-TEST(AddressTest, SetStreetAddress) {
- const base::string16 empty_street_address;
- const base::string16 one_line_street_address =
- ASCIIToUTF16("456 New St., Apt. 17");
- const base::string16 multi_line_street_address =
- ASCIIToUTF16("789 Fancy Pkwy.\n"
- "Unit 3.14");
- const AutofillType type = AutofillType(ADDRESS_HOME_STREET_ADDRESS);
-
- // Start with a non-empty address.
- Address address;
- address.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Example Ave."));
- address.SetRawInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Apt. 42"));
- EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty());
- EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty());
-
- // Attempting to set a one-line address should fail, as the single line might
- // actually represent multiple logical lines, combined into one due to the
- // user having to work around constraints imposed by the website.
- EXPECT_FALSE(address.SetInfo(type, one_line_street_address, "en-US"));
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1));
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2));
-
- // Attempting to set a multi-line address should succeed.
- EXPECT_TRUE(address.SetInfo(type, multi_line_street_address, "en-US"));
- EXPECT_EQ(ASCIIToUTF16("789 Fancy Pkwy."),
- address.GetRawInfo(ADDRESS_HOME_LINE1));
- EXPECT_EQ(ASCIIToUTF16("Unit 3.14"), address.GetRawInfo(ADDRESS_HOME_LINE2));
-
- // Attempting to set an empty address should also succeed, and clear out the
- // previously stored data.
- EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty());
- EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty());
- EXPECT_TRUE(address.SetInfo(type, empty_street_address, "en-US"));
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1));
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2));
-}
-
-// Verifies that Address::SetInfio() rejects setting data for
-// ADDRESS_HOME_STREET_ADDRESS if the data has any interior blank lines.
-TEST(AddressTest, SetStreetAddressRejectsAddressesWithInteriorBlankLines) {
- // Start with a non-empty address.
- Address address;
- address.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Example Ave."));
- address.SetRawInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Apt. 42"));
- EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty());
- EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty());
- EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS).empty());
-
- // Attempting to set an address with interior blank lines should fail, and
- // clear out the previously stored address.
- EXPECT_FALSE(address.SetInfo(AutofillType(ADDRESS_HOME_STREET_ADDRESS),
- ASCIIToUTF16("Address line 1\n"
- "\n"
- "Address line 3"),
- "en-US"));
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1));
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2));
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS));
-}
-
-// Verifies that Address::SetInfio() rejects setting data for
-// ADDRESS_HOME_STREET_ADDRESS if the data has any leading blank lines.
-TEST(AddressTest, SetStreetAddressRejectsAddressesWithLeadingBlankLines) {
- // Start with a non-empty address.
- Address address;
- address.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Example Ave."));
- address.SetRawInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Apt. 42"));
- EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty());
- EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty());
- EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS).empty());
-
- // Attempting to set an address with leading blank lines should fail, and
- // clear out the previously stored address.
- EXPECT_FALSE(address.SetInfo(AutofillType(ADDRESS_HOME_STREET_ADDRESS),
- ASCIIToUTF16("\n"
- "Address line 2"
- "Address line 3"),
- "en-US"));
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1));
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2));
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS));
-}
-
-// Verifies that Address::SetInfio() rejects setting data for
-// ADDRESS_HOME_STREET_ADDRESS if the data has any trailing blank lines.
-TEST(AddressTest, SetStreetAddressRejectsAddressesWithTrailingBlankLines) {
- // Start with a non-empty address.
- Address address;
- address.SetRawInfo(ADDRESS_HOME_LINE1, ASCIIToUTF16("123 Example Ave."));
- address.SetRawInfo(ADDRESS_HOME_LINE2, ASCIIToUTF16("Apt. 42"));
- EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE1).empty());
- EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_LINE2).empty());
- EXPECT_FALSE(address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS).empty());
-
- // Attempting to set an address with leading blank lines should fail, and
- // clear out the previously stored address.
- EXPECT_FALSE(address.SetInfo(AutofillType(ADDRESS_HOME_STREET_ADDRESS),
- ASCIIToUTF16("Address line 1"
- "Address line 2"
- "\n"),
- "en-US"));
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE1));
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_LINE2));
- EXPECT_EQ(base::string16(), address.GetRawInfo(ADDRESS_HOME_STREET_ADDRESS));
-}
-
-} // namespace autofill