OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/policy/core/common/mac_util.h" | 5 #include "components/policy/core/common/mac_util.h" |
6 | 6 |
7 #include <CoreFoundation/CoreFoundation.h> | 7 #include <CoreFoundation/CoreFoundation.h> |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 | 10 |
11 #include "base/mac/scoped_cftyperef.h" | 11 #include "base/mac/scoped_cftyperef.h" |
12 #include "base/values.h" | 12 #include "base/values.h" |
13 #include "components/policy/core/common/policy_test_utils.h" | 13 #include "components/policy/core/common/policy_test_utils.h" |
14 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
15 | 15 |
16 namespace policy { | 16 namespace policy { |
17 | 17 |
18 TEST(PolicyMacUtilTest, PropertyToValue) { | 18 TEST(PolicyMacUtilTest, PropertyToValue) { |
19 base::DictionaryValue root; | 19 base::DictionaryValue root; |
20 | 20 |
21 // base::Value::TYPE_NULL | 21 // base::Value::Type::NONE |
22 root.Set("null", base::Value::CreateNullValue()); | 22 root.Set("null", base::Value::CreateNullValue()); |
23 | 23 |
24 // base::Value::TYPE_BOOLEAN | 24 // base::Value::Type::BOOLEAN |
25 root.SetBoolean("false", false); | 25 root.SetBoolean("false", false); |
26 root.SetBoolean("true", true); | 26 root.SetBoolean("true", true); |
27 | 27 |
28 // base::Value::TYPE_INTEGER | 28 // base::Value::Type::INTEGER |
29 root.SetInteger("int", 123); | 29 root.SetInteger("int", 123); |
30 root.SetInteger("zero", 0); | 30 root.SetInteger("zero", 0); |
31 | 31 |
32 // base::Value::TYPE_DOUBLE | 32 // base::Value::Type::DOUBLE |
33 root.SetDouble("double", 123.456); | 33 root.SetDouble("double", 123.456); |
34 root.SetDouble("zerod", 0.0); | 34 root.SetDouble("zerod", 0.0); |
35 | 35 |
36 // base::Value::TYPE_STRING | 36 // base::Value::Type::STRING |
37 root.SetString("string", "the fox jumps over something"); | 37 root.SetString("string", "the fox jumps over something"); |
38 root.SetString("empty", ""); | 38 root.SetString("empty", ""); |
39 | 39 |
40 // base::Value::TYPE_LIST | 40 // base::Value::Type::LIST |
41 base::ListValue list; | 41 base::ListValue list; |
42 root.Set("emptyl", list.DeepCopy()); | 42 root.Set("emptyl", list.DeepCopy()); |
43 for (base::DictionaryValue::Iterator it(root); !it.IsAtEnd(); it.Advance()) | 43 for (base::DictionaryValue::Iterator it(root); !it.IsAtEnd(); it.Advance()) |
44 list.Append(it.value().DeepCopy()); | 44 list.Append(it.value().DeepCopy()); |
45 EXPECT_EQ(root.size(), list.GetSize()); | 45 EXPECT_EQ(root.size(), list.GetSize()); |
46 list.Append(root.DeepCopy()); | 46 list.Append(root.DeepCopy()); |
47 root.Set("list", list.DeepCopy()); | 47 root.Set("list", list.DeepCopy()); |
48 | 48 |
49 // base::Value::TYPE_DICTIONARY | 49 // base::Value::Type::DICTIONARY |
50 base::DictionaryValue dict; | 50 base::DictionaryValue dict; |
51 root.Set("emptyd", dict.DeepCopy()); | 51 root.Set("emptyd", dict.DeepCopy()); |
52 // Very meta. | 52 // Very meta. |
53 root.Set("dict", root.DeepCopy()); | 53 root.Set("dict", root.DeepCopy()); |
54 | 54 |
55 base::ScopedCFTypeRef<CFPropertyListRef> property(ValueToProperty(root)); | 55 base::ScopedCFTypeRef<CFPropertyListRef> property(ValueToProperty(root)); |
56 ASSERT_TRUE(property); | 56 ASSERT_TRUE(property); |
57 std::unique_ptr<base::Value> value = PropertyToValue(property); | 57 std::unique_ptr<base::Value> value = PropertyToValue(property); |
58 ASSERT_TRUE(value); | 58 ASSERT_TRUE(value); |
59 EXPECT_TRUE(root.Equals(value.get())); | 59 EXPECT_TRUE(root.Equals(value.get())); |
60 } | 60 } |
61 | 61 |
62 } // namespace policy | 62 } // namespace policy |
OLD | NEW |