blob: d338c83521b501e6716e638c2c6d83938c15a20d [file] [log] [blame]
[email protected]7519f1a2010-04-08 02:11:361// Copyright (c) 2010 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 "base/scoped_ptr.h"
6#include "base/scoped_vector.h"
7#include "chrome/browser/autofill/autofill_field.h"
8#include "chrome/browser/autofill/name_field.h"
9#include "testing/gtest/include/gtest/gtest.h"
10#include "webkit/glue/form_field.h"
11
12namespace {
13
14class NameFieldTest : public testing::Test {
15 public:
16 NameFieldTest() {}
17
18 protected:
19 ScopedVector<AutoFillField> list_;
20 scoped_ptr<NameField> field_;
21 FieldTypeMap field_type_map_;
22 std::vector<AutoFillField*>::const_iterator iter_;
23
24 private:
25 DISALLOW_COPY_AND_ASSIGN(NameFieldTest);
26};
27
28TEST_F(NameFieldTest, FirstMiddleLast) {
29 list_.push_back(
30 new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("First Name"),
31 ASCIIToUTF16("First"),
32 string16(),
33 ASCIIToUTF16("text")),
34 ASCIIToUTF16("name1")));
35 list_.push_back(
36 new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Middle Name"),
37 ASCIIToUTF16("Middle"),
38 string16(),
39 ASCIIToUTF16("text")),
40 ASCIIToUTF16("name2")));
41 list_.push_back(
42 new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Last Name"),
43 ASCIIToUTF16("Last"),
44 string16(),
45 ASCIIToUTF16("text")),
46 ASCIIToUTF16("name3")));
47 list_.push_back(NULL);
48 iter_ = list_.begin();
49 field_.reset(NameField::Parse(&iter_, false));
50 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
51 ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
52 ASSERT_TRUE(
53 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
54 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
55 ASSERT_TRUE(
56 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
57 EXPECT_EQ(NAME_MIDDLE, field_type_map_[ASCIIToUTF16("name2")]);
58 ASSERT_TRUE(
59 field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end());
60 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]);
61}
62
[email protected]f6f53bab2010-04-12 16:49:4763TEST_F(NameFieldTest, FirstMiddleLast2) {
64 list_.push_back(
65 new AutoFillField(webkit_glue::FormField(string16(),
66 ASCIIToUTF16("firstName"),
67 string16(),
68 ASCIIToUTF16("text")),
69 ASCIIToUTF16("name1")));
70 list_.push_back(
71 new AutoFillField(webkit_glue::FormField(string16(),
72 ASCIIToUTF16("middleName"),
73 string16(),
74 ASCIIToUTF16("text")),
75 ASCIIToUTF16("name2")));
76 list_.push_back(
77 new AutoFillField(webkit_glue::FormField(string16(),
78 ASCIIToUTF16("lastName"),
79 string16(),
80 ASCIIToUTF16("text")),
81 ASCIIToUTF16("name3")));
82 list_.push_back(NULL);
83 iter_ = list_.begin();
84 field_.reset(NameField::Parse(&iter_, false));
85 ASSERT_NE(static_cast<NameField*>(NULL), field_.get());
86 ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_));
87 ASSERT_TRUE(
88 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end());
89 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]);
90 ASSERT_TRUE(
91 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end());
92 EXPECT_EQ(NAME_MIDDLE, field_type_map_[ASCIIToUTF16("name2")]);
93 ASSERT_TRUE(
94 field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end());
95 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]);
96}
97
[email protected]7519f1a2010-04-08 02:11:3698} // namespace