Home | History | Annotate | Download | only in options
      1 // Copyright 2014 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 "chrome/browser/ui/webui/options/autofill_options_handler.h"
      6 
      7 #include "base/values.h"
      8 #include "components/autofill/core/browser/autofill_profile.h"
      9 #include "components/autofill/core/browser/autofill_test_utils.h"
     10 #include "testing/gtest/include/gtest/gtest.h"
     11 
     12 namespace options {
     13 
     14 TEST(AutofillOptionsHandlerTest, AddressToDictionary) {
     15   autofill::AutofillProfile profile;
     16   autofill::test::SetProfileInfoWithGuid(&profile,
     17                                          "guid",
     18                                          "First",
     19                                          "Middle",
     20                                          "Last",
     21                                          "fml (at) example.com",
     22                                          "Acme inc",
     23                                          "123 Main",
     24                                          "Apt 2",
     25                                          "Laredo",
     26                                          "TX",
     27                                          "77300",
     28                                          "US",
     29                                          "832-555-1000");
     30 
     31   base::DictionaryValue dictionary;
     32   options::AutofillOptionsHandler::AutofillProfileToDictionary(profile,
     33                                                                &dictionary);
     34 
     35   std::string value;
     36   EXPECT_TRUE(dictionary.GetString("addrLines", &value));
     37   EXPECT_EQ("123 Main\nApt 2", value);
     38   EXPECT_TRUE(dictionary.GetString("city", &value));
     39   EXPECT_EQ("Laredo", value);
     40   EXPECT_TRUE(dictionary.GetString("country", &value));
     41   EXPECT_EQ("US", value);
     42   EXPECT_TRUE(dictionary.GetString("dependentLocality", &value));
     43   EXPECT_EQ("", value);
     44   EXPECT_TRUE(dictionary.GetString("guid", &value));
     45   EXPECT_EQ("guid", value);
     46   EXPECT_TRUE(dictionary.GetString("languageCode", &value));
     47   EXPECT_EQ("", value);
     48   EXPECT_TRUE(dictionary.GetString("postalCode", &value));
     49   EXPECT_EQ("77300", value);
     50   EXPECT_TRUE(dictionary.GetString("sortingCode", &value));
     51   EXPECT_EQ("", value);
     52   EXPECT_TRUE(dictionary.GetString("state", &value));
     53   EXPECT_EQ("TX", value);
     54 
     55   base::ListValue* list_value;
     56   EXPECT_TRUE(dictionary.GetList("email", &list_value));
     57   EXPECT_EQ(1U, list_value->GetSize());
     58   EXPECT_TRUE(list_value->GetString(0, &value));
     59   EXPECT_EQ("fml (at) example.com", value);
     60 
     61   EXPECT_TRUE(dictionary.GetList("fullName", &list_value));
     62   EXPECT_EQ(1U, list_value->GetSize());
     63   EXPECT_TRUE(list_value->GetString(0, &value));
     64   EXPECT_EQ("First Middle Last", value);
     65 
     66   EXPECT_TRUE(dictionary.GetList("phone", &list_value));
     67   EXPECT_EQ(1U, list_value->GetSize());
     68   EXPECT_TRUE(list_value->GetString(0, &value));
     69   EXPECT_EQ("832-555-1000", value);
     70 }
     71 
     72 }  // namespace options
     73