OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011 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 #include "base/prefs/pref_value_map.h" | |
6 | |
7 #include "base/values.h" | |
8 #include "testing/gtest/include/gtest/gtest.h" | |
9 | |
10 namespace base { | |
11 namespace { | |
12 | |
13 TEST(PrefValueMapTest, SetValue) { | |
14 PrefValueMap map; | |
15 const Value* result = NULL; | |
16 EXPECT_FALSE(map.GetValue("key", &result)); | |
17 EXPECT_FALSE(result); | |
18 | |
19 EXPECT_TRUE(map.SetValue("key", make_scoped_ptr(new StringValue("test")))); | |
20 EXPECT_FALSE(map.SetValue("key", make_scoped_ptr(new StringValue("test")))); | |
21 EXPECT_TRUE(map.SetValue("key", make_scoped_ptr(new StringValue("hi mom!")))); | |
22 | |
23 EXPECT_TRUE(map.GetValue("key", &result)); | |
24 EXPECT_TRUE(StringValue("hi mom!").Equals(result)); | |
25 } | |
26 | |
27 TEST(PrefValueMapTest, GetAndSetIntegerValue) { | |
28 PrefValueMap map; | |
29 ASSERT_TRUE(map.SetValue("key", make_scoped_ptr(new FundamentalValue(5)))); | |
30 | |
31 int int_value = 0; | |
32 EXPECT_TRUE(map.GetInteger("key", &int_value)); | |
33 EXPECT_EQ(5, int_value); | |
34 | |
35 map.SetInteger("key", -14); | |
36 EXPECT_TRUE(map.GetInteger("key", &int_value)); | |
37 EXPECT_EQ(-14, int_value); | |
38 } | |
39 | |
40 TEST(PrefValueMapTest, SetDoubleValue) { | |
41 PrefValueMap map; | |
42 ASSERT_TRUE(map.SetValue("key", make_scoped_ptr(new FundamentalValue(5.5)))); | |
43 | |
44 const Value* result = NULL; | |
45 ASSERT_TRUE(map.GetValue("key", &result)); | |
46 double double_value = 0.; | |
47 EXPECT_TRUE(result->GetAsDouble(&double_value)); | |
48 EXPECT_DOUBLE_EQ(5.5, double_value); | |
49 } | |
50 | |
51 TEST(PrefValueMapTest, RemoveValue) { | |
52 PrefValueMap map; | |
53 EXPECT_FALSE(map.RemoveValue("key")); | |
54 | |
55 EXPECT_TRUE(map.SetValue("key", make_scoped_ptr(new StringValue("test")))); | |
56 EXPECT_TRUE(map.GetValue("key", NULL)); | |
57 | |
58 EXPECT_TRUE(map.RemoveValue("key")); | |
59 EXPECT_FALSE(map.GetValue("key", NULL)); | |
60 | |
61 EXPECT_FALSE(map.RemoveValue("key")); | |
62 } | |
63 | |
64 TEST(PrefValueMapTest, Clear) { | |
65 PrefValueMap map; | |
66 EXPECT_TRUE(map.SetValue("key", make_scoped_ptr(new StringValue("test")))); | |
67 EXPECT_TRUE(map.GetValue("key", NULL)); | |
68 | |
69 map.Clear(); | |
70 | |
71 EXPECT_FALSE(map.GetValue("key", NULL)); | |
72 } | |
73 | |
74 TEST(PrefValueMapTest, GetDifferingKeys) { | |
75 PrefValueMap reference; | |
76 EXPECT_TRUE( | |
77 reference.SetValue("b", make_scoped_ptr(new StringValue("test")))); | |
78 EXPECT_TRUE( | |
79 reference.SetValue("c", make_scoped_ptr(new StringValue("test")))); | |
80 EXPECT_TRUE( | |
81 reference.SetValue("e", make_scoped_ptr(new StringValue("test")))); | |
82 | |
83 PrefValueMap check; | |
84 std::vector<std::string> differing_paths; | |
85 std::vector<std::string> expected_differing_paths; | |
86 | |
87 reference.GetDifferingKeys(&check, &differing_paths); | |
88 expected_differing_paths.push_back("b"); | |
89 expected_differing_paths.push_back("c"); | |
90 expected_differing_paths.push_back("e"); | |
91 EXPECT_EQ(expected_differing_paths, differing_paths); | |
92 | |
93 EXPECT_TRUE(check.SetValue("a", make_scoped_ptr(new StringValue("test")))); | |
94 EXPECT_TRUE(check.SetValue("c", make_scoped_ptr(new StringValue("test")))); | |
95 EXPECT_TRUE(check.SetValue("d", make_scoped_ptr(new StringValue("test")))); | |
96 | |
97 reference.GetDifferingKeys(&check, &differing_paths); | |
98 expected_differing_paths.clear(); | |
99 expected_differing_paths.push_back("a"); | |
100 expected_differing_paths.push_back("b"); | |
101 expected_differing_paths.push_back("d"); | |
102 expected_differing_paths.push_back("e"); | |
103 EXPECT_EQ(expected_differing_paths, differing_paths); | |
104 } | |
105 | |
106 TEST(PrefValueMapTest, SwapTwoMaps) { | |
107 PrefValueMap first_map; | |
108 EXPECT_TRUE( | |
109 first_map.SetValue("a", make_scoped_ptr(new StringValue("test")))); | |
110 EXPECT_TRUE( | |
111 first_map.SetValue("b", make_scoped_ptr(new StringValue("test")))); | |
112 EXPECT_TRUE( | |
113 first_map.SetValue("c", make_scoped_ptr(new StringValue("test")))); | |
114 | |
115 PrefValueMap second_map; | |
116 EXPECT_TRUE( | |
117 second_map.SetValue("d", make_scoped_ptr(new StringValue("test")))); | |
118 EXPECT_TRUE( | |
119 second_map.SetValue("e", make_scoped_ptr(new StringValue("test")))); | |
120 EXPECT_TRUE( | |
121 second_map.SetValue("f", make_scoped_ptr(new StringValue("test")))); | |
122 | |
123 first_map.Swap(&second_map); | |
124 | |
125 EXPECT_TRUE(first_map.GetValue("d", NULL)); | |
126 EXPECT_TRUE(first_map.GetValue("e", NULL)); | |
127 EXPECT_TRUE(first_map.GetValue("f", NULL)); | |
128 | |
129 EXPECT_TRUE(second_map.GetValue("a", NULL)); | |
130 EXPECT_TRUE(second_map.GetValue("b", NULL)); | |
131 EXPECT_TRUE(second_map.GetValue("c", NULL)); | |
132 } | |
133 | |
134 } // namespace | |
135 } // namespace base | |
OLD | NEW |