blob: 71e98b4996d7280e48d67edd71571d1e0e8885dc [file] [log] [blame]
Ben Murdocheb525c52013-07-10 11:40:50 +01001// 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
Ben Murdochbb1529c2013-08-08 10:24:53 +010011TEST(AutofillTypeTest, ServerFieldTypes) {
Ben Murdocheb525c52013-07-10 11:40:50 +010012 // No server data.
13 AutofillType none(NO_SERVER_DATA);
Ben Murdochbb1529c2013-08-08 10:24:53 +010014 EXPECT_EQ(NO_SERVER_DATA, none.GetStorableType());
Ben Murdoch2385ea32013-08-06 11:01:04 +010015 EXPECT_EQ(NO_GROUP, none.group());
Ben Murdocheb525c52013-07-10 11:40:50 +010016
17 // Unknown type.
18 AutofillType unknown(UNKNOWN_TYPE);
Ben Murdochbb1529c2013-08-08 10:24:53 +010019 EXPECT_EQ(UNKNOWN_TYPE, unknown.GetStorableType());
Ben Murdoch2385ea32013-08-06 11:01:04 +010020 EXPECT_EQ(NO_GROUP, unknown.group());
Ben Murdocheb525c52013-07-10 11:40:50 +010021
22 // Type with group but no subgroup.
23 AutofillType first(NAME_FIRST);
Ben Murdochbb1529c2013-08-08 10:24:53 +010024 EXPECT_EQ(NAME_FIRST, first.GetStorableType());
Ben Murdoch2385ea32013-08-06 11:01:04 +010025 EXPECT_EQ(NAME, first.group());
Ben Murdocheb525c52013-07-10 11:40:50 +010026
27 // Type with group and subgroup.
28 AutofillType phone(PHONE_HOME_NUMBER);
Ben Murdochbb1529c2013-08-08 10:24:53 +010029 EXPECT_EQ(PHONE_HOME_NUMBER, phone.GetStorableType());
Ben Murdoch2385ea32013-08-06 11:01:04 +010030 EXPECT_EQ(PHONE_HOME, phone.group());
Ben Murdocheb525c52013-07-10 11:40:50 +010031
Ben Murdochbb1529c2013-08-08 10:24:53 +010032 // Billing type.
33 AutofillType billing_address(ADDRESS_BILLING_LINE1);
34 EXPECT_EQ(ADDRESS_HOME_LINE1, billing_address.GetStorableType());
35 EXPECT_EQ(ADDRESS_BILLING, billing_address.group());
36
Ben Murdocheb525c52013-07-10 11:40:50 +010037 // Last value, to check any offset errors.
Ben Murdochbb1529c2013-08-08 10:24:53 +010038 AutofillType last(NAME_BILLING_SUFFIX);
39 EXPECT_EQ(NAME_SUFFIX, last.GetStorableType());
40 EXPECT_EQ(NAME_BILLING, last.group());
Ben Murdocheb525c52013-07-10 11:40:50 +010041
42 // Boundary (error) condition.
43 AutofillType boundary(MAX_VALID_FIELD_TYPE);
Ben Murdochbb1529c2013-08-08 10:24:53 +010044 EXPECT_EQ(UNKNOWN_TYPE, boundary.GetStorableType());
Ben Murdoch2385ea32013-08-06 11:01:04 +010045 EXPECT_EQ(NO_GROUP, boundary.group());
Ben Murdocheb525c52013-07-10 11:40:50 +010046
47 // Beyond the boundary (error) condition.
Ben Murdochbb1529c2013-08-08 10:24:53 +010048 AutofillType beyond(static_cast<ServerFieldType>(MAX_VALID_FIELD_TYPE + 10));
49 EXPECT_EQ(UNKNOWN_TYPE, beyond.GetStorableType());
Ben Murdoch2385ea32013-08-06 11:01:04 +010050 EXPECT_EQ(NO_GROUP, beyond.group());
Ben Murdocheb525c52013-07-10 11:40:50 +010051
52 // In-between value. Missing from enum but within range. Error condition.
Ben Murdoch32409262013-08-07 11:04:47 +010053 AutofillType between(static_cast<ServerFieldType>(16));
Ben Murdochbb1529c2013-08-08 10:24:53 +010054 EXPECT_EQ(UNKNOWN_TYPE, between.GetStorableType());
Ben Murdoch2385ea32013-08-06 11:01:04 +010055 EXPECT_EQ(NO_GROUP, between.group());
Ben Murdocheb525c52013-07-10 11:40:50 +010056}
57
Ben Murdochbb1529c2013-08-08 10:24:53 +010058TEST(AutofillTypeTest, HtmlFieldTypes) {
59 // Unknown type.
60 AutofillType unknown(HTML_TYPE_UNKNOWN, HTML_MODE_NONE);
61 EXPECT_EQ(UNKNOWN_TYPE, unknown.GetStorableType());
62 EXPECT_EQ(NO_GROUP, unknown.group());
63
64 // Type with group but no subgroup.
65 AutofillType first(HTML_TYPE_GIVEN_NAME, HTML_MODE_NONE);
66 EXPECT_EQ(NAME_FIRST, first.GetStorableType());
67 EXPECT_EQ(NAME, first.group());
68
69 // Type with group and subgroup.
70 AutofillType phone(HTML_TYPE_TEL, HTML_MODE_NONE);
71 EXPECT_EQ(PHONE_HOME_WHOLE_NUMBER, phone.GetStorableType());
72 EXPECT_EQ(PHONE_HOME, phone.group());
73
74 // Last value, to check any offset errors.
75 AutofillType last(HTML_TYPE_CREDIT_CARD_EXP_4_DIGIT_YEAR, HTML_MODE_NONE);
76 EXPECT_EQ(CREDIT_CARD_EXP_4_DIGIT_YEAR, last.GetStorableType());
77 EXPECT_EQ(CREDIT_CARD, last.group());
78
79 // Shipping mode.
80 AutofillType shipping_first(HTML_TYPE_GIVEN_NAME, HTML_MODE_SHIPPING);
81 EXPECT_EQ(NAME_FIRST, shipping_first.GetStorableType());
82 EXPECT_EQ(NAME, shipping_first.group());
83
84 // Billing mode.
85 AutofillType billing_first(HTML_TYPE_GIVEN_NAME, HTML_MODE_BILLING);
86 EXPECT_EQ(NAME_FIRST, billing_first.GetStorableType());
87 EXPECT_EQ(NAME_BILLING, billing_first.group());
88}
89
Ben Murdocheb525c52013-07-10 11:40:50 +010090} // namespace
91} // namespace autofill