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

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

Issue 896983003: Componentize ScoredHistoryMatch (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use base::saturated_cast<> to convert from float to int Created 5 years, 10 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
« no previous file with comments | « chrome/browser/history/in_memory_url_index.cc ('k') | chrome/browser/history/scored_history_match.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/history/in_memory_url_index_unittest.cc
diff --git a/chrome/browser/history/in_memory_url_index_unittest.cc b/chrome/browser/history/in_memory_url_index_unittest.cc
index 6e60f4bae470f414cd96d6ac375fb218d78e4c4d..345382dadc0e7563b547be45f909ad5e70445b07 100644
--- a/chrome/browser/history/in_memory_url_index_unittest.cc
+++ b/chrome/browser/history/in_memory_url_index_unittest.cc
@@ -14,6 +14,7 @@
#include "base/strings/string16.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
+#include "chrome/browser/autocomplete/scored_history_match_builder_impl.h"
#include "chrome/browser/bookmarks/bookmark_model_factory.h"
#include "chrome/browser/history/history_backend.h"
#include "chrome/browser/history/history_service.h"
@@ -24,7 +25,6 @@
#include "chrome/test/base/history_index_restore_observer.h"
#include "chrome/test/base/testing_profile.h"
#include "components/bookmarks/test/bookmark_test_helpers.h"
-#include "components/history/core/browser/history_client.h"
#include "components/history/core/browser/history_database.h"
#include "components/history/core/browser/in_memory_url_index_types.h"
#include "content/public/test/test_browser_thread_bundle.h"
@@ -33,11 +33,6 @@
using base::ASCIIToUTF16;
-namespace {
-const size_t kMaxMatches = 3;
-const char kTestLanguages[] = "en,ja,hi,zh";
-} // namespace
-
// The test version of the history url database table ('url') is contained in
// a database file created from a text file('url_history_provider_test.db.txt').
// The only difference between this table and a live 'urls' table from a
@@ -50,6 +45,10 @@ const char kTestLanguages[] = "en,ja,hi,zh";
// processed when creating the test database.
namespace history {
+namespace {
+const size_t kMaxMatches = 3;
+const char kTestLanguages[] = "en,ja,hi,zh";
+} // namespace
// -----------------------------------------------------------------------------
@@ -130,6 +129,7 @@ class InMemoryURLIndexTest : public testing::Test {
void ExpectPrivateDataEqual(const URLIndexPrivateData& expected,
const URLIndexPrivateData& actual);
+ ScoredHistoryMatchBuilderImpl builder_;
content::TestBrowserThreadBundle thread_bundle_;
scoped_ptr<InMemoryURLIndex> url_index_;
TestingProfile profile_;
@@ -137,7 +137,10 @@ class InMemoryURLIndexTest : public testing::Test {
HistoryDatabase* history_database_;
};
-InMemoryURLIndexTest::InMemoryURLIndexTest() {
+InMemoryURLIndexTest::InMemoryURLIndexTest()
+ : builder_(ScoredHistoryMatchBuilderImpl::IsBookmarkedCallback()),
+ history_service_(nullptr),
+ history_database_(nullptr) {
}
sql::Connection& InMemoryURLIndexTest::GetDB() {
@@ -301,9 +304,8 @@ bool InMemoryURLIndexTest::InitializeInMemoryURLIndexInSetUp() const {
void InMemoryURLIndexTest::InitializeInMemoryURLIndex() {
DCHECK(!url_index_);
- url_index_.reset(new InMemoryURLIndex(history_service_, base::FilePath(),
- kTestLanguages,
- history_service_->history_client()));
+ url_index_.reset(
+ new InMemoryURLIndex(history_service_, base::FilePath(), kTestLanguages));
url_index_->Init();
url_index_->RebuildFromHistory(history_database_);
}
@@ -480,68 +482,72 @@ TEST_F(LimitedInMemoryURLIndexTest, Initialization) {
TEST_F(InMemoryURLIndexTest, MAYBE_Retrieval) {
// See if a very specific term gives a single result.
ScoredHistoryMatches matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("DrudgeReport"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("DrudgeReport"), base::string16::npos, kMaxMatches,
+ builder_);
ASSERT_EQ(1U, matches.size());
// Verify that we got back the result we expected.
EXPECT_EQ(5, matches[0].url_info.id());
EXPECT_EQ("http://drudgereport.com/", matches[0].url_info.url().spec());
EXPECT_EQ(ASCIIToUTF16("DRUDGE REPORT 2010"), matches[0].url_info.title());
- EXPECT_TRUE(matches[0].can_inline());
+ EXPECT_TRUE(matches[0].can_inline);
// Make sure a trailing space prevents inline-ability but still results
// in the expected result.
- matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("DrudgeReport "), base::string16::npos, kMaxMatches);
+ matches = url_index_->HistoryItemsForTerms(ASCIIToUTF16("DrudgeReport "),
+ base::string16::npos, kMaxMatches,
+ builder_);
ASSERT_EQ(1U, matches.size());
EXPECT_EQ(5, matches[0].url_info.id());
EXPECT_EQ("http://drudgereport.com/", matches[0].url_info.url().spec());
EXPECT_EQ(ASCIIToUTF16("DRUDGE REPORT 2010"), matches[0].url_info.title());
- EXPECT_FALSE(matches[0].can_inline());
+ EXPECT_FALSE(matches[0].can_inline);
// Search which should result in multiple results.
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("drudge"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("drudge"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(2U, matches.size());
// The results should be in descending score order.
- EXPECT_GE(matches[0].raw_score(), matches[1].raw_score());
+ EXPECT_GE(matches[0].raw_score, matches[1].raw_score);
// Search which should result in nearly perfect result.
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("Nearly Perfect Result"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("Nearly Perfect Result"), base::string16::npos, kMaxMatches,
+ builder_);
ASSERT_EQ(1U, matches.size());
// The results should have a very high score.
- EXPECT_GT(matches[0].raw_score(), 900);
+ EXPECT_GT(matches[0].raw_score, 900);
EXPECT_EQ(32, matches[0].url_info.id());
EXPECT_EQ("https://nearlyperfectresult.com/",
matches[0].url_info.url().spec()); // Note: URL gets lowercased.
EXPECT_EQ(ASCIIToUTF16("Practically Perfect Search Result"),
matches[0].url_info.title());
- EXPECT_FALSE(matches[0].can_inline());
+ EXPECT_FALSE(matches[0].can_inline);
// Search which should result in very poor result.
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("qui c"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("qui c"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
// The results should have a poor score.
- EXPECT_LT(matches[0].raw_score(), 500);
+ EXPECT_LT(matches[0].raw_score, 500);
EXPECT_EQ(33, matches[0].url_info.id());
EXPECT_EQ("http://quiteuselesssearchresultxyz.com/",
matches[0].url_info.url().spec()); // Note: URL gets lowercased.
EXPECT_EQ(ASCIIToUTF16("Practically Useless Search Result"),
matches[0].url_info.title());
- EXPECT_FALSE(matches[0].can_inline());
+ EXPECT_FALSE(matches[0].can_inline);
// Search which will match at the end of an URL with encoded characters.
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("Mice"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("Mice"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
EXPECT_EQ(30, matches[0].url_info.id());
- EXPECT_FALSE(matches[0].can_inline());
+ EXPECT_FALSE(matches[0].can_inline);
// Check that URLs are not escaped an escape time.
- matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("1% wikipedia"), base::string16::npos, kMaxMatches);
+ matches = url_index_->HistoryItemsForTerms(ASCIIToUTF16("1% wikipedia"),
+ base::string16::npos, kMaxMatches,
+ builder_);
ASSERT_EQ(1U, matches.size());
EXPECT_EQ(35, matches[0].url_info.id());
EXPECT_EQ("http://en.wikipedia.org/wiki/1%25_rule_(Internet_culture)",
@@ -550,49 +556,50 @@ TEST_F(InMemoryURLIndexTest, MAYBE_Retrieval) {
// Verify that a single term can appear multiple times in the URL and as long
// as one starts the URL it is still inlined.
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("fubar"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("fubar"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
EXPECT_EQ(34, matches[0].url_info.id());
EXPECT_EQ("http://fubarfubarandfubar.com/", matches[0].url_info.url().spec());
EXPECT_EQ(ASCIIToUTF16("Situation Normal -- FUBARED"),
matches[0].url_info.title());
- EXPECT_TRUE(matches[0].can_inline());
+ EXPECT_TRUE(matches[0].can_inline);
}
TEST_F(InMemoryURLIndexTest, CursorPositionRetrieval) {
// See if a very specific term with no cursor gives an empty result.
ScoredHistoryMatches matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("DrudReport"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("DrudReport"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(0U, matches.size());
// The same test with the cursor at the end should give an empty result.
- matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("DrudReport"), 10u, kMaxMatches);
+ matches = url_index_->HistoryItemsForTerms(ASCIIToUTF16("DrudReport"), 10u,
+ kMaxMatches, builder_);
ASSERT_EQ(0U, matches.size());
// If the cursor is between Drud and Report, we should find the desired
// result.
- matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("DrudReport"), 4u, kMaxMatches);
+ matches = url_index_->HistoryItemsForTerms(ASCIIToUTF16("DrudReport"), 4u,
+ kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
EXPECT_EQ("http://drudgereport.com/", matches[0].url_info.url().spec());
EXPECT_EQ(ASCIIToUTF16("DRUDGE REPORT 2010"), matches[0].url_info.title());
// Now check multi-word inputs. No cursor should fail to find a
// result on this input.
- matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("MORTGAGERATE DROPS"), base::string16::npos, kMaxMatches);
+ matches = url_index_->HistoryItemsForTerms(ASCIIToUTF16("MORTGAGERATE DROPS"),
+ base::string16::npos, kMaxMatches,
+ builder_);
ASSERT_EQ(0U, matches.size());
// Ditto with cursor at end.
- matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("MORTGAGERATE DROPS"), 18u, kMaxMatches);
+ matches = url_index_->HistoryItemsForTerms(ASCIIToUTF16("MORTGAGERATE DROPS"),
+ 18u, kMaxMatches, builder_);
ASSERT_EQ(0U, matches.size());
// If the cursor is between MORTAGE And RATE, we should find the
// desired result.
- matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("MORTGAGERATE DROPS"), 8u, kMaxMatches);
+ matches = url_index_->HistoryItemsForTerms(ASCIIToUTF16("MORTGAGERATE DROPS"),
+ 8u, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
EXPECT_EQ("http://www.reuters.com/article/idUSN0839880620100708",
matches[0].url_info.url().spec());
@@ -604,67 +611,68 @@ TEST_F(InMemoryURLIndexTest, CursorPositionRetrieval) {
TEST_F(InMemoryURLIndexTest, URLPrefixMatching) {
// "drudgere" - found, can inline
ScoredHistoryMatches matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("drudgere"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("drudgere"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
- EXPECT_TRUE(matches[0].can_inline());
+ EXPECT_TRUE(matches[0].can_inline);
// "drudgere" - found, can inline
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("drudgere"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("drudgere"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
- EXPECT_TRUE(matches[0].can_inline());
+ EXPECT_TRUE(matches[0].can_inline);
// "www.atdmt" - not found
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("www.atdmt"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("www.atdmt"), base::string16::npos, kMaxMatches, builder_);
EXPECT_EQ(0U, matches.size());
// "atdmt" - found, cannot inline
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("atdmt"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("atdmt"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
- EXPECT_FALSE(matches[0].can_inline());
+ EXPECT_FALSE(matches[0].can_inline);
// "view.atdmt" - found, can inline
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("view.atdmt"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("view.atdmt"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
- EXPECT_TRUE(matches[0].can_inline());
+ EXPECT_TRUE(matches[0].can_inline);
// "view.atdmt" - found, can inline
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("view.atdmt"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("view.atdmt"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
- EXPECT_TRUE(matches[0].can_inline());
+ EXPECT_TRUE(matches[0].can_inline);
// "cnn.com" - found, can inline
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("cnn.com"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("cnn.com"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(2U, matches.size());
// One match should be inline-able, the other not.
- EXPECT_TRUE(matches[0].can_inline() != matches[1].can_inline());
+ EXPECT_TRUE(matches[0].can_inline != matches[1].can_inline);
// "www.cnn.com" - found, can inline
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("www.cnn.com"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("www.cnn.com"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
- EXPECT_TRUE(matches[0].can_inline());
+ EXPECT_TRUE(matches[0].can_inline);
// "ww.cnn.com" - found because we allow mid-term matches in hostnames
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("ww.cnn.com"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("ww.cnn.com"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
// "www.cnn.com" - found, can inline
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("www.cnn.com"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("www.cnn.com"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
- EXPECT_TRUE(matches[0].can_inline());
+ EXPECT_TRUE(matches[0].can_inline);
// "tp://www.cnn.com" - not found because we don't allow tp as a mid-term
// match
- matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("tp://www.cnn.com"), base::string16::npos, kMaxMatches);
+ matches = url_index_->HistoryItemsForTerms(ASCIIToUTF16("tp://www.cnn.com"),
+ base::string16::npos, kMaxMatches,
+ builder_);
ASSERT_EQ(0U, matches.size());
}
@@ -674,13 +682,13 @@ TEST_F(InMemoryURLIndexTest, ProperStringMatching) {
// "atdmt.view" - not found
// "view.atdmt" - found
ScoredHistoryMatches matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("atdmt view"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("atdmt view"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("atdmt.view"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("atdmt.view"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(0U, matches.size());
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("view.atdmt"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("view.atdmt"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
}
@@ -693,7 +701,7 @@ TEST_F(InMemoryURLIndexTest, HugeResultSet) {
}
ScoredHistoryMatches matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("b"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("b"), base::string16::npos, kMaxMatches, builder_);
URLIndexPrivateData& private_data(*GetPrivateData());
ASSERT_EQ(kMaxMatches, matches.size());
// There are 7 matches already in the database.
@@ -714,7 +722,8 @@ TEST_F(InMemoryURLIndexTest, MAYBE_TitleSearch) {
// Ensure title is being searched.
ScoredHistoryMatches matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("MORTGAGE RATE DROPS"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("MORTGAGE RATE DROPS"), base::string16::npos, kMaxMatches,
+ builder_);
ASSERT_EQ(1U, matches.size());
// Verify that we got back the result we expected.
@@ -731,7 +740,7 @@ TEST_F(InMemoryURLIndexTest, TitleChange) {
base::string16 original_terms =
ASCIIToUTF16("lebronomics could high taxes influence");
ScoredHistoryMatches matches = url_index_->HistoryItemsForTerms(
- original_terms, base::string16::npos, kMaxMatches);
+ original_terms, base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
// Verify that we got back the result we expected.
@@ -746,8 +755,8 @@ TEST_F(InMemoryURLIndexTest, TitleChange) {
// Verify new title terms retrieves nothing.
base::string16 new_terms = ASCIIToUTF16("does eat oats little lambs ivy");
- matches = url_index_->HistoryItemsForTerms(
- new_terms, base::string16::npos, kMaxMatches);
+ matches = url_index_->HistoryItemsForTerms(new_terms, base::string16::npos,
+ kMaxMatches, builder_);
ASSERT_EQ(0U, matches.size());
// Update the row.
@@ -755,12 +764,12 @@ TEST_F(InMemoryURLIndexTest, TitleChange) {
EXPECT_TRUE(UpdateURL(old_row));
// Verify we get the row using the new terms but not the original terms.
- matches = url_index_->HistoryItemsForTerms(
- new_terms, base::string16::npos, kMaxMatches);
+ matches = url_index_->HistoryItemsForTerms(new_terms, base::string16::npos,
+ kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
EXPECT_EQ(expected_id, matches[0].url_info.id());
matches = url_index_->HistoryItemsForTerms(
- original_terms, base::string16::npos, kMaxMatches);
+ original_terms, base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(0U, matches.size());
}
@@ -768,29 +777,29 @@ TEST_F(InMemoryURLIndexTest, NonUniqueTermCharacterSets) {
// The presence of duplicate characters should succeed. Exercise by cycling
// through a string with several duplicate characters.
ScoredHistoryMatches matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("ABRA"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("ABRA"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
EXPECT_EQ(28, matches[0].url_info.id());
EXPECT_EQ("http://www.ddj.com/windows/184416623",
matches[0].url_info.url().spec());
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("ABRACAD"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("ABRACAD"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
EXPECT_EQ(28, matches[0].url_info.id());
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("ABRACADABRA"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("ABRACADABRA"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
EXPECT_EQ(28, matches[0].url_info.id());
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("ABRACADABR"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("ABRACADABR"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
EXPECT_EQ(28, matches[0].url_info.id());
matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("ABRACA"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("ABRACA"), base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(1U, matches.size());
EXPECT_EQ(28, matches[0].url_info.id());
}
@@ -811,23 +820,23 @@ TEST_F(InMemoryURLIndexTest, TypedCharacterCaching) {
// Simulate typing "r" giving "r" in the simulated omnibox. The results for
// 'r' will be not cached because it is only 1 character long.
- url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("r"), base::string16::npos, kMaxMatches);
+ url_index_->HistoryItemsForTerms(ASCIIToUTF16("r"), base::string16::npos,
+ kMaxMatches, builder_);
EXPECT_EQ(0U, cache.size());
// Simulate typing "re" giving "r re" in the simulated omnibox.
// 're' should be cached at this point but not 'r' as it is a single
// character.
- url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("r re"), base::string16::npos, kMaxMatches);
+ url_index_->HistoryItemsForTerms(ASCIIToUTF16("r re"), base::string16::npos,
+ kMaxMatches, builder_);
ASSERT_EQ(1U, cache.size());
CheckTerm(cache, ASCIIToUTF16("re"));
// Simulate typing "reco" giving "r re reco" in the simulated omnibox.
// 're' and 'reco' should be cached at this point but not 'r' as it is a
// single character.
- url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("r re reco"), base::string16::npos, kMaxMatches);
+ url_index_->HistoryItemsForTerms(ASCIIToUTF16("r re reco"),
+ base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(2U, cache.size());
CheckTerm(cache, ASCIIToUTF16("re"));
CheckTerm(cache, ASCIIToUTF16("reco"));
@@ -835,21 +844,21 @@ TEST_F(InMemoryURLIndexTest, TypedCharacterCaching) {
// Simulate typing "mort".
// Since we now have only one search term, the cached results for 're' and
// 'reco' should be purged, giving us only 1 item in the cache (for 'mort').
- url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("mort"), base::string16::npos, kMaxMatches);
+ url_index_->HistoryItemsForTerms(ASCIIToUTF16("mort"), base::string16::npos,
+ kMaxMatches, builder_);
ASSERT_EQ(1U, cache.size());
CheckTerm(cache, ASCIIToUTF16("mort"));
// Simulate typing "reco" giving "mort reco" in the simulated omnibox.
- url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("mort reco"), base::string16::npos, kMaxMatches);
+ url_index_->HistoryItemsForTerms(ASCIIToUTF16("mort reco"),
+ base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(2U, cache.size());
CheckTerm(cache, ASCIIToUTF16("mort"));
CheckTerm(cache, ASCIIToUTF16("reco"));
// Simulate a <DELETE> by removing the 'reco' and adding back the 'rec'.
- url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("mort rec"), base::string16::npos, kMaxMatches);
+ url_index_->HistoryItemsForTerms(ASCIIToUTF16("mort rec"),
+ base::string16::npos, kMaxMatches, builder_);
ASSERT_EQ(2U, cache.size());
CheckTerm(cache, ASCIIToUTF16("mort"));
CheckTerm(cache, ASCIIToUTF16("rec"));
@@ -860,9 +869,9 @@ TEST_F(InMemoryURLIndexTest, AddNewRows) {
URLID new_row_id = 87654321;
// Newly created URLRows get a last_visit time of 'right now' so it should
// qualify as a quick result candidate.
- EXPECT_TRUE(url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("brokeandalone"), base::string16::npos, kMaxMatches)
- .empty());
+ EXPECT_TRUE(url_index_->HistoryItemsForTerms(ASCIIToUTF16("brokeandalone"),
+ base::string16::npos,
+ kMaxMatches, builder_).empty());
// Add a new row.
URLRow new_row(GURL("http://www.brokeandaloneinmanitoba.com/"), new_row_id++);
@@ -870,14 +879,16 @@ TEST_F(InMemoryURLIndexTest, AddNewRows) {
EXPECT_TRUE(UpdateURL(new_row));
// Verify that we can retrieve it.
- EXPECT_EQ(1U, url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("brokeandalone"), base::string16::npos, kMaxMatches).size());
+ EXPECT_EQ(1U, url_index_->HistoryItemsForTerms(ASCIIToUTF16("brokeandalone"),
+ base::string16::npos,
+ kMaxMatches, builder_).size());
// Add it again just to be sure that is harmless and that it does not update
// the index.
EXPECT_FALSE(UpdateURL(new_row));
- EXPECT_EQ(1U, url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("brokeandalone"), base::string16::npos, kMaxMatches).size());
+ EXPECT_EQ(1U, url_index_->HistoryItemsForTerms(ASCIIToUTF16("brokeandalone"),
+ base::string16::npos,
+ kMaxMatches, builder_).size());
// Make up an URL that does not qualify and try to add it.
URLRow unqualified_row(GURL("http://www.brokeandaloneinmanitoba.com/"),
@@ -887,13 +898,15 @@ TEST_F(InMemoryURLIndexTest, AddNewRows) {
TEST_F(InMemoryURLIndexTest, DeleteRows) {
ScoredHistoryMatches matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("DrudgeReport"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("DrudgeReport"), base::string16::npos, kMaxMatches,
+ builder_);
ASSERT_EQ(1U, matches.size());
// Delete the URL then search again.
EXPECT_TRUE(DeleteURL(matches[0].url_info.url()));
- EXPECT_TRUE(url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("DrudgeReport"), base::string16::npos, kMaxMatches).empty());
+ EXPECT_TRUE(url_index_->HistoryItemsForTerms(ASCIIToUTF16("DrudgeReport"),
+ base::string16::npos,
+ kMaxMatches, builder_).empty());
// Make up an URL that does not exist in the database and delete it.
GURL url("http://www.hokeypokey.com/putyourrightfootin.html");
@@ -902,7 +915,8 @@ TEST_F(InMemoryURLIndexTest, DeleteRows) {
TEST_F(InMemoryURLIndexTest, ExpireRow) {
ScoredHistoryMatches matches = url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("DrudgeReport"), base::string16::npos, kMaxMatches);
+ ASCIIToUTF16("DrudgeReport"), base::string16::npos, kMaxMatches,
+ builder_);
ASSERT_EQ(1U, matches.size());
// Determine the row id for the result, remember that id, broadcast a
@@ -911,8 +925,9 @@ TEST_F(InMemoryURLIndexTest, ExpireRow) {
deleted_rows.push_back(matches[0].url_info);
url_index_->OnURLsDeleted(nullptr, false, false, deleted_rows,
std::set<GURL>());
- EXPECT_TRUE(url_index_->HistoryItemsForTerms(
- ASCIIToUTF16("DrudgeReport"), base::string16::npos, kMaxMatches).empty());
+ EXPECT_TRUE(url_index_->HistoryItemsForTerms(ASCIIToUTF16("DrudgeReport"),
+ base::string16::npos,
+ kMaxMatches, builder_).empty());
}
TEST_F(InMemoryURLIndexTest, WhitelistedURLs) {
@@ -1208,8 +1223,7 @@ class InMemoryURLIndexCacheTest : public testing::Test {
void InMemoryURLIndexCacheTest::SetUp() {
ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
base::FilePath path(temp_dir_.path());
- url_index_.reset(
- new InMemoryURLIndex(nullptr, path, kTestLanguages, nullptr));
+ url_index_.reset(new InMemoryURLIndex(nullptr, path, kTestLanguages));
}
void InMemoryURLIndexCacheTest::TearDown() {
« no previous file with comments | « chrome/browser/history/in_memory_url_index.cc ('k') | chrome/browser/history/scored_history_match.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698