Chromium Code Reviews| 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, |