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