Index: components/omnibox/browser/history_url_provider_unittest.cc |
diff --git a/components/omnibox/browser/history_url_provider_unittest.cc b/components/omnibox/browser/history_url_provider_unittest.cc |
index 3799eb0b7d85f018bedbba64acdbe5cf23ad26cf..c75618e1411da6271b5c29ee8aa090fe2e838821 100644 |
--- a/components/omnibox/browser/history_url_provider_unittest.cc |
+++ b/components/omnibox/browser/history_url_provider_unittest.cc |
@@ -16,10 +16,9 @@ |
#include "base/strings/string_util.h" |
#include "base/strings/utf_string_conversions.h" |
#include "base/time/time.h" |
-#include "components/history/core/browser/history_database_params.h" |
#include "components/history/core/browser/history_service.h" |
#include "components/history/core/browser/url_database.h" |
-#include "components/history/core/test/test_history_database.h" |
+#include "components/history/core/test/history_service_test_util.h" |
#include "components/metrics/proto/omnibox_event.pb.h" |
#include "components/metrics/proto/omnibox_input_type.pb.h" |
#include "components/omnibox/browser/autocomplete_match.h" |
@@ -42,6 +41,8 @@ using base::TimeDelta; |
namespace { |
+const char kDefaultAcceptLanguages[] = "en-US,en,ko"; |
+ |
struct TestURLInfo { |
const char* url; |
const char* title; |
@@ -153,30 +154,15 @@ struct TestURLInfo { |
{"http://7.com/5a", "Five A", 8, 0, 64}, // never typed. |
}; |
-class QuitTask : public history::HistoryDBTask { |
- public: |
- QuitTask() {} |
- |
- bool RunOnDBThread(history::HistoryBackend* backend, |
- history::HistoryDatabase* db) override { |
- return true; |
- } |
- |
- void DoneRunOnMainThread() override { |
- base::MessageLoop::current()->QuitWhenIdle(); |
- } |
- |
- private: |
- ~QuitTask() override {} |
- |
- DISALLOW_COPY_AND_ASSIGN(QuitTask); |
-}; |
- |
class FakeAutocompleteProviderClient : public MockAutocompleteProviderClient { |
public: |
- FakeAutocompleteProviderClient() { |
+ FakeAutocompleteProviderClient(bool create_history_db) { |
set_template_url_service( |
make_scoped_ptr(new TemplateURLService(nullptr, 0))); |
+ if (history_dir_.CreateUniqueTempDir()) { |
+ history_service_ = history::CreateHistoryService( |
+ history_dir_.path(), kDefaultAcceptLanguages, create_history_db); |
+ } |
} |
const AutocompleteSchemeClassifier& GetSchemeClassifier() const override { |
@@ -188,13 +174,14 @@ class FakeAutocompleteProviderClient : public MockAutocompleteProviderClient { |
} |
history::HistoryService* GetHistoryService() override { |
- return &history_service_; |
+ return history_service_.get(); |
} |
private: |
TestSchemeClassifier scheme_classifier_; |
SearchTermsData search_terms_data_; |
- history::HistoryService history_service_; |
+ base::ScopedTempDir history_dir_; |
+ scoped_ptr<history::HistoryService> history_service_; |
DISALLOW_COPY_AND_ASSIGN(FakeAutocompleteProviderClient); |
}; |
@@ -223,13 +210,11 @@ class HistoryURLProviderTest : public testing::Test, |
protected: |
// testing::Test |
- void SetUp() override { |
- ASSERT_TRUE(SetUpImpl(false)); |
- } |
+ void SetUp() override { ASSERT_TRUE(SetUpImpl(true)); } |
void TearDown() override; |
// Does the real setup. |
- bool SetUpImpl(bool no_db) WARN_UNUSED_RESULT; |
+ bool SetUpImpl(bool create_history_db) WARN_UNUSED_RESULT; |
// Fills test data into the history system. |
void FillData(); |
@@ -255,15 +240,9 @@ class HistoryURLProviderTest : public testing::Test, |
expected_urls, num_results, &type); |
} |
- // Helper functions to initialize the HistoryService. |
- bool InitializeHistoryService(bool delete_file, bool no_db); |
- void BlockUntilHistoryProcessesPendingRequests(); |
- |
base::MessageLoop message_loop_; |
- base::ScopedTempDir history_dir_; |
ACMatches matches_; |
scoped_ptr<FakeAutocompleteProviderClient> client_; |
- history::HistoryService* history_service_; |
scoped_refptr<HistoryURLProvider> autocomplete_; |
// Should the matches be sorted and duplicates removed? |
bool sort_matches_; |
@@ -274,9 +253,7 @@ class HistoryURLProviderTest : public testing::Test, |
class HistoryURLProviderTestNoDB : public HistoryURLProviderTest { |
protected: |
- void SetUp() override { |
- ASSERT_TRUE(SetUpImpl(true)); |
- } |
+ void SetUp() override { ASSERT_TRUE(SetUpImpl(false)); } |
}; |
class HistoryURLProviderTestNoSearchProvider : public HistoryURLProviderTest { |
@@ -297,38 +274,12 @@ void HistoryURLProviderTest::OnProviderUpdate(bool updated_matches) { |
base::MessageLoop::current()->QuitWhenIdle(); |
} |
-bool HistoryURLProviderTest::InitializeHistoryService( |
- bool delete_file, bool no_db) { |
- if (!history_dir_.CreateUniqueTempDir()) |
- return false; |
- |
- history_service_ = client_->GetHistoryService(); |
- if (!history_service_->Init( |
- no_db, std::string(), |
- history::TestHistoryDatabaseParamsForPath(history_dir_.path()))) |
- return false; |
- |
- if (!no_db) |
- BlockUntilHistoryProcessesPendingRequests(); |
- |
- return true; |
-} |
- |
-void HistoryURLProviderTest::BlockUntilHistoryProcessesPendingRequests() { |
- base::CancelableTaskTracker tracker; |
- client_->GetHistoryService()->ScheduleDBTask( |
- scoped_ptr<history::HistoryDBTask>(new QuitTask()), &tracker); |
- base::MessageLoop::current()->Run(); |
-} |
- |
-bool HistoryURLProviderTest::SetUpImpl(bool no_db) { |
- client_.reset(new FakeAutocompleteProviderClient()); |
- |
- if (!InitializeHistoryService(true, no_db)) |
+bool HistoryURLProviderTest::SetUpImpl(bool create_history_db) { |
+ client_.reset(new FakeAutocompleteProviderClient(create_history_db)); |
+ if (!client_->GetHistoryService()) |
return false; |
EXPECT_CALL(*client_, GetAcceptLanguages()) |
- .WillRepeatedly(testing::Return("en-US,en,ko")); |
- |
+ .WillRepeatedly(testing::Return(kDefaultAcceptLanguages)); |
autocomplete_ = new HistoryURLProvider(client_.get(), this); |
FillData(); |
return true; |
@@ -351,16 +302,16 @@ void HistoryURLProviderTest::FillData() { |
for (size_t i = 0; i < arraysize(test_db); ++i) { |
const TestURLInfo& cur = test_db[i]; |
const GURL current_url(cur.url); |
- history_service_->AddPageWithDetails( |
+ client_->GetHistoryService()->AddPageWithDetails( |
current_url, base::UTF8ToUTF16(cur.title), cur.visit_count, |
cur.typed_count, now - TimeDelta::FromDays(cur.age_in_days), false, |
history::SOURCE_BROWSED); |
} |
- history_service_->AddPageWithDetails( |
+ client_->GetHistoryService()->AddPageWithDetails( |
GURL("http://pa/"), base::UTF8ToUTF16("pa"), 0, 0, |
Time::Now() - |
- TimeDelta::FromDays(history::kLowQualityMatchAgeLimitInDays - 1), |
+ TimeDelta::FromDays(history::kLowQualityMatchAgeLimitInDays - 1), |
false, history::SOURCE_BROWSED); |
} |
@@ -548,9 +499,9 @@ TEST_F(HistoryURLProviderTest, CullRedirects) { |
{"http://redirects/C", 10} |
}; |
for (size_t i = 0; i < arraysize(test_cases); ++i) { |
- history_service_->AddPageWithDetails(GURL(test_cases[i].url), |
- ASCIIToUTF16("Title"), test_cases[i].count, test_cases[i].count, |
- Time::Now(), false, history::SOURCE_BROWSED); |
+ client_->GetHistoryService()->AddPageWithDetails( |
+ GURL(test_cases[i].url), ASCIIToUTF16("Title"), test_cases[i].count, |
+ test_cases[i].count, Time::Now(), false, history::SOURCE_BROWSED); |
} |
// Create a B->C->A redirect chain, but set the visit counts such that they |
@@ -561,9 +512,9 @@ TEST_F(HistoryURLProviderTest, CullRedirects) { |
redirects_to_a.push_back(GURL(test_cases[1].url)); |
redirects_to_a.push_back(GURL(test_cases[2].url)); |
redirects_to_a.push_back(GURL(test_cases[0].url)); |
- history_service_->AddPage(GURL(test_cases[0].url), base::Time::Now(), |
- NULL, 0, GURL(), redirects_to_a, ui::PAGE_TRANSITION_TYPED, |
- history::SOURCE_BROWSED, true); |
+ client_->GetHistoryService()->AddPage( |
+ GURL(test_cases[0].url), base::Time::Now(), NULL, 0, GURL(), |
+ redirects_to_a, ui::PAGE_TRANSITION_TYPED, history::SOURCE_BROWSED, true); |
// Because all the results are part of a redirect chain with other results, |
// all but the first one (A) should be culled. We should get the default |
@@ -697,7 +648,8 @@ TEST_F(HistoryURLProviderTest, Fixup) { |
// second passes. |
TEST_F(HistoryURLProviderTest, EmptyVisits) { |
// Wait for history to create the in memory DB. |
- BlockUntilHistoryProcessesPendingRequests(); |
+ history::BlockUntilHistoryProcessesPendingRequests( |
+ client_->GetHistoryService()); |
AutocompleteInput input( |
ASCIIToUTF16("pa"), base::string16::npos, std::string(), GURL(), |
@@ -973,9 +925,10 @@ TEST_F(HistoryURLProviderTest, CullSearchResults) { |
{"http://foobar.com/", 10} |
}; |
for (size_t i = 0; i < arraysize(test_cases); ++i) { |
- history_service_->AddPageWithDetails(GURL(test_cases[i].url), |
- base::UTF8ToUTF16("Title"), test_cases[i].count, test_cases[i].count, |
- Time::Now(), false, history::SOURCE_BROWSED); |
+ client_->GetHistoryService()->AddPageWithDetails( |
+ GURL(test_cases[i].url), base::UTF8ToUTF16("Title"), |
+ test_cases[i].count, test_cases[i].count, Time::Now(), false, |
+ history::SOURCE_BROWSED); |
} |
// We should not see search URLs when typing a previously used query. |