blob: fab14bce952a49a9b9265047b7d0e9c8eea06162 [file] [log] [blame]
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/search_engines/search_engines_test_environment.h"
#include <utility>
#include "components/metrics/metrics_pref_names.h"
#include "components/search_engines/search_engine_choice/search_engine_choice_service.h"
#include "components/search_engines/template_url_service.h"
#include "components/search_engines/template_url_service_test_util.h"
namespace search_engines {
SearchEnginesTestEnvironment::SearchEnginesTestEnvironment(const Deps& deps) {
local_state_ = deps.local_state;
pref_service_ = deps.pref_service;
if (!pref_service_) {
owned_pref_service_ =
std::make_unique<sync_preferences::TestingPrefServiceSyncable>();
pref_service_ = owned_pref_service_.get();
RegisterPrefsForTemplateURLService(pref_service_->registry());
}
if (!local_state_) {
owned_local_state_ = std::make_unique<TestingPrefServiceSimple>();
local_state_ = owned_local_state_.get();
local_state_->registry()->RegisterBooleanPref(
metrics::prefs::kMetricsReportingEnabled, true);
// This is needed to prevent the code in
// `SearchEngineChoiceService::GetCountryIdInternal` from calling the
// Android specific code that requires JNI initialization.
pref_service_->SetInteger(country_codes::kCountryIDAtInstall,
country_codes::CountryCharsToCountryID('U', 'S'));
}
search_engine_choice_service_ =
std::make_unique<SearchEngineChoiceService>(*pref_service_, local_state_);
template_url_service_ = std::make_unique<TemplateURLService>(
*pref_service_, *search_engine_choice_service_,
deps.template_url_service_initializer);
}
sync_preferences::TestingPrefServiceSyncable&
SearchEnginesTestEnvironment::pref_service() {
return *pref_service_;
}
sync_preferences::TestingPrefServiceSyncable&
SearchEnginesTestEnvironment::pref_service() const {
return *pref_service_;
}
TestingPrefServiceSimple& SearchEnginesTestEnvironment::local_state() {
return *local_state_;
}
SearchEngineChoiceService&
SearchEnginesTestEnvironment::search_engine_choice_service() {
return *search_engine_choice_service_;
}
TemplateURLService* SearchEnginesTestEnvironment::template_url_service() {
return template_url_service_.get();
}
const TemplateURLService* SearchEnginesTestEnvironment::template_url_service()
const {
return template_url_service_.get();
}
std::unique_ptr<TemplateURLService>
SearchEnginesTestEnvironment::ReleaseTemplateURLService() {
return std::move(template_url_service_);
}
SearchEnginesTestEnvironment::~SearchEnginesTestEnvironment() = default;
} // namespace search_engines