blob: c72be6f81246c64283f6cafabe712aef7d2da15e [file] [log] [blame]
// Copyright (c) 2013 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/chromeos/settings/stub_install_attributes.h"
#include <string>
#include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h"
#include "components/policy/core/common/cloud/cloud_policy_constants.h"
namespace chromeos {
StubInstallAttributes::StubInstallAttributes() : InstallAttributes(nullptr) {
device_locked_ = true;
}
void StubInstallAttributes::Clear() {
registration_mode_ = policy::DEVICE_MODE_NOT_SET;
registration_domain_.clear();
registration_realm_.clear();
registration_device_id_.clear();
}
void StubInstallAttributes::SetConsumerOwned() {
registration_mode_ = policy::DEVICE_MODE_CONSUMER;
registration_domain_.clear();
registration_realm_.clear();
registration_device_id_.clear();
}
void StubInstallAttributes::SetCloudManaged(const std::string& domain,
const std::string& device_id) {
registration_mode_ = policy::DEVICE_MODE_ENTERPRISE;
registration_domain_ = domain;
registration_realm_.clear();
registration_device_id_ = device_id;
}
void StubInstallAttributes::SetActiveDirectoryManaged(
const std::string& realm,
const std::string& device_id) {
registration_mode_ = policy::DEVICE_MODE_ENTERPRISE_AD;
registration_realm_ = realm;
registration_domain_.clear();
registration_device_id_ = device_id;
}
// static
ScopedStubInstallAttributes ScopedStubInstallAttributes::CreateUnset() {
StubInstallAttributes* attributes = new StubInstallAttributes();
attributes->Clear();
policy::BrowserPolicyConnectorChromeOS::SetInstallAttributesForTesting(
attributes);
return ScopedStubInstallAttributes();
}
// static
ScopedStubInstallAttributes ScopedStubInstallAttributes::CreateConsumerOwned() {
StubInstallAttributes* attributes = new StubInstallAttributes();
attributes->SetConsumerOwned();
policy::BrowserPolicyConnectorChromeOS::SetInstallAttributesForTesting(
attributes);
return ScopedStubInstallAttributes();
}
// static
ScopedStubInstallAttributes ScopedStubInstallAttributes::CreateCloudManaged(
const std::string& domain,
const std::string& device_id) {
StubInstallAttributes* attributes = new StubInstallAttributes();
attributes->SetCloudManaged(domain, device_id);
policy::BrowserPolicyConnectorChromeOS::SetInstallAttributesForTesting(
attributes);
return ScopedStubInstallAttributes();
}
// static
ScopedStubInstallAttributes
ScopedStubInstallAttributes::CreateActiveDirectoryManaged(
const std::string& realm,
const std::string& device_id) {
StubInstallAttributes* attributes = new StubInstallAttributes();
attributes->SetActiveDirectoryManaged(realm, device_id);
policy::BrowserPolicyConnectorChromeOS::SetInstallAttributesForTesting(
attributes);
return ScopedStubInstallAttributes();
}
ScopedStubInstallAttributes::~ScopedStubInstallAttributes() {
if (cleanup_)
policy::BrowserPolicyConnectorChromeOS::RemoveInstallAttributesForTesting();
}
} // namespace chromeos