103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// found in the LICENSE file. 403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "chrome/browser/ui/webui/options/autofill_options_handler.h" 603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "base/values.h" 803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "components/autofill/core/browser/autofill_profile.h" 903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "components/autofill/core/browser/autofill_test_utils.h" 1003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 1103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 1203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace options { 1303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 1403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)TEST(AutofillOptionsHandlerTest, AddressToDictionary) { 1503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) autofill::AutofillProfile profile; 1603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) autofill::test::SetProfileInfoWithGuid(&profile, 1703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) "guid", 1803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) "First", 1903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) "Middle", 2003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) "Last", 2103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) "fml@example.com", 2203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) "Acme inc", 2303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) "123 Main", 2403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) "Apt 2", 2503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) "Laredo", 2603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) "TX", 2703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) "77300", 2803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) "US", 2903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) "832-555-1000"); 3003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 3103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) base::DictionaryValue dictionary; 3203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) options::AutofillOptionsHandler::AutofillProfileToDictionary(profile, 3303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) &dictionary); 3403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 3503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) std::string value; 3603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_TRUE(dictionary.GetString("addrLines", &value)); 3703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ("123 Main\nApt 2", value); 3803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_TRUE(dictionary.GetString("city", &value)); 3903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ("Laredo", value); 4003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_TRUE(dictionary.GetString("country", &value)); 4103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ("US", value); 4203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_TRUE(dictionary.GetString("dependentLocality", &value)); 4303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ("", value); 4403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_TRUE(dictionary.GetString("guid", &value)); 4503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ("guid", value); 4603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_TRUE(dictionary.GetString("languageCode", &value)); 4703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ("", value); 4803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_TRUE(dictionary.GetString("postalCode", &value)); 4903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ("77300", value); 5003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_TRUE(dictionary.GetString("sortingCode", &value)); 5103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ("", value); 5203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_TRUE(dictionary.GetString("state", &value)); 5303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ("TX", value); 5403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 5503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) base::ListValue* list_value; 5603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_TRUE(dictionary.GetList("email", &list_value)); 5703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ(1U, list_value->GetSize()); 5803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_TRUE(list_value->GetString(0, &value)); 5903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ("fml@example.com", value); 6003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 6103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_TRUE(dictionary.GetList("fullName", &list_value)); 6203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ(1U, list_value->GetSize()); 6303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_TRUE(list_value->GetString(0, &value)); 6403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ("First Middle Last", value); 6503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 6603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_TRUE(dictionary.GetList("phone", &list_value)); 6703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ(1U, list_value->GetSize()); 6803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_TRUE(list_value->GetString(0, &value)); 6903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) EXPECT_EQ("832-555-1000", value); 7003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 7103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 7203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} // namespace options 73