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

Unified Diff: components/autofill/core/common/autofill_util_unittest.cc

Issue 2906383003: Teach PasswordAutofillAgent sometimes match prefixes of usernames (Closed)
Patch Set: . Created 3 years, 7 months 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/common/autofill_util_unittest.cc
diff --git a/components/autofill/core/common/autofill_util_unittest.cc b/components/autofill/core/common/autofill_util_unittest.cc
index 6e04dc76031f980e818546f76d3881012c25a7bc..67d9ddd80c8bba5ea841e71dd8299f8dec9ef586 100644
--- a/components/autofill/core/common/autofill_util_unittest.cc
+++ b/components/autofill/core/common/autofill_util_unittest.cc
@@ -14,22 +14,22 @@
namespace autofill {
-// Tests for FieldIsSuggestionSubstringStartingOnTokenBoundary().
-struct FieldIsTokenBoundarySubstringCase {
+// Tests for IsSubstringStartingOnTokenBoundary().
+struct TokenBoundaryMatchersCase {
const char* const field_suggestion;
const char* const field_contents;
const bool case_sensitive;
const bool expected_result;
};
-class FieldIsTokenBoundarySubstringCaseTest
- : public testing::TestWithParam<FieldIsTokenBoundarySubstringCase> {};
+class SubstringStartingOnTokenBoundaryTest
+ : public testing::TestWithParam<TokenBoundaryMatchersCase> {};
-TEST_P(FieldIsTokenBoundarySubstringCaseTest,
- FieldIsSuggestionSubstringStartingOnTokenBoundary) {
- // FieldIsSuggestionSubstringStartingOnTokenBoundary should not work yet
+TEST_P(SubstringStartingOnTokenBoundaryTest,
+ IsSubstringStartingOnTokenBoundary) {
+ // IsSubstringStartingOnTokenBoundary should not work yet
// without a flag.
- EXPECT_FALSE(FieldIsSuggestionSubstringStartingOnTokenBoundary(
+ EXPECT_FALSE(IsSubstringStartingOnTokenBoundary(
base::ASCIIToUTF16("ab@cd.b"), base::ASCIIToUTF16("b"), false));
// Token matching is currently behind a flag.
@@ -43,7 +43,7 @@ TEST_P(FieldIsTokenBoundarySubstringCaseTest,
<< ", case_sensitive = " << test_case.case_sensitive);
EXPECT_EQ(test_case.expected_result,
- FieldIsSuggestionSubstringStartingOnTokenBoundary(
+ IsSubstringStartingOnTokenBoundary(
base::ASCIIToUTF16(test_case.field_suggestion),
base::ASCIIToUTF16(test_case.field_contents),
test_case.case_sensitive));
@@ -51,24 +51,60 @@ TEST_P(FieldIsTokenBoundarySubstringCaseTest,
INSTANTIATE_TEST_CASE_P(
AutofillUtilTest,
- FieldIsTokenBoundarySubstringCaseTest,
- testing::Values(
- FieldIsTokenBoundarySubstringCase{"ab@cd.b", "a", false, true},
- FieldIsTokenBoundarySubstringCase{"ab@cd.b", "b", false, true},
- FieldIsTokenBoundarySubstringCase{"ab@cd.b", "Ab", false, true},
- FieldIsTokenBoundarySubstringCase{"ab@cd.b", "Ab", true, false},
- FieldIsTokenBoundarySubstringCase{"ab@cd.b", "cd", true, true},
- FieldIsTokenBoundarySubstringCase{"ab@cd.b", "d", false, false},
- FieldIsTokenBoundarySubstringCase{"ab@cd.b", "b@", true, false},
- FieldIsTokenBoundarySubstringCase{"ab@cd.b", "ab", false, true},
- FieldIsTokenBoundarySubstringCase{"ab@cd.b", "cd.b", true, true},
- FieldIsTokenBoundarySubstringCase{"ab@cd.b", "b@cd", false, false},
- FieldIsTokenBoundarySubstringCase{"ab@cd.b", "ab@c", false, true},
- FieldIsTokenBoundarySubstringCase{"ba.a.ab", "a.a", false, true},
- FieldIsTokenBoundarySubstringCase{"", "ab", false, false},
- FieldIsTokenBoundarySubstringCase{"", "ab", true, false},
- FieldIsTokenBoundarySubstringCase{"ab", "", false, true},
- FieldIsTokenBoundarySubstringCase{"ab", "", true, true}));
+ SubstringStartingOnTokenBoundaryTest,
+ testing::Values(TokenBoundaryMatchersCase{"ab@cd.b", "a", false, true},
+ TokenBoundaryMatchersCase{"ab@cd.b", "b", false, true},
+ TokenBoundaryMatchersCase{"ab@cd.b", "Ab", false, true},
+ TokenBoundaryMatchersCase{"ab@cd.b", "Ab", true, false},
+ TokenBoundaryMatchersCase{"ab@cd.b", "cd", true, true},
+ TokenBoundaryMatchersCase{"ab@cd.b", "d", false, false},
+ TokenBoundaryMatchersCase{"ab@cd.b", "b@", true, false},
+ TokenBoundaryMatchersCase{"ab@cd.b", "ab", false, true},
+ TokenBoundaryMatchersCase{"ab@cd.b", "cd.b", true, true},
+ TokenBoundaryMatchersCase{"ab@cd.b", "b@cd", false, false},
+ TokenBoundaryMatchersCase{"ab@cd.b", "ab@c", false, true},
+ TokenBoundaryMatchersCase{"ba.a.ab", "a.a", false, true},
+ TokenBoundaryMatchersCase{"", "ab", false, false},
+ TokenBoundaryMatchersCase{"", "ab", true, false},
+ TokenBoundaryMatchersCase{"ab", "", false, true},
+ TokenBoundaryMatchersCase{"ab", "", true, true}));
+
+class PrefixStartingOnTokenBoundaryTest
+ : public testing::TestWithParam<TokenBoundaryMatchersCase> {};
+
+TEST_P(PrefixStartingOnTokenBoundaryTest, IsPrefixStartingOnTokenBoundary) {
+ auto test_case = GetParam();
+ SCOPED_TRACE(testing::Message()
+ << "suggestion = " << test_case.field_suggestion
+ << ", contents = " << test_case.field_contents
+ << ", case_sensitive = " << test_case.case_sensitive);
+
+ EXPECT_EQ(test_case.expected_result,
+ IsPrefixStartingOnTokenBoundary(
+ base::ASCIIToUTF16(test_case.field_suggestion),
+ base::ASCIIToUTF16(test_case.field_contents),
+ test_case.case_sensitive));
+}
+
+INSTANTIATE_TEST_CASE_P(
+ AutofillUtilTest,
+ PrefixStartingOnTokenBoundaryTest,
+ testing::Values(TokenBoundaryMatchersCase{"ab@cd.b", "a", false, false},
+ TokenBoundaryMatchersCase{"ab@cd.b", "b", false, false},
+ TokenBoundaryMatchersCase{"ab@cd.b", "Ab", false, true},
+ TokenBoundaryMatchersCase{"ab@cd.b", "Ab", true, false},
+ TokenBoundaryMatchersCase{"ab@cd.b", "cd", true, false},
+ TokenBoundaryMatchersCase{"ab@cd.b", "d", false, false},
+ TokenBoundaryMatchersCase{"ab@cd.b", "b@", true, false},
+ TokenBoundaryMatchersCase{"ab@cd.b", "ab", false, true},
+ TokenBoundaryMatchersCase{"ab@cd.b", "cd.b", true, false},
+ TokenBoundaryMatchersCase{"ab@cd.b", "b@cd", false, false},
+ TokenBoundaryMatchersCase{"ab@cd.b", "ab@c", false, false},
+ TokenBoundaryMatchersCase{"ba.a.ab", "a.a", false, false},
+ TokenBoundaryMatchersCase{"", "ab", false, false},
+ TokenBoundaryMatchersCase{"", "ab", true, false},
+ TokenBoundaryMatchersCase{"ab", "", false, false},
+ TokenBoundaryMatchersCase{"ab", "", true, false}));
// Tests for GetTextSelectionStart().
struct GetTextSelectionStartCase {
@@ -84,8 +120,8 @@ class GetTextSelectionStartTest
TEST_P(GetTextSelectionStartTest, GetTextSelectionStart) {
auto test_case = GetParam();
SCOPED_TRACE(testing::Message()
- << "suggestion = " << test_case.field_suggestion
- << ", contents = " << test_case.field_contents
+ << "full string = " << test_case.field_suggestion
+ << ", prefix = " << test_case.field_contents
<< ", case_sensitive = " << test_case.case_sensitive);
EXPECT_EQ(
test_case.expected_start,

Powered by Google App Engine
This is Rietveld 408576698