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

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

Issue 2906383003: Teach PasswordAutofillAgent sometimes match prefixes of usernames (Closed)
Patch Set: dvadym@ comments Created 3 years, 6 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..b746981039b4ba6f5e37741abd5af4f8bcf1a7c4 100644
--- a/components/autofill/core/common/autofill_util_unittest.cc
+++ b/components/autofill/core/common/autofill_util_unittest.cc
@@ -14,22 +14,28 @@
namespace autofill {
-// Tests for FieldIsSuggestionSubstringStartingOnTokenBoundary().
-struct FieldIsTokenBoundarySubstringCase {
+// Tests for IsSubstringStartingOnTokenBoundary().
+struct TokenBoundarySubstringCase {
const char* const field_suggestion;
const char* const field_contents;
const bool case_sensitive;
const bool expected_result;
};
-class FieldIsTokenBoundarySubstringCaseTest
- : public testing::TestWithParam<FieldIsTokenBoundarySubstringCase> {};
+struct TokenBoundaryPrefixCase {
vabr (Chromium) 2017/06/12 18:56:59 nit: Please move this just before its first use.
melandory 2017/06/19 10:53:48 Done.
+ const char* const field_suggestion;
+ const char* const field_contents;
+ const bool expected_result;
+};
+
+class SubstringStartingOnTokenBoundaryTest
vabr (Chromium) 2017/06/12 18:56:59 nit: Similarly to the name of FieldIsSuggestionSub
melandory 2017/06/19 10:53:48 Done.
+ : public testing::TestWithParam<TokenBoundarySubstringCase> {};
-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 +49,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 +57,57 @@ 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(TokenBoundarySubstringCase{"ab@cd.b", "a", false, true},
+ TokenBoundarySubstringCase{"ab@cd.b", "b", false, true},
+ TokenBoundarySubstringCase{"ab@cd.b", "Ab", false, true},
+ TokenBoundarySubstringCase{"ab@cd.b", "Ab", true, false},
+ TokenBoundarySubstringCase{"ab@cd.b", "cd", true, true},
+ TokenBoundarySubstringCase{"ab@cd.b", "d", false, false},
+ TokenBoundarySubstringCase{"ab@cd.b", "b@", true, false},
+ TokenBoundarySubstringCase{"ab@cd.b", "ab", false, true},
+ TokenBoundarySubstringCase{"ab@cd.b", "cd.b", true, true},
+ TokenBoundarySubstringCase{"ab@cd.b", "b@cd", false, false},
+ TokenBoundarySubstringCase{"ab@cd.b", "ab@c", false, true},
+ TokenBoundarySubstringCase{"ba.a.ab", "a.a", false, true},
+ TokenBoundarySubstringCase{"", "ab", false, false},
+ TokenBoundarySubstringCase{"", "ab", true, false},
+ TokenBoundarySubstringCase{"ab", "", false, true},
+ TokenBoundarySubstringCase{"ab", "", true, true}));
+
+class PrefixEndingOnTokenBoundaryTest
+ : public testing::TestWithParam<TokenBoundaryPrefixCase> {};
+
+TEST_P(PrefixEndingOnTokenBoundaryTest, IsPrefixEndingOnTokenBoundary) {
+ auto test_case = GetParam();
+ SCOPED_TRACE(testing::Message()
+ << "suggestion = " << test_case.field_suggestion
+ << ", contents = " << test_case.field_contents);
+
+ EXPECT_EQ(test_case.expected_result,
+ IsPrefixEndingOnTokenBoundary(
+ base::ASCIIToUTF16(test_case.field_suggestion),
+ base::ASCIIToUTF16(test_case.field_contents)));
+}
+
+INSTANTIATE_TEST_CASE_P(
+ AutofillUtilTest,
+ PrefixEndingOnTokenBoundaryTest,
+ testing::Values(TokenBoundaryPrefixCase{"ab@cd.b", "a", false},
+ TokenBoundaryPrefixCase{"ab@cd.b", "b", false},
+ TokenBoundaryPrefixCase{"ab@cd.b", "Ab", false},
+ TokenBoundaryPrefixCase{"ab@cd.b", "cd", false},
+ TokenBoundaryPrefixCase{"ab@cd.b", "d", false},
+ TokenBoundaryPrefixCase{"ab@cd.b", "b@", false},
+ TokenBoundaryPrefixCase{"ab@cd.b", "ab", true},
+ TokenBoundaryPrefixCase{"ab@cd.b", "cd.b", false},
+ TokenBoundaryPrefixCase{"ab@cd.b", "b@cd", false},
+ TokenBoundaryPrefixCase{"ab@cd.b", "ab@c", false},
+ TokenBoundaryPrefixCase{"ba.a.ab", "a.a", false},
+ TokenBoundaryPrefixCase{"", "ab", false},
+ TokenBoundaryPrefixCase{"", "ab", false},
vabr (Chromium) 2017/06/12 18:56:59 Let's not duplicate the test cases :). (Also below
melandory 2017/06/19 10:53:48 Done.
+ TokenBoundaryPrefixCase{"ab", "", false},
+ TokenBoundaryPrefixCase{"ab", "", false}));
vabr (Chromium) 2017/06/12 18:56:59 More cases to add: ab@c, ab@, false ab@cd@g, ab, f
melandory 2017/06/19 10:53:48 Done.
// Tests for GetTextSelectionStart().
struct GetTextSelectionStartCase {
@@ -84,8 +123,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
vabr (Chromium) 2017/06/12 18:56:59 nit: Also here, please do not change the unrelated
melandory 2017/06/19 10:53:48 Done.
+ << ", 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