| Index: chrome/browser/history/scored_history_match_unittest.cc
|
| diff --git a/chrome/browser/history/scored_history_match_unittest.cc b/chrome/browser/history/scored_history_match_unittest.cc
|
| index ec1072ce3e595e960a329eb99ac898de839e5375..4b24faac251762c1a02aeb52b983ff5014164fea 100644
|
| --- a/chrome/browser/history/scored_history_match_unittest.cc
|
| +++ b/chrome/browser/history/scored_history_match_unittest.cc
|
| @@ -77,6 +77,85 @@ float ScoredHistoryMatchTest::GetTopicalityScoreOfTermAgainstURLAndTitle(
|
| 1, url, url_matches, title_matches, word_starts);
|
| }
|
|
|
| +TEST_F(ScoredHistoryMatchTest, MakeTermMatchesOnlyAtWordBoundaries) {
|
| + TermMatches matches, matches_at_word_boundaries;
|
| + WordStarts word_starts;
|
| +
|
| + // no matches but some word starts -> no matches at word boundary
|
| + matches.clear();
|
| + word_starts.clear();
|
| + word_starts.push_back(2);
|
| + word_starts.push_back(5);
|
| + word_starts.push_back(10);
|
| + ScoredHistoryMatch::MakeTermMatchesOnlyAtWordBoundaries(
|
| + matches, word_starts, &matches_at_word_boundaries);
|
| + EXPECT_EQ(0u, matches_at_word_boundaries.size());
|
| +
|
| + // matches but no word starts -> no matches at word boundary
|
| + matches.clear();
|
| + matches.push_back(TermMatch(0, 1, 2)); // 2-character match at pos 1
|
| + matches.push_back(TermMatch(0, 7, 2)); // 2-character match at pos 7
|
| + word_starts.clear();
|
| + ScoredHistoryMatch::MakeTermMatchesOnlyAtWordBoundaries(
|
| + matches, word_starts, &matches_at_word_boundaries);
|
| + EXPECT_EQ(0u, matches_at_word_boundaries.size());
|
| +
|
| + // matches and word starts don't overlap -> no matches at word boundary
|
| + matches.clear();
|
| + matches.push_back(TermMatch(0, 1, 2)); // 2-character match at pos 1
|
| + matches.push_back(TermMatch(0, 7, 2)); // 2-character match at pos 7
|
| + word_starts.clear();
|
| + word_starts.push_back(2);
|
| + word_starts.push_back(5);
|
| + word_starts.push_back(10);
|
| + ScoredHistoryMatch::MakeTermMatchesOnlyAtWordBoundaries(
|
| + matches, word_starts, &matches_at_word_boundaries);
|
| + EXPECT_EQ(0u, matches_at_word_boundaries.size());
|
| +
|
| + // some matches are at word boundary and some aren't
|
| + matches.clear();
|
| + matches.push_back(TermMatch(0, 1, 2)); // 2-character match at pos 1
|
| + matches.push_back(TermMatch(1, 6, 3)); // 3-character match at pos 6
|
| + matches.push_back(TermMatch(0, 8, 2)); // 2-character match at pos 8
|
| + matches.push_back(TermMatch(2, 15, 7)); // 7-character match at pos 15
|
| + matches.push_back(TermMatch(1, 26, 3)); // 3-character match at pos 26
|
| + word_starts.clear();
|
| + word_starts.push_back(0);
|
| + word_starts.push_back(6);
|
| + word_starts.push_back(9);
|
| + word_starts.push_back(15);
|
| + word_starts.push_back(24);
|
| + ScoredHistoryMatch::MakeTermMatchesOnlyAtWordBoundaries(
|
| + matches, word_starts, &matches_at_word_boundaries);
|
| + EXPECT_EQ(2u, matches_at_word_boundaries.size());
|
| + EXPECT_EQ(1, matches_at_word_boundaries[0].term_num);
|
| + EXPECT_EQ(6u, matches_at_word_boundaries[0].offset);
|
| + EXPECT_EQ(3u, matches_at_word_boundaries[0].length);
|
| + EXPECT_EQ(2, matches_at_word_boundaries[1].term_num);
|
| + EXPECT_EQ(15u, matches_at_word_boundaries[1].offset);
|
| + EXPECT_EQ(7u, matches_at_word_boundaries[1].length);
|
| +
|
| + // all matches are at word boundary
|
| + matches.clear();
|
| + matches.push_back(TermMatch(0, 2, 2)); // 2-character match at pos 2
|
| + matches.push_back(TermMatch(1, 9, 3)); // 3-character match at pos 9
|
| + word_starts.clear();
|
| + word_starts.push_back(0);
|
| + word_starts.push_back(2);
|
| + word_starts.push_back(6);
|
| + word_starts.push_back(9);
|
| + word_starts.push_back(15);
|
| + ScoredHistoryMatch::MakeTermMatchesOnlyAtWordBoundaries(
|
| + matches, word_starts, &matches_at_word_boundaries);
|
| + EXPECT_EQ(2u, matches_at_word_boundaries.size());
|
| + EXPECT_EQ(0, matches_at_word_boundaries[0].term_num);
|
| + EXPECT_EQ(2u, matches_at_word_boundaries[0].offset);
|
| + EXPECT_EQ(2u, matches_at_word_boundaries[0].length);
|
| + EXPECT_EQ(1, matches_at_word_boundaries[1].term_num);
|
| + EXPECT_EQ(9u, matches_at_word_boundaries[1].offset);
|
| + EXPECT_EQ(3u, matches_at_word_boundaries[1].length);
|
| +}
|
| +
|
| TEST_F(ScoredHistoryMatchTest, Scoring) {
|
| URLRow row_a(MakeURLRow("http://abcdef", "fedcba", 3, 30, 1));
|
| // We use NowFromSystemTime() because MakeURLRow uses the same function
|
|
|