| Index: components/omnibox/browser/scored_history_match_unittest.cc
|
| diff --git a/components/omnibox/browser/scored_history_match_unittest.cc b/components/omnibox/browser/scored_history_match_unittest.cc
|
| index a4d776115fcc7dfe11775c195f60a585c35a309c..5e7a22f2887879c335559052bb52a710417ad5ff 100644
|
| --- a/components/omnibox/browser/scored_history_match_unittest.cc
|
| +++ b/components/omnibox/browser/scored_history_match_unittest.cc
|
| @@ -9,6 +9,7 @@
|
|
|
| #include "base/auto_reset.h"
|
| #include "base/bind.h"
|
| +#include "base/i18n/break_iterator.h"
|
| #include "base/memory/ptr_util.h"
|
| #include "base/strings/string16.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| @@ -119,8 +120,14 @@ float ScoredHistoryMatchTest::GetTopicalityScoreOfTermAgainstURLAndTitle(
|
| RowWordStarts word_starts;
|
| String16SetFromString16(url, &word_starts.url_word_starts_);
|
| String16SetFromString16(title, &word_starts.title_word_starts_);
|
| - WordStarts one_word_no_offset(1, 0u);
|
| - return scored_match.GetTopicalityScore(1, url, one_word_no_offset,
|
| + WordStarts term_word_starts(1, 0u);
|
| + base::i18n::BreakIterator iter(term, base::i18n::BreakIterator::BREAK_WORD);
|
| + if (iter.Init()) {
|
| + // Find the first word start.
|
| + while (iter.Advance() && !iter.IsWord()) {}
|
| + term_word_starts[0] = iter.prev();
|
| + }
|
| + return scored_match.GetTopicalityScore(1, url, term_word_starts,
|
| word_starts);
|
| }
|
|
|
| @@ -554,23 +561,38 @@ TEST_F(ScoredHistoryMatchTest, GetTopicalityScore) {
|
| const float hostname_mid_word_score =
|
| GetTopicalityScoreOfTermAgainstURLAndTitle(ASCIIToUTF16("bc"), url,
|
| title);
|
| + const float hostname_score_preceeding_punctuation =
|
| + GetTopicalityScoreOfTermAgainstURLAndTitle(ASCIIToUTF16("://abc"), url,
|
| + title);
|
| const float domain_name_score = GetTopicalityScoreOfTermAgainstURLAndTitle(
|
| ASCIIToUTF16("def"), url, title);
|
| const float domain_name_mid_word_score =
|
| GetTopicalityScoreOfTermAgainstURLAndTitle(ASCIIToUTF16("ef"), url,
|
| title);
|
| + const float domain_name_score_preceeding_dot =
|
| + GetTopicalityScoreOfTermAgainstURLAndTitle(ASCIIToUTF16(".def"), url,
|
| + title);
|
| const float tld_score = GetTopicalityScoreOfTermAgainstURLAndTitle(
|
| ASCIIToUTF16("com"), url, title);
|
| const float tld_mid_word_score = GetTopicalityScoreOfTermAgainstURLAndTitle(
|
| ASCIIToUTF16("om"), url, title);
|
| + const float tld_score_preceeding_dot =
|
| + GetTopicalityScoreOfTermAgainstURLAndTitle(ASCIIToUTF16(".com"), url,
|
| + title);
|
| const float path_score = GetTopicalityScoreOfTermAgainstURLAndTitle(
|
| ASCIIToUTF16("path1"), url, title);
|
| const float path_mid_word_score = GetTopicalityScoreOfTermAgainstURLAndTitle(
|
| ASCIIToUTF16("ath1"), url, title);
|
| + const float path_score_preceeding_slash =
|
| + GetTopicalityScoreOfTermAgainstURLAndTitle(ASCIIToUTF16("/path1"), url,
|
| + title);
|
| const float arg_score = GetTopicalityScoreOfTermAgainstURLAndTitle(
|
| - ASCIIToUTF16("arg2"), url, title);
|
| + ASCIIToUTF16("arg1"), url, title);
|
| const float arg_mid_word_score = GetTopicalityScoreOfTermAgainstURLAndTitle(
|
| - ASCIIToUTF16("rg2"), url, title);
|
| + ASCIIToUTF16("rg1"), url, title);
|
| + const float arg_score_preceeding_question_mark =
|
| + GetTopicalityScoreOfTermAgainstURLAndTitle(ASCIIToUTF16("?arg1"), url,
|
| + title);
|
| const float protocol_score = GetTopicalityScoreOfTermAgainstURLAndTitle(
|
| ASCIIToUTF16("htt"), url, title);
|
| const float protocol_mid_word_score =
|
| @@ -584,6 +606,12 @@ TEST_F(ScoredHistoryMatchTest, GetTopicalityScore) {
|
| EXPECT_GT(hostname_score, path_score);
|
| EXPECT_GT(domain_name_score, path_score);
|
| EXPECT_GT(path_score, arg_score);
|
| + // Verify leading punctuation doesn't confuse scoring.
|
| + EXPECT_EQ(hostname_score, hostname_score_preceeding_punctuation);
|
| + EXPECT_EQ(domain_name_score, domain_name_score_preceeding_dot);
|
| + EXPECT_EQ(tld_score, tld_score_preceeding_dot);
|
| + EXPECT_EQ(path_score, path_score_preceeding_slash);
|
| + EXPECT_EQ(arg_score, arg_score_preceeding_question_mark);
|
| // Verify that domain name > path and domain name > arg for non-word
|
| // boundaries.
|
| EXPECT_GT(hostname_mid_word_score, path_mid_word_score);
|
|
|