blob: e3dc5fdc2efbade222901291e76048f530c20339 [file] [log] [blame]
// Copyright 2018 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 "chrome/browser/signin/identity_test_environment_profile_adaptor.h"
#include "base/bind.h"
#include "chrome/browser/signin/chrome_signin_client_factory.h"
#include "chrome/browser/signin/identity_manager_factory.h"
// static
std::unique_ptr<TestingProfile> IdentityTestEnvironmentProfileAdaptor::
CreateProfileForIdentityTestEnvironment() {
return CreateProfileForIdentityTestEnvironment(
TestingProfile::TestingFactories());
}
// static
std::unique_ptr<TestingProfile>
IdentityTestEnvironmentProfileAdaptor::CreateProfileForIdentityTestEnvironment(
const TestingProfile::TestingFactories& input_factories) {
TestingProfile::Builder builder;
for (auto& input_factory : input_factories) {
builder.AddTestingFactory(input_factory.first, input_factory.second);
}
return CreateProfileForIdentityTestEnvironment(builder);
}
// static
std::unique_ptr<TestingProfile>
IdentityTestEnvironmentProfileAdaptor::CreateProfileForIdentityTestEnvironment(
TestingProfile::Builder& builder) {
for (auto& identity_factory : GetIdentityTestEnvironmentFactories()) {
builder.AddTestingFactory(identity_factory.first, identity_factory.second);
}
return builder.Build();
}
// static
void IdentityTestEnvironmentProfileAdaptor::
SetIdentityTestEnvironmentFactoriesOnBrowserContext(
content::BrowserContext* context) {
for (const auto& factory_pair : GetIdentityTestEnvironmentFactories()) {
factory_pair.first->SetTestingFactory(context, factory_pair.second);
}
}
// static
void IdentityTestEnvironmentProfileAdaptor::
AppendIdentityTestEnvironmentFactories(
TestingProfile::TestingFactories* factories_to_append_to) {
TestingProfile::TestingFactories identity_factories =
GetIdentityTestEnvironmentFactories();
factories_to_append_to->insert(factories_to_append_to->end(),
identity_factories.begin(),
identity_factories.end());
}
// static
TestingProfile::TestingFactories
IdentityTestEnvironmentProfileAdaptor::GetIdentityTestEnvironmentFactories() {
return {{IdentityManagerFactory::GetInstance(),
base::BindRepeating(&BuildIdentityManagerForTests)}};
}
// static
std::unique_ptr<KeyedService>
IdentityTestEnvironmentProfileAdaptor::BuildIdentityManagerForTests(
content::BrowserContext* context) {
Profile* profile = Profile::FromBrowserContext(context);
return identity::IdentityTestEnvironment::BuildIdentityManagerForTests(
ChromeSigninClientFactory::GetForProfile(profile), profile->GetPrefs(),
profile->GetPath());
}
IdentityTestEnvironmentProfileAdaptor::IdentityTestEnvironmentProfileAdaptor(
Profile* profile)
: identity_test_env_(IdentityManagerFactory::GetForProfile(profile)) {}