diff options
Diffstat (limited to 'chrome/browser/policy/test/policy_test_utils.cc')
-rw-r--r-- | chrome/browser/policy/test/policy_test_utils.cc | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/chrome/browser/policy/test/policy_test_utils.cc b/chrome/browser/policy/test/policy_test_utils.cc new file mode 100644 index 0000000..cf0b015 --- /dev/null +++ b/chrome/browser/policy/test/policy_test_utils.cc @@ -0,0 +1,139 @@ +// Copyright 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/policy/test/policy_test_utils.h" + +#include <string> + +#include "base/bind.h" +#include "base/bind_helpers.h" +#include "base/callback.h" +#include "base/json/json_writer.h" +#include "base/logging.h" +#include "base/values.h" +#include "chrome/browser/policy/policy_bundle.h" + +namespace policy { + +PolicyDetailsMap::PolicyDetailsMap() {} + +PolicyDetailsMap::~PolicyDetailsMap() {} + +GetChromePolicyDetailsCallback PolicyDetailsMap::GetCallback() const { + return base::Bind(&PolicyDetailsMap::Lookup, base::Unretained(this)); +} + +void PolicyDetailsMap::SetDetails(const std::string& policy, + const PolicyDetails* details) { + map_[policy] = details; +} + +const PolicyDetails* PolicyDetailsMap::Lookup(const std::string& policy) const { + PolicyDetailsMapping::const_iterator it = map_.find(policy); + return it == map_.end() ? NULL : it->second; +} + +bool PolicyServiceIsEmpty(const PolicyService* service) { + const PolicyMap& map = service->GetPolicies( + PolicyNamespace(POLICY_DOMAIN_CHROME, std::string())); + if (!map.empty()) { + base::DictionaryValue dict; + for (PolicyMap::const_iterator it = map.begin(); it != map.end(); ++it) + dict.SetWithoutPathExpansion(it->first, it->second.value->DeepCopy()); + LOG(WARNING) << "There are pre-existing policies in this machine: " << dict; + } + return map.empty(); +} + +} // namespace policy + +std::ostream& operator<<(std::ostream& os, + const policy::PolicyBundle& bundle) { + os << "{" << std::endl; + for (policy::PolicyBundle::const_iterator iter = bundle.begin(); + iter != bundle.end(); ++iter) { + os << " \"" << iter->first << "\": " << *iter->second << "," << std::endl; + } + os << "}"; + return os; +} + +std::ostream& operator<<(std::ostream& os, policy::PolicyScope scope) { + switch (scope) { + case policy::POLICY_SCOPE_USER: { + os << "POLICY_SCOPE_USER"; + break; + } + case policy::POLICY_SCOPE_MACHINE: { + os << "POLICY_SCOPE_MACHINE"; + break; + } + default: { + os << "POLICY_SCOPE_UNKNOWN(" << int(scope) << ")"; + } + } + return os; +} + +std::ostream& operator<<(std::ostream& os, policy::PolicyLevel level) { + switch (level) { + case policy::POLICY_LEVEL_RECOMMENDED: { + os << "POLICY_LEVEL_RECOMMENDED"; + break; + } + case policy::POLICY_LEVEL_MANDATORY: { + os << "POLICY_LEVEL_MANDATORY"; + break; + } + default: { + os << "POLICY_LEVEL_UNKNOWN(" << int(level) << ")"; + } + } + return os; +} + +std::ostream& operator<<(std::ostream& os, policy::PolicyDomain domain) { + switch (domain) { + case policy::POLICY_DOMAIN_CHROME: { + os << "POLICY_DOMAIN_CHROME"; + break; + } + case policy::POLICY_DOMAIN_EXTENSIONS: { + os << "POLICY_DOMAIN_EXTENSIONS"; + break; + } + default: { + os << "POLICY_DOMAIN_UNKNOWN(" << int(domain) << ")"; + } + } + return os; +} + +std::ostream& operator<<(std::ostream& os, const policy::PolicyMap& policies) { + os << "{" << std::endl; + for (policy::PolicyMap::const_iterator iter = policies.begin(); + iter != policies.end(); ++iter) { + os << " \"" << iter->first << "\": " << iter->second << "," << std::endl; + } + os << "}"; + return os; +} + +std::ostream& operator<<(std::ostream& os, const policy::PolicyMap::Entry& e) { + std::string value; + base::JSONWriter::WriteWithOptions(e.value, + base::JSONWriter::OPTIONS_PRETTY_PRINT, + &value); + os << "{" << std::endl + << " \"level\": " << e.level << "," << std::endl + << " \"scope\": " << e.scope << "," << std::endl + << " \"value\": " << value + << "}"; + return os; +} + +std::ostream& operator<<(std::ostream& os, const policy::PolicyNamespace& ns) { + os << ns.domain << "/" << ns.component_id; + return os; +} |