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

Unified Diff: chrome/browser/history/scored_history_match_unittest.cc

Issue 11421139: Omnibox: Create Field Trial for HQP to Ignore Mid-Word Matches (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Peter's comments. Created 8 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
« no previous file with comments | « chrome/browser/history/scored_history_match.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « chrome/browser/history/scored_history_match.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698