blob: 52bcfd0a30a1478f65a981560ad418c77a8da64e [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/test/base/fake_profile_manager.h"
#include "base/files/file_util.h"
#include "base/task/single_thread_task_runner.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/test/base/testing_profile.h"
FakeProfileManager::FakeProfileManager(const base::FilePath& user_data_dir)
: ProfileManagerWithoutInit(user_data_dir) {}
FakeProfileManager::~FakeProfileManager() = default;
std::unique_ptr<TestingProfile> FakeProfileManager::BuildTestingProfile(
const base::FilePath& path,
Delegate* delegate,
Profile::CreateMode create_mode) {
return std::make_unique<TestingProfile>(path, delegate, create_mode);
}
std::unique_ptr<Profile> FakeProfileManager::CreateProfileHelper(
const base::FilePath& path) {
if (!base::PathExists(path) && !base::CreateDirectory(path))
return nullptr;
return BuildTestingProfile(path, this, Profile::CreateMode::kSynchronous);
}
std::unique_ptr<Profile> FakeProfileManager::CreateProfileAsyncHelper(
const base::FilePath& path) {
// SingleThreadTaskRunner::GetCurrentDefault() is TestingProfile's "async"
// IOTaskRunner (ref. TestingProfile::GetIOTaskRunner()).
base::SingleThreadTaskRunner::GetCurrentDefault()->PostTask(
FROM_HERE,
base::BindOnce(base::IgnoreResult(&base::CreateDirectory), path));
return BuildTestingProfile(path, this, Profile::CreateMode::kAsynchronous);
}