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)); |
} |