name_field_unittest.cc revision c407dc5cd9bdc5668497f21b26b09d988ab439de
1// 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 0), 35 ASCIIToUTF16("name1"))); 36 list_.push_back( 37 new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Middle Name"), 38 ASCIIToUTF16("Middle"), 39 string16(), 40 ASCIIToUTF16("text"), 41 0), 42 ASCIIToUTF16("name2"))); 43 list_.push_back( 44 new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Last Name"), 45 ASCIIToUTF16("Last"), 46 string16(), 47 ASCIIToUTF16("text"), 48 0), 49 ASCIIToUTF16("name3"))); 50 list_.push_back(NULL); 51 iter_ = list_.begin(); 52 field_.reset(NameField::Parse(&iter_, false)); 53 ASSERT_NE(static_cast<NameField*>(NULL), field_.get()); 54 ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); 55 ASSERT_TRUE( 56 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); 57 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]); 58 ASSERT_TRUE( 59 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end()); 60 EXPECT_EQ(NAME_MIDDLE, field_type_map_[ASCIIToUTF16("name2")]); 61 ASSERT_TRUE( 62 field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end()); 63 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]); 64} 65 66TEST_F(NameFieldTest, FirstMiddleLast2) { 67 list_.push_back( 68 new AutoFillField(webkit_glue::FormField(string16(), 69 ASCIIToUTF16("firstName"), 70 string16(), 71 ASCIIToUTF16("text"), 72 0), 73 ASCIIToUTF16("name1"))); 74 list_.push_back( 75 new AutoFillField(webkit_glue::FormField(string16(), 76 ASCIIToUTF16("middleName"), 77 string16(), 78 ASCIIToUTF16("text"), 79 0), 80 ASCIIToUTF16("name2"))); 81 list_.push_back( 82 new AutoFillField(webkit_glue::FormField(string16(), 83 ASCIIToUTF16("lastName"), 84 string16(), 85 ASCIIToUTF16("text"), 86 0), 87 ASCIIToUTF16("name3"))); 88 list_.push_back(NULL); 89 iter_ = list_.begin(); 90 field_.reset(NameField::Parse(&iter_, false)); 91 ASSERT_NE(static_cast<NameField*>(NULL), field_.get()); 92 ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); 93 ASSERT_TRUE( 94 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); 95 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]); 96 ASSERT_TRUE( 97 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end()); 98 EXPECT_EQ(NAME_MIDDLE, field_type_map_[ASCIIToUTF16("name2")]); 99 ASSERT_TRUE( 100 field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end()); 101 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]); 102} 103 104TEST_F(NameFieldTest, FirstLast) { 105 list_.push_back( 106 new AutoFillField(webkit_glue::FormField(string16(), 107 ASCIIToUTF16("first_name"), 108 string16(), 109 ASCIIToUTF16("text"), 110 0), 111 ASCIIToUTF16("name1"))); 112 list_.push_back( 113 new AutoFillField(webkit_glue::FormField(string16(), 114 ASCIIToUTF16("last_name"), 115 string16(), 116 ASCIIToUTF16("text"), 117 0), 118 ASCIIToUTF16("name2"))); 119 list_.push_back(NULL); 120 iter_ = list_.begin(); 121 field_.reset(NameField::Parse(&iter_, false)); 122 ASSERT_NE(static_cast<NameField*>(NULL), field_.get()); 123 ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); 124 ASSERT_TRUE( 125 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); 126 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]); 127 ASSERT_TRUE( 128 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end()); 129 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name2")]); 130} 131 132TEST_F(NameFieldTest, FirstLast2) { 133 list_.push_back( 134 new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Name"), 135 ASCIIToUTF16("first_name"), 136 string16(), 137 ASCIIToUTF16("text"), 138 0), 139 ASCIIToUTF16("name1"))); 140 list_.push_back( 141 new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Name"), 142 ASCIIToUTF16("last_name"), 143 string16(), 144 ASCIIToUTF16("text"), 145 0), 146 ASCIIToUTF16("name2"))); 147 list_.push_back(NULL); 148 iter_ = list_.begin(); 149 field_.reset(NameField::Parse(&iter_, false)); 150 ASSERT_NE(static_cast<NameField*>(NULL), field_.get()); 151 ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); 152 ASSERT_TRUE( 153 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); 154 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]); 155 ASSERT_TRUE( 156 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end()); 157 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name2")]); 158} 159 160TEST_F(NameFieldTest, FirstLastMiddleWithSpaces) { 161 list_.push_back( 162 new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("First Name"), 163 ASCIIToUTF16("first name"), 164 string16(), 165 ASCIIToUTF16("text"), 166 0), 167 ASCIIToUTF16("name1"))); 168 list_.push_back( 169 new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Middle Name"), 170 ASCIIToUTF16("middle name"), 171 string16(), 172 ASCIIToUTF16("text"), 173 0), 174 ASCIIToUTF16("name2"))); 175 list_.push_back( 176 new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Last Name"), 177 ASCIIToUTF16("last name"), 178 string16(), 179 ASCIIToUTF16("text"), 180 0), 181 ASCIIToUTF16("name3"))); 182 list_.push_back(NULL); 183 iter_ = list_.begin(); 184 field_.reset(NameField::Parse(&iter_, false)); 185 ASSERT_NE(static_cast<NameField*>(NULL), field_.get()); 186 ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); 187 ASSERT_TRUE( 188 field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); 189 EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]); 190 ASSERT_TRUE( 191 field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end()); 192 EXPECT_EQ(NAME_MIDDLE, field_type_map_[ASCIIToUTF16("name2")]); 193 ASSERT_TRUE( 194 field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end()); 195 EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]); 196} 197 198} // namespace 199