blob: 6d149638e2eedc0535db2762dcd1840f65a2f81a [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/omnibox/browser/fake_autocomplete_provider_client.h"
#include <memory>
#include "base/files/file_path.h"
#include "base/run_loop.h"
#include "components/bookmarks/browser/bookmark_model.h"
#include "components/bookmarks/test/test_bookmark_client.h"
#include "components/history/core/browser/history_service.h"
#include "components/history/core/test/history_service_test_util.h"
#include "components/omnibox/browser/in_memory_url_index.h"
#include "components/omnibox/browser/in_memory_url_index_test_util.h"
#include "components/omnibox/browser/shortcuts_backend.h"
#include "components/search_engines/template_url_service.h"
FakeAutocompleteProviderClient::FakeAutocompleteProviderClient(
bool create_history_db)
: is_tab_open_with_url_(false) {
set_template_url_service(std::make_unique<TemplateURLService>(nullptr, 0));
bookmark_model_ = bookmarks::TestBookmarkClient::CreateModel();
CHECK(history_dir_.CreateUniqueTempDir());
history_service_ =
history::CreateHistoryService(history_dir_.GetPath(), create_history_db);
in_memory_url_index_.reset(
new InMemoryURLIndex(bookmark_model_.get(), history_service_.get(),
nullptr, history_dir_.GetPath(), SchemeSet()));
in_memory_url_index_->Init();
shortcuts_backend_ = base::MakeRefCounted<ShortcutsBackend>(
GetTemplateURLService(), std::make_unique<SearchTermsData>(),
GetHistoryService(), base::FilePath(), true);
shortcuts_backend_->Init();
}
FakeAutocompleteProviderClient::~FakeAutocompleteProviderClient() {
// The InMemoryURLIndex must be explicitly shut down or it will DCHECK() in
// its destructor.
GetInMemoryURLIndex()->Shutdown();
set_in_memory_url_index(nullptr);
// Note that RunUntilIdle() must still be called after this, from
// whichever task model is being used, probably ScopedTaskEnvironment,
// or there will be memory leaks.
}
const AutocompleteSchemeClassifier&
FakeAutocompleteProviderClient::GetSchemeClassifier() const {
return scheme_classifier_;
}
history::HistoryService* FakeAutocompleteProviderClient::GetHistoryService() {
return history_service_.get();
}
bookmarks::BookmarkModel* FakeAutocompleteProviderClient::GetBookmarkModel() {
return bookmark_model_.get();
}
InMemoryURLIndex* FakeAutocompleteProviderClient::GetInMemoryURLIndex() {
return in_memory_url_index_.get();
}
const SearchTermsData& FakeAutocompleteProviderClient::GetSearchTermsData()
const {
return search_terms_data_;
}
scoped_refptr<ShortcutsBackend>
FakeAutocompleteProviderClient::GetShortcutsBackend() {
return shortcuts_backend_;
}
scoped_refptr<ShortcutsBackend>
FakeAutocompleteProviderClient::GetShortcutsBackendIfExists() {
return shortcuts_backend_;
}
bool FakeAutocompleteProviderClient::IsTabOpenWithURL(const GURL& url) {
return is_tab_open_with_url_;
}