Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Unified Diff: components/autofill/core/browser/form_field_unittest.cc

Issue 1453193002: autofill: switch autofill_regexes to RE2 library (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address reviews Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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));
}

Powered by Google App Engine
This is Rietveld 408576698