diff options
Diffstat (limited to 'components/autofill/browser/autofill_field_unittest.cc')
-rw-r--r-- | components/autofill/browser/autofill_field_unittest.cc | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/components/autofill/browser/autofill_field_unittest.cc b/components/autofill/browser/autofill_field_unittest.cc new file mode 100644 index 0000000..745f6fc --- /dev/null +++ b/components/autofill/browser/autofill_field_unittest.cc @@ -0,0 +1,93 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/string_util.h" +#include "base/utf_string_conversions.h" +#include "components/autofill/browser/autofill_field.h" +#include "components/autofill/browser/field_types.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace { + +TEST(AutofillFieldTest, Type) { + AutofillField field; + ASSERT_EQ(NO_SERVER_DATA, field.server_type()); + ASSERT_EQ(UNKNOWN_TYPE, field.heuristic_type()); + + // |server_type_| is NO_SERVER_DATA, so |heuristic_type_| is returned. + EXPECT_EQ(UNKNOWN_TYPE, field.type()); + + // Set the heuristic type and check it. + field.set_heuristic_type(NAME_FIRST); + EXPECT_EQ(NAME_FIRST, field.type()); + + // Set the server type and check it. + field.set_server_type(ADDRESS_BILLING_LINE1); + EXPECT_EQ(ADDRESS_BILLING_LINE1, field.type()); + + // Remove the server type to make sure the heuristic type is preserved. + field.set_server_type(NO_SERVER_DATA); + EXPECT_EQ(NAME_FIRST, field.type()); +} + +TEST(AutofillFieldTest, IsEmpty) { + AutofillField field; + ASSERT_EQ(string16(), field.value); + + // Field value is empty. + EXPECT_TRUE(field.IsEmpty()); + + // Field value is non-empty. + field.value = ASCIIToUTF16("Value"); + EXPECT_FALSE(field.IsEmpty()); +} + +TEST(AutofillFieldTest, FieldSignature) { + AutofillField field; + ASSERT_EQ(string16(), field.name); + ASSERT_EQ(std::string(), field.form_control_type); + + // Signature is empty. + EXPECT_EQ("2085434232", field.FieldSignature()); + + // Field name is set. + field.name = ASCIIToUTF16("Name"); + EXPECT_EQ("1606968241", field.FieldSignature()); + + // Field form control type is set. + field.form_control_type = "text"; + EXPECT_EQ("502192749", field.FieldSignature()); + + // Heuristic type does not affect FieldSignature. + field.set_heuristic_type(NAME_FIRST); + EXPECT_EQ("502192749", field.FieldSignature()); + + // Server type does not affect FieldSignature. + field.set_server_type(NAME_LAST); + EXPECT_EQ("502192749", field.FieldSignature()); +} + +TEST(AutofillFieldTest, IsFieldFillable) { + AutofillField field; + ASSERT_EQ(UNKNOWN_TYPE, field.type()); + + // Type is unknown. + EXPECT_FALSE(field.IsFieldFillable()); + + // Only heuristic type is set. + field.set_heuristic_type(NAME_FIRST); + EXPECT_TRUE(field.IsFieldFillable()); + + // Only server type is set. + field.set_heuristic_type(UNKNOWN_TYPE); + field.set_server_type(NAME_LAST); + EXPECT_TRUE(field.IsFieldFillable()); + + // Both types set. + field.set_heuristic_type(NAME_FIRST); + field.set_server_type(NAME_LAST); + EXPECT_TRUE(field.IsFieldFillable()); +} + +} // namespace |