1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef COMPONENTS_POLICY_CORE_COMMON_POLICY_TEST_UTILS_H_ 6 #define COMPONENTS_POLICY_CORE_COMMON_POLICY_TEST_UTILS_H_ 7 8 #include <map> 9 #include <ostream> 10 #include <string> 11 12 #include "base/basictypes.h" 13 #include "components/policy/core/common/policy_details.h" 14 #include "components/policy/core/common/policy_map.h" 15 #include "components/policy/core/common/policy_service.h" 16 #include "components/policy/core/common/policy_types.h" 17 18 namespace policy { 19 20 class PolicyBundle; 21 struct PolicyNamespace; 22 23 // A mapping of policy names to PolicyDetails that can be used to set the 24 // PolicyDetails for test policies. 25 class PolicyDetailsMap { 26 public: 27 PolicyDetailsMap(); 28 ~PolicyDetailsMap(); 29 30 // The returned callback's lifetime is tied to |this| object. 31 GetChromePolicyDetailsCallback GetCallback() const; 32 33 // Does not take ownership of |details|. 34 void SetDetails(const std::string& policy, const PolicyDetails* details); 35 36 private: 37 typedef std::map<std::string, const PolicyDetails*> PolicyDetailsMapping; 38 39 const PolicyDetails* Lookup(const std::string& policy) const; 40 41 PolicyDetailsMapping map_; 42 43 DISALLOW_COPY_AND_ASSIGN(PolicyDetailsMap); 44 }; 45 46 // Returns true if |service| is not serving any policies. Otherwise logs the 47 // current policies and returns false. 48 bool PolicyServiceIsEmpty(const PolicyService* service); 49 50 #if defined(OS_IOS) || defined(OS_MACOSX) 51 52 // Converts a base::Value to the equivalent CFPropertyListRef. 53 // The returned value is owned by the caller. 54 CFPropertyListRef ValueToProperty(const base::Value* value); 55 56 #endif 57 58 } // namespace policy 59 60 std::ostream& operator<<(std::ostream& os, const policy::PolicyBundle& bundle); 61 std::ostream& operator<<(std::ostream& os, policy::PolicyScope scope); 62 std::ostream& operator<<(std::ostream& os, policy::PolicyLevel level); 63 std::ostream& operator<<(std::ostream& os, policy::PolicyDomain domain); 64 std::ostream& operator<<(std::ostream& os, const policy::PolicyMap& policies); 65 std::ostream& operator<<(std::ostream& os, const policy::PolicyMap::Entry& e); 66 std::ostream& operator<<(std::ostream& os, const policy::PolicyNamespace& ns); 67 68 #endif // COMPONENTS_POLICY_CORE_COMMON_POLICY_TEST_UTILS_H_ 69