| Index: components/autofill/core/browser/form_field_unittest.cc
|
| diff --git a/components/autofill/core/browser/form_field_unittest.cc b/components/autofill/core/browser/form_field_unittest.cc
|
| index f13c1d134bb7586c17b486834d45132c44fdfff1..aac94d07dfbd082bbaeb48b60d45f1a14323fee9 100644
|
| --- a/components/autofill/core/browser/form_field_unittest.cc
|
| +++ b/components/autofill/core/browser/form_field_unittest.cc
|
| @@ -2,11 +2,14 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| +#include "components/autofill/core/browser/form_field.h"
|
| +
|
| +#include <string>
|
| +
|
| #include "base/memory/scoped_vector.h"
|
| #include "base/strings/string16.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "components/autofill/core/browser/autofill_field.h"
|
| -#include "components/autofill/core/browser/form_field.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| using base::ASCIIToUTF16;
|
| @@ -17,108 +20,83 @@ TEST(FormFieldTest, Match) {
|
| AutofillField field;
|
|
|
| // Empty strings match.
|
| - EXPECT_TRUE(FormField::Match(&field, base::string16(),
|
| - FormField::MATCH_LABEL));
|
| + EXPECT_TRUE(FormField::Match(&field, std::string(), FormField::MATCH_LABEL));
|
|
|
| // Empty pattern matches non-empty string.
|
| field.label = ASCIIToUTF16("a");
|
| - EXPECT_TRUE(FormField::Match(&field, base::string16(),
|
| - FormField::MATCH_LABEL));
|
| + EXPECT_TRUE(FormField::Match(&field, std::string(), FormField::MATCH_LABEL));
|
|
|
| // Strictly empty pattern matches empty string.
|
| field.label = base::string16();
|
| - EXPECT_TRUE(FormField::Match(&field, ASCIIToUTF16("^$"),
|
| - FormField::MATCH_LABEL));
|
| + EXPECT_TRUE(FormField::Match(&field, "^$", FormField::MATCH_LABEL));
|
|
|
| // Strictly empty pattern does not match non-empty string.
|
| field.label = ASCIIToUTF16("a");
|
| - EXPECT_FALSE(FormField::Match(&field, ASCIIToUTF16("^$"),
|
| - FormField::MATCH_LABEL));
|
| + EXPECT_FALSE(FormField::Match(&field, "^$", FormField::MATCH_LABEL));
|
|
|
| // Non-empty pattern doesn't match empty string.
|
| field.label = base::string16();
|
| - EXPECT_FALSE(FormField::Match(&field, ASCIIToUTF16("a"),
|
| - FormField::MATCH_LABEL));
|
| + EXPECT_FALSE(FormField::Match(&field, "a", FormField::MATCH_LABEL));
|
|
|
| // Beginning of line.
|
| field.label = ASCIIToUTF16("head_tail");
|
| - EXPECT_TRUE(FormField::Match(&field, ASCIIToUTF16("^head"),
|
| - FormField::MATCH_LABEL));
|
| - EXPECT_FALSE(FormField::Match(&field, ASCIIToUTF16("^tail"),
|
| - FormField::MATCH_LABEL));
|
| + EXPECT_TRUE(FormField::Match(&field, "^head", FormField::MATCH_LABEL));
|
| + EXPECT_FALSE(FormField::Match(&field, "^tail", FormField::MATCH_LABEL));
|
|
|
| // End of line.
|
| field.label = ASCIIToUTF16("head_tail");
|
| - EXPECT_FALSE(FormField::Match(&field, ASCIIToUTF16("head$"),
|
| - FormField::MATCH_LABEL));
|
| - EXPECT_TRUE(FormField::Match(&field, ASCIIToUTF16("tail$"),
|
| - FormField::MATCH_LABEL));
|
| + EXPECT_FALSE(FormField::Match(&field, "head$", FormField::MATCH_LABEL));
|
| + EXPECT_TRUE(FormField::Match(&field, "tail$", FormField::MATCH_LABEL));
|
|
|
| // Exact.
|
| field.label = ASCIIToUTF16("head_tail");
|
| - EXPECT_FALSE(FormField::Match(&field, ASCIIToUTF16("^head$"),
|
| - FormField::MATCH_LABEL));
|
| - EXPECT_FALSE(FormField::Match(&field, ASCIIToUTF16("^tail$"),
|
| - FormField::MATCH_LABEL));
|
| - EXPECT_TRUE(FormField::Match(&field, ASCIIToUTF16("^head_tail$"),
|
| - FormField::MATCH_LABEL));
|
| + EXPECT_FALSE(FormField::Match(&field, "^head$", FormField::MATCH_LABEL));
|
| + EXPECT_FALSE(FormField::Match(&field, "^tail$", FormField::MATCH_LABEL));
|
| + EXPECT_TRUE(FormField::Match(&field, "^head_tail$", FormField::MATCH_LABEL));
|
|
|
| // Escaped dots.
|
| field.label = ASCIIToUTF16("m.i.");
|
| // Note: This pattern is misleading as the "." characters are wild cards.
|
| - EXPECT_TRUE(FormField::Match(&field, ASCIIToUTF16("m.i."),
|
| - FormField::MATCH_LABEL));
|
| - EXPECT_TRUE(FormField::Match(&field, ASCIIToUTF16("m\\.i\\."),
|
| - FormField::MATCH_LABEL));
|
| + EXPECT_TRUE(FormField::Match(&field, "m.i.", FormField::MATCH_LABEL));
|
| + EXPECT_TRUE(FormField::Match(&field, "m\\.i\\.", FormField::MATCH_LABEL));
|
| field.label = ASCIIToUTF16("mXiX");
|
| - EXPECT_TRUE(FormField::Match(&field, ASCIIToUTF16("m.i."),
|
| - FormField::MATCH_LABEL));
|
| - EXPECT_FALSE(FormField::Match(&field, ASCIIToUTF16("m\\.i\\."),
|
| - FormField::MATCH_LABEL));
|
| + EXPECT_TRUE(FormField::Match(&field, "m.i.", FormField::MATCH_LABEL));
|
| + EXPECT_FALSE(FormField::Match(&field, "m\\.i\\.", FormField::MATCH_LABEL));
|
|
|
| // Repetition.
|
| field.label = ASCIIToUTF16("headtail");
|
| - EXPECT_TRUE(FormField::Match(&field, ASCIIToUTF16("head.*tail"),
|
| - FormField::MATCH_LABEL));
|
| + EXPECT_TRUE(FormField::Match(&field, "head.*tail", FormField::MATCH_LABEL));
|
| field.label = ASCIIToUTF16("headXtail");
|
| - EXPECT_TRUE(FormField::Match(&field, ASCIIToUTF16("head.*tail"),
|
| - FormField::MATCH_LABEL));
|
| + EXPECT_TRUE(FormField::Match(&field, "head.*tail", FormField::MATCH_LABEL));
|
| field.label = ASCIIToUTF16("headXXXtail");
|
| - EXPECT_TRUE(FormField::Match(&field, ASCIIToUTF16("head.*tail"),
|
| - FormField::MATCH_LABEL));
|
| + EXPECT_TRUE(FormField::Match(&field, "head.*tail", FormField::MATCH_LABEL));
|
| field.label = ASCIIToUTF16("headtail");
|
| - EXPECT_FALSE(FormField::Match(&field, ASCIIToUTF16("head.+tail"),
|
| - FormField::MATCH_LABEL));
|
| + EXPECT_FALSE(FormField::Match(&field, "head.+tail", FormField::MATCH_LABEL));
|
| field.label = ASCIIToUTF16("headXtail");
|
| - EXPECT_TRUE(FormField::Match(&field, ASCIIToUTF16("head.+tail"),
|
| - FormField::MATCH_LABEL));
|
| + EXPECT_TRUE(FormField::Match(&field, "head.+tail", FormField::MATCH_LABEL));
|
| field.label = ASCIIToUTF16("headXXXtail");
|
| - EXPECT_TRUE(FormField::Match(&field, ASCIIToUTF16("head.+tail"),
|
| - FormField::MATCH_LABEL));
|
| + EXPECT_TRUE(FormField::Match(&field, "head.+tail", FormField::MATCH_LABEL));
|
|
|
| // Alternation.
|
| field.label = ASCIIToUTF16("head_tail");
|
| - EXPECT_TRUE(FormField::Match(&field, ASCIIToUTF16("head|other"),
|
| - FormField::MATCH_LABEL));
|
| - EXPECT_TRUE(FormField::Match(&field, ASCIIToUTF16("tail|other"),
|
| - FormField::MATCH_LABEL));
|
| - EXPECT_FALSE(FormField::Match(&field, ASCIIToUTF16("bad|good"),
|
| - FormField::MATCH_LABEL));
|
| + EXPECT_TRUE(FormField::Match(&field, "head|other", FormField::MATCH_LABEL));
|
| + EXPECT_TRUE(FormField::Match(&field, "tail|other", FormField::MATCH_LABEL));
|
| + EXPECT_FALSE(FormField::Match(&field, "bad|good", FormField::MATCH_LABEL));
|
|
|
| // Case sensitivity.
|
| field.label = ASCIIToUTF16("xxxHeAd_tAiLxxx");
|
| - EXPECT_TRUE(FormField::Match(&field, ASCIIToUTF16("head_tail"),
|
| - FormField::MATCH_LABEL));
|
| + EXPECT_TRUE(FormField::Match(&field, "head_tail", FormField::MATCH_LABEL));
|
|
|
| // Word boundaries.
|
| + const std::string kWordBoundary = "(\\A|\\z|\\PL)";
|
| field.label = ASCIIToUTF16("contains word:");
|
| - EXPECT_TRUE(FormField::Match(&field, ASCIIToUTF16("\\bword\\b"),
|
| + EXPECT_TRUE(FormField::Match(&field, kWordBoundary + "word" + kWordBoundary,
|
| FormField::MATCH_LABEL));
|
| - EXPECT_FALSE(FormField::Match(&field, ASCIIToUTF16("\\bcon\\b"),
|
| + EXPECT_FALSE(FormField::Match(&field, kWordBoundary + "con" + kWordBoundary,
|
| FormField::MATCH_LABEL));
|
| // Make sure the circumflex in 'crepe' is not treated as a word boundary.
|
| field.label = base::UTF8ToUTF16("cr" "\xC3\xAA" "pe");
|
| - EXPECT_FALSE(FormField::Match(&field, ASCIIToUTF16("\\bcr\\b"),
|
| + EXPECT_FALSE(FormField::Match(&field, kWordBoundary + "cr" + kWordBoundary,
|
| FormField::MATCH_LABEL));
|
| }
|
|
|
|
|