contact_info_unittest.cc revision 5d1f7b1de12d16ceb2c938c56701a3e8bfa558f7
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
3// found in the LICENSE file.
4
5#include "components/autofill/core/browser/contact_info.h"
6
7#include "base/basictypes.h"
8#include "base/strings/string_util.h"
9#include "base/strings/utf_string_conversions.h"
10#include "components/autofill/core/browser/autofill_type.h"
11#include "components/autofill/core/browser/field_types.h"
12#include "testing/gtest/include/gtest/gtest.h"
13
14using base::ASCIIToUTF16;
15
16namespace autofill {
17
18TEST(NameInfoTest, SetFullName) {
19  NameInfo name;
20  name.SetRawInfo(NAME_FULL, ASCIIToUTF16("Virgil"));
21  EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("Virgil"));
22  EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), base::string16());
23  EXPECT_EQ(name.GetRawInfo(NAME_LAST), base::string16());
24  EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("Virgil"));
25
26  name.SetRawInfo(NAME_FULL, ASCIIToUTF16("Murray Gell-Mann"));
27  EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("Murray"));
28  EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), base::string16());
29  EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Gell-Mann"));
30  EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("Murray Gell-Mann"));
31
32  name.SetRawInfo(NAME_FULL,
33               ASCIIToUTF16("Mikhail Yevgrafovich Saltykov-Shchedrin"));
34  EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("Mikhail"));
35  EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Yevgrafovich"));
36  EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Saltykov-Shchedrin"));
37  EXPECT_EQ(name.GetRawInfo(NAME_FULL),
38            ASCIIToUTF16("Mikhail Yevgrafovich Saltykov-Shchedrin"));
39
40  name.SetRawInfo(NAME_FULL, ASCIIToUTF16("Arthur Ignatius Conan Doyle"));
41  EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("Arthur"));
42  EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Ignatius Conan"));
43  EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Doyle"));
44  EXPECT_EQ(name.GetRawInfo(NAME_FULL),
45            ASCIIToUTF16("Arthur Ignatius Conan Doyle"));
46}
47
48TEST(NameInfoTest, GetFullName) {
49  NameInfo name;
50  name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("First"));
51  name.SetRawInfo(NAME_MIDDLE, base::string16());
52  name.SetRawInfo(NAME_LAST, base::string16());
53  EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("First"));
54  EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), base::string16());
55  EXPECT_EQ(name.GetRawInfo(NAME_LAST), base::string16());
56  EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("First"));
57
58  name.SetRawInfo(NAME_FIRST, base::string16());
59  name.SetRawInfo(NAME_MIDDLE, ASCIIToUTF16("Middle"));
60  name.SetRawInfo(NAME_LAST, base::string16());
61  EXPECT_EQ(name.GetRawInfo(NAME_FIRST), base::string16());
62  EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle"));
63  EXPECT_EQ(name.GetRawInfo(NAME_LAST), base::string16());
64  EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("Middle"));
65
66  name.SetRawInfo(NAME_FIRST, base::string16());
67  name.SetRawInfo(NAME_MIDDLE, base::string16());
68  name.SetRawInfo(NAME_LAST, ASCIIToUTF16("Last"));
69  EXPECT_EQ(name.GetRawInfo(NAME_FIRST), base::string16());
70  EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), base::string16());
71  EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last"));
72  EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("Last"));
73
74  name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("First"));
75  name.SetRawInfo(NAME_MIDDLE, ASCIIToUTF16("Middle"));
76  name.SetRawInfo(NAME_LAST, base::string16());
77  EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("First"));
78  EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle"));
79  EXPECT_EQ(name.GetRawInfo(NAME_LAST), base::string16());
80  EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("First Middle"));
81
82  name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("First"));
83  name.SetRawInfo(NAME_MIDDLE, base::string16());
84  name.SetRawInfo(NAME_LAST, ASCIIToUTF16("Last"));
85  EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("First"));
86  EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), base::string16());
87  EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last"));
88  EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("First Last"));
89
90  name.SetRawInfo(NAME_FIRST, base::string16());
91  name.SetRawInfo(NAME_MIDDLE, ASCIIToUTF16("Middle"));
92  name.SetRawInfo(NAME_LAST, ASCIIToUTF16("Last"));
93  EXPECT_EQ(name.GetRawInfo(NAME_FIRST), base::string16());
94  EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle"));
95  EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last"));
96  EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("Middle Last"));
97
98  name.SetRawInfo(NAME_FIRST, ASCIIToUTF16("First"));
99  name.SetRawInfo(NAME_MIDDLE, ASCIIToUTF16("Middle"));
100  name.SetRawInfo(NAME_LAST, ASCIIToUTF16("Last"));
101  EXPECT_EQ(name.GetRawInfo(NAME_FIRST), ASCIIToUTF16("First"));
102  EXPECT_EQ(name.GetRawInfo(NAME_MIDDLE), ASCIIToUTF16("Middle"));
103  EXPECT_EQ(name.GetRawInfo(NAME_LAST), ASCIIToUTF16("Last"));
104  EXPECT_EQ(name.GetRawInfo(NAME_FULL), ASCIIToUTF16("First Middle Last"));
105}
106
107}  // namespace autofill
108