autofill_type_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/autofill_type.h" 6#include "testing/gtest/include/gtest/gtest.h" 7 8namespace autofill { 9namespace { 10 11TEST(AutofillTypeTest, AutofillTypes) { 12 // No server data. 13 AutofillType none(NO_SERVER_DATA); 14 EXPECT_EQ(NO_SERVER_DATA, none.field_type()); 15 EXPECT_EQ(AutofillType::NO_GROUP, none.group()); 16 17 // Unknown type. 18 AutofillType unknown(UNKNOWN_TYPE); 19 EXPECT_EQ(UNKNOWN_TYPE, unknown.field_type()); 20 EXPECT_EQ(AutofillType::NO_GROUP, unknown.group()); 21 22 // Type with group but no subgroup. 23 AutofillType first(NAME_FIRST); 24 EXPECT_EQ(NAME_FIRST, first.field_type()); 25 EXPECT_EQ(AutofillType::NAME, first.group()); 26 27 // Type with group and subgroup. 28 AutofillType phone(PHONE_HOME_NUMBER); 29 EXPECT_EQ(PHONE_HOME_NUMBER, phone.field_type()); 30 EXPECT_EQ(AutofillType::PHONE_HOME, phone.group()); 31 32 // Last value, to check any offset errors. 33 AutofillType last(COMPANY_NAME); 34 EXPECT_EQ(COMPANY_NAME, last.field_type()); 35 EXPECT_EQ(AutofillType::COMPANY, last.group()); 36 37 // Boundary (error) condition. 38 AutofillType boundary(MAX_VALID_FIELD_TYPE); 39 EXPECT_EQ(UNKNOWN_TYPE, boundary.field_type()); 40 EXPECT_EQ(AutofillType::NO_GROUP, boundary.group()); 41 42 // Beyond the boundary (error) condition. 43 AutofillType beyond(static_cast<AutofillFieldType>(MAX_VALID_FIELD_TYPE+10)); 44 EXPECT_EQ(UNKNOWN_TYPE, beyond.field_type()); 45 EXPECT_EQ(AutofillType::NO_GROUP, beyond.group()); 46 47 // In-between value. Missing from enum but within range. Error condition. 48 AutofillType between(static_cast<AutofillFieldType>(16)); 49 EXPECT_EQ(UNKNOWN_TYPE, between.field_type()); 50 EXPECT_EQ(AutofillType::NO_GROUP, between.group()); 51} 52 53} // namespace 54} // namespace autofill 55