name_field_unittest.cc revision 201ade2fbba22bfb27ae029f4d23fca6ded109a0
1c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/scoped_ptr.h" 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/scoped_vector.h" 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "base/utf_string_conversions.h" 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/autofill/autofill_field.h" 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/browser/autofill/name_field.h" 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "testing/gtest/include/gtest/gtest.h" 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "webkit/glue/form_field.h" 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace { 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass NameFieldTest : public testing::Test { 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch NameFieldTest() {} 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch protected: 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ScopedVector<AutoFillField> list_; 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch scoped_ptr<NameField> field_; 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch FieldTypeMap field_type_map_; 23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch std::vector<AutoFillField*>::const_iterator iter_; 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 25c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private: 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch DISALLOW_COPY_AND_ASSIGN(NameFieldTest); 27c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST_F(NameFieldTest, FirstMiddleLast) { 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch list_.push_back( 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("First Name"), 32c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("First"), 33c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch string16(), 34c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("text"), 35201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 36201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("name1"))); 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch list_.push_back( 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Middle Name"), 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("Middle"), 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch string16(), 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("text"), 43201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 44201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("name2"))); 46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch list_.push_back( 47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Last Name"), 48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("Last"), 49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch string16(), 50c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("text"), 51201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 52201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("name3"))); 54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch list_.push_back(NULL); 55c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch iter_ = list_.begin(); 56c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch field_.reset(NameField::Parse(&iter_, false)); 57c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_NE(static_cast<NameField*>(NULL), field_.get()); 58c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); 59c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE( 60c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); 61c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]); 62c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE( 63c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end()); 64c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(NAME_MIDDLE, field_type_map_[ASCIIToUTF16("name2")]); 65c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE( 66c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end()); 67c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]); 68c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 69c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 70c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST_F(NameFieldTest, FirstMiddleLast2) { 71c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch list_.push_back( 72c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch new AutoFillField(webkit_glue::FormField(string16(), 73c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("firstName"), 74c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch string16(), 75c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("text"), 76201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 77201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 78c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("name1"))); 79c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch list_.push_back( 80c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch new AutoFillField(webkit_glue::FormField(string16(), 81c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("middleName"), 82c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch string16(), 83c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("text"), 84201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 85201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 86c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("name2"))); 87c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch list_.push_back( 88c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch new AutoFillField(webkit_glue::FormField(string16(), 89c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("lastName"), 90c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch string16(), 91c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("text"), 92201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 93201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 94c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("name3"))); 95c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch list_.push_back(NULL); 96c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch iter_ = list_.begin(); 97c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch field_.reset(NameField::Parse(&iter_, false)); 98c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_NE(static_cast<NameField*>(NULL), field_.get()); 99c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); 100c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE( 101c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); 102c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]); 103c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE( 104c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end()); 105c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(NAME_MIDDLE, field_type_map_[ASCIIToUTF16("name2")]); 106c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE( 107c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end()); 108c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]); 109c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 110c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 111c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST_F(NameFieldTest, FirstLast) { 112c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch list_.push_back( 113c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch new AutoFillField(webkit_glue::FormField(string16(), 114c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("first_name"), 115c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch string16(), 116c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("text"), 117201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 118201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 119c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("name1"))); 120c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch list_.push_back( 121c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch new AutoFillField(webkit_glue::FormField(string16(), 122c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("last_name"), 123c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch string16(), 124c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("text"), 125201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 126201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 127c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("name2"))); 128c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch list_.push_back(NULL); 129c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch iter_ = list_.begin(); 130c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch field_.reset(NameField::Parse(&iter_, false)); 131c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_NE(static_cast<NameField*>(NULL), field_.get()); 132c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); 133c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE( 134c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); 135c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]); 136c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE( 137c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end()); 138c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name2")]); 139c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 140c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 141c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST_F(NameFieldTest, FirstLast2) { 142c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch list_.push_back( 143c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Name"), 144c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("first_name"), 145c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch string16(), 146c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("text"), 147201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 148201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 149c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("name1"))); 150c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch list_.push_back( 151c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Name"), 152c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("last_name"), 153c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch string16(), 154c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("text"), 155201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 156201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 157c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("name2"))); 158c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch list_.push_back(NULL); 159c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch iter_ = list_.begin(); 160c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch field_.reset(NameField::Parse(&iter_, false)); 161c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_NE(static_cast<NameField*>(NULL), field_.get()); 162c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); 163c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE( 164c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); 165c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]); 166c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE( 167c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end()); 168c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name2")]); 169c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 170c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 171c407dc5cd9bdc5668497f21b26b09d988ab439deBen MurdochTEST_F(NameFieldTest, FirstLastMiddleWithSpaces) { 172c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch list_.push_back( 173c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("First Name"), 174c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("first name"), 175c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch string16(), 176c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("text"), 177201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 178201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 179c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("name1"))); 180c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch list_.push_back( 181c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Middle Name"), 182c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("middle name"), 183c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch string16(), 184c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("text"), 185201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 186201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 187c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("name2"))); 188c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch list_.push_back( 189c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Last Name"), 190c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("last name"), 191c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch string16(), 192c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("text"), 193201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 194201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 195c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASCIIToUTF16("name3"))); 196c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch list_.push_back(NULL); 197c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch iter_ = list_.begin(); 198c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch field_.reset(NameField::Parse(&iter_, false)); 199c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_NE(static_cast<NameField*>(NULL), field_.get()); 200c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); 201c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE( 202c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); 203c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]); 204c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE( 205c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end()); 206c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(NAME_MIDDLE, field_type_map_[ASCIIToUTF16("name2")]); 207c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch ASSERT_TRUE( 208c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end()); 209c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]); 210c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 211c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 2123345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickTEST_F(NameFieldTest, FirstLastEmpty) { 2133345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back( 2143345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Name"), 2153345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("first_name"), 2163345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 2173345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 218201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 219201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 2203345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("name1"))); 2213345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back( 2223345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick new AutoFillField(webkit_glue::FormField(string16(), 2233345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("last_name"), 2243345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 2253345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 226201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 227201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 2283345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("name2"))); 2293345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back(NULL); 2303345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick iter_ = list_.begin(); 2313345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_.reset(NameField::Parse(&iter_, false)); 2323345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_NE(static_cast<NameField*>(NULL), field_.get()); 2333345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); 2343345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE( 2353345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); 2363345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]); 2373345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE( 2383345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end()); 2393345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name2")]); 2403345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick} 2413345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 2423345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickTEST_F(NameFieldTest, FirstMiddleLastEmpty) { 2433345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back( 2443345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Name"), 2453345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("first_name"), 2463345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 2473345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 248201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 249201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 2503345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("name1"))); 2513345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back( 2523345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick new AutoFillField(webkit_glue::FormField(string16(), 2533345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("middle_name"), 2543345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 2553345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 256201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 257201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 2583345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("name2"))); 2593345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back( 2603345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick new AutoFillField(webkit_glue::FormField(string16(), 2613345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("last_name"), 2623345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 2633345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 264201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 265201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 2663345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("name3"))); 2673345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back(NULL); 2683345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick iter_ = list_.begin(); 2693345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_.reset(NameField::Parse(&iter_, false)); 2703345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_NE(static_cast<NameField*>(NULL), field_.get()); 2713345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); 2723345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE( 2733345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); 2743345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]); 2753345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE( 2763345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end()); 2773345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(NAME_MIDDLE_INITIAL, field_type_map_[ASCIIToUTF16("name2")]); 2783345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE( 2793345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end()); 2803345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]); 2813345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick} 2823345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 2833345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickTEST_F(NameFieldTest, MiddleInitial) { 2843345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back( 2853345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("First Name"), 2863345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("first_name"), 2873345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 2883345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 289201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 290201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 2913345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("name1"))); 2923345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back( 2933345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("MI"), 2943345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("middle_name"), 2953345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 2963345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 297201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 298201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 2993345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("name2"))); 3003345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back( 3013345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("Last Name"), 3023345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("last_name"), 3033345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 3043345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 305201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 306201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 3073345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("name3"))); 3083345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back(NULL); 3093345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick iter_ = list_.begin(); 3103345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_.reset(NameField::Parse(&iter_, false)); 3113345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_NE(static_cast<NameField*>(NULL), field_.get()); 3123345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); 3133345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE( 3143345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); 3153345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]); 3163345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE( 3173345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end()); 3183345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(NAME_MIDDLE_INITIAL, field_type_map_[ASCIIToUTF16("name2")]); 3193345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE( 3203345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end()); 3213345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]); 3223345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick} 3233345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 3243345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickTEST_F(NameFieldTest, MiddleInitialNoLastName) { 3253345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back( 3263345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("First Name"), 3273345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("first_name"), 3283345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 3293345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 330201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 331201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 3323345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("name1"))); 3333345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back( 3343345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick new AutoFillField(webkit_glue::FormField(ASCIIToUTF16("MI"), 3353345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("middle_name"), 3363345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 3373345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 338201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 339201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 3403345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("name2"))); 3413345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back(NULL); 3423345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick iter_ = list_.begin(); 3433345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_.reset(NameField::Parse(&iter_, false)); 3443345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_EQ(static_cast<NameField*>(NULL), field_.get()); 3453345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick} 3463345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 3473345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// This case is from the dell.com checkout page. The middle initial "mi" string 3483345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick// came at the end following other descriptive text. http://crbug.com/45123. 3493345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickTEST_F(NameFieldTest, MiddleInitialAtEnd) { 3503345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back( 3513345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick new AutoFillField(webkit_glue::FormField(string16(), 3523345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("XXXnameXXXfirst"), 3533345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 3543345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 355201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 356201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 3573345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("name1"))); 3583345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back( 3593345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick new AutoFillField(webkit_glue::FormField(string16(), 3603345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("XXXnameXXXmi"), 3613345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 3623345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 363201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 364201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 3653345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("name2"))); 3663345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back( 3673345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick new AutoFillField(webkit_glue::FormField(string16(), 3683345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("XXXnameXXXlast"), 3693345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 3703345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 371201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 372201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 3733345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("name3"))); 3743345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back(NULL); 3753345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick iter_ = list_.begin(); 3763345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_.reset(NameField::Parse(&iter_, false)); 3773345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_NE(static_cast<NameField*>(NULL), field_.get()); 3783345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); 3793345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE( 3803345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); 3813345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]); 3823345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE( 3833345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end()); 3843345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(NAME_MIDDLE_INITIAL, field_type_map_[ASCIIToUTF16("name2")]); 3853345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE( 3863345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end()); 3873345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]); 3883345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick} 3893345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 3903345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickTEST_F(NameFieldTest, ECMLNoName) { 3913345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back(new AutoFillField( 3923345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick webkit_glue::FormField(ASCIIToUTF16("Company"), 3933345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("ecom_shipto_postal_company"), 3943345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 3953345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 396201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 397201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 3983345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("field1"))); 3993345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back(NULL); 4003345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick iter_ = list_.begin(); 4013345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_.reset(NameField::Parse(&iter_, true)); 4023345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_EQ(static_cast<NameField*>(NULL), field_.get()); 4033345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick} 4043345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 4053345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickTEST_F(NameFieldTest, ECMLMiddleInitialNoLastName) { 4063345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back(new AutoFillField( 4073345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick webkit_glue::FormField(ASCIIToUTF16("First Name"), 4083345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("ecom_shipto_postal_name_first"), 4093345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 4103345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 411201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 412201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 4133345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("name1"))); 4143345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back(new AutoFillField( 4153345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick webkit_glue::FormField(ASCIIToUTF16("Middle"), 4163345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("ecom_shipto_postal_name_middle"), 4173345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 4183345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 419201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 420201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 4213345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("name2"))); 4223345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back(NULL); 4233345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick iter_ = list_.begin(); 4243345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_.reset(NameField::Parse(&iter_, true)); 4253345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_EQ(static_cast<NameField*>(NULL), field_.get()); 4263345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick} 4273345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 4283345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickTEST_F(NameFieldTest, ECMLFirstMiddleLast) { 4293345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back(new AutoFillField( 4303345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick webkit_glue::FormField(string16(), 4313345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("ecom_shipto_postal_name_first"), 4323345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 4333345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 434201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 435201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 4363345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("name1"))); 4373345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back(new AutoFillField( 4383345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick webkit_glue::FormField(string16(), 4393345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("ecom_shipto_postal_name_middle"), 4403345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 4413345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 442201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 443201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 4443345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("name2"))); 4453345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back(new AutoFillField( 4463345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick webkit_glue::FormField(string16(), 4473345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("ecom_shipto_postal_name_last"), 4483345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick string16(), 4493345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("text"), 450201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch 0, 451201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch false), 4523345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASCIIToUTF16("name3"))); 4533345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick list_.push_back(NULL); 4543345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick iter_ = list_.begin(); 4553345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_.reset(NameField::Parse(&iter_, true)); 4563345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_NE(static_cast<NameField*>(NULL), field_.get()); 4573345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE(field_->GetFieldInfo(&field_type_map_)); 4583345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE( 4593345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_type_map_.find(ASCIIToUTF16("name1")) != field_type_map_.end()); 4603345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(NAME_FIRST, field_type_map_[ASCIIToUTF16("name1")]); 4613345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE( 4623345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_type_map_.find(ASCIIToUTF16("name2")) != field_type_map_.end()); 4633345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(NAME_MIDDLE, field_type_map_[ASCIIToUTF16("name2")]); 4643345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ASSERT_TRUE( 4653345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick field_type_map_.find(ASCIIToUTF16("name3")) != field_type_map_.end()); 4663345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(NAME_LAST, field_type_map_[ASCIIToUTF16("name3")]); 4673345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick} 4683345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick 469c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} // namespace 470