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