1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
// Copyright 2019 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/browser/ash/crostini/ansible/ansible_management_test_helper.h"
#include "base/files/file_util.h"
#include "chrome/browser/ash/crostini/ansible/ansible_management_service_factory.h"
#include "chrome/browser/ash/crostini/crostini_pref_names.h"
#include "chrome/browser/ash/crostini/crostini_util.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/chrome_features.h"
#include "components/prefs/pref_service.h"
namespace crostini {
// static
MockAnsibleManagementService*
AnsibleManagementTestHelper::SetUpMockAnsibleManagementService(
Profile* profile) {
return static_cast<MockAnsibleManagementService*>(
AnsibleManagementServiceFactory::GetInstance()->SetTestingFactoryAndUse(
profile, base::BindRepeating(
[](Profile* profile, content::BrowserContext* context) {
return MockAnsibleManagementService::Build(profile);
},
profile)));
}
AnsibleManagementTestHelper::AnsibleManagementTestHelper(Profile* profile)
: profile_(profile) {
fake_cicerone_client_ = ash::FakeCiceroneClient::Get();
}
void AnsibleManagementTestHelper::SetUpAnsiblePlaybookPreference() {
base::FilePath ansible_playbook_file_path =
profile_->GetPath().AppendASCII("playbook.yaml");
const char playbook[] = "---";
base::WriteFile(ansible_playbook_file_path, playbook);
profile_->GetPrefs()->SetFilePath(prefs::kCrostiniAnsiblePlaybookFilePath,
ansible_playbook_file_path);
}
void AnsibleManagementTestHelper::SetUpAnsibleInstallation(
vm_tools::cicerone::InstallLinuxPackageResponse::Status status) {
vm_tools::cicerone::InstallLinuxPackageResponse response;
response.set_status(status);
fake_cicerone_client_->set_install_linux_package_response(response);
}
void AnsibleManagementTestHelper::SetUpPlaybookApplication(
vm_tools::cicerone::ApplyAnsiblePlaybookResponse::Status status) {
vm_tools::cicerone::ApplyAnsiblePlaybookResponse response;
response.set_status(status);
fake_cicerone_client_->set_apply_ansible_playbook_response(response);
}
void AnsibleManagementTestHelper::SendSucceededInstallSignal() {
vm_tools::cicerone::InstallLinuxPackageProgressSignal signal;
signal.set_owner_id(CryptohomeIdForProfile(profile_));
signal.set_vm_name(kCrostiniDefaultVmName);
signal.set_container_name(kCrostiniDefaultContainerName);
signal.set_status(
vm_tools::cicerone::InstallLinuxPackageProgressSignal::SUCCEEDED);
fake_cicerone_client_->InstallLinuxPackageProgress(signal);
}
void AnsibleManagementTestHelper::SendSucceededApplySignal() {
vm_tools::cicerone::ApplyAnsiblePlaybookProgressSignal signal;
signal.set_owner_id(CryptohomeIdForProfile(profile_));
signal.set_vm_name(kCrostiniDefaultVmName);
signal.set_container_name(kCrostiniDefaultContainerName);
signal.set_status(
vm_tools::cicerone::ApplyAnsiblePlaybookProgressSignal::SUCCEEDED);
fake_cicerone_client_->NotifyApplyAnsiblePlaybookProgress(signal);
}
void AnsibleManagementTestHelper::SendFailedInstallSignal() {
vm_tools::cicerone::InstallLinuxPackageProgressSignal signal;
signal.set_owner_id(CryptohomeIdForProfile(profile_));
signal.set_vm_name(kCrostiniDefaultVmName);
signal.set_container_name(kCrostiniDefaultContainerName);
signal.set_status(
vm_tools::cicerone::InstallLinuxPackageProgressSignal::FAILED);
signal.set_failure_details("banana");
fake_cicerone_client_->InstallLinuxPackageProgress(signal);
}
void AnsibleManagementTestHelper::SendFailedApplySignal() {
vm_tools::cicerone::ApplyAnsiblePlaybookProgressSignal signal;
signal.set_owner_id(CryptohomeIdForProfile(profile_));
signal.set_vm_name(kCrostiniDefaultVmName);
signal.set_container_name(kCrostiniDefaultContainerName);
signal.set_status(
vm_tools::cicerone::ApplyAnsiblePlaybookProgressSignal::FAILED);
signal.set_failure_details("apple");
fake_cicerone_client_->NotifyApplyAnsiblePlaybookProgress(signal);
}
} // namespace crostini
|