Fix emulator build error
[platform/framework/web/chromium-efl.git] / components / prefs / pref_value_map_unittest.cc
1 // Copyright 2011 The Chromium Authors
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 "components/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 = nullptr;
16   EXPECT_FALSE(map.GetValue("key", &result));
17   EXPECT_FALSE(result);
18
19   EXPECT_TRUE(map.SetValue("key", Value("test")));
20   EXPECT_FALSE(map.SetValue("key", Value("test")));
21   EXPECT_TRUE(map.SetValue("key", Value("hi mom!")));
22
23   EXPECT_TRUE(map.GetValue("key", &result));
24   EXPECT_EQ("hi mom!", *result);
25 }
26
27 TEST(PrefValueMapTest, GetAndSetIntegerValue) {
28   PrefValueMap map;
29   ASSERT_TRUE(map.SetValue("key", Value(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", Value(5.5)));
43
44   const Value* result = nullptr;
45   ASSERT_TRUE(map.GetValue("key", &result));
46   EXPECT_DOUBLE_EQ(5.5, result->GetDouble());
47 }
48
49 TEST(PrefValueMapTest, RemoveValue) {
50   PrefValueMap map;
51   EXPECT_FALSE(map.RemoveValue("key"));
52
53   EXPECT_TRUE(map.SetValue("key", Value("test")));
54   EXPECT_TRUE(map.GetValue("key", nullptr));
55
56   EXPECT_TRUE(map.RemoveValue("key"));
57   EXPECT_FALSE(map.GetValue("key", nullptr));
58
59   EXPECT_FALSE(map.RemoveValue("key"));
60 }
61
62 TEST(PrefValueMapTest, Clear) {
63   PrefValueMap map;
64   EXPECT_TRUE(map.SetValue("key", Value("test")));
65   EXPECT_TRUE(map.GetValue("key", nullptr));
66
67   map.Clear();
68
69   EXPECT_FALSE(map.GetValue("key", nullptr));
70 }
71
72 TEST(PrefValueMapTest, ClearWithPrefix) {
73   {
74     PrefValueMap map;
75     EXPECT_TRUE(map.SetValue("a", Value("test")));
76     EXPECT_TRUE(map.SetValue("b", Value("test")));
77     EXPECT_TRUE(map.SetValue("bb", Value("test")));
78     EXPECT_TRUE(map.SetValue("z", Value("test")));
79
80     map.ClearWithPrefix("b");
81
82     EXPECT_TRUE(map.GetValue("a", nullptr));
83     EXPECT_FALSE(map.GetValue("b", nullptr));
84     EXPECT_FALSE(map.GetValue("bb", nullptr));
85     EXPECT_TRUE(map.GetValue("z", nullptr));
86   }
87   {
88     PrefValueMap map;
89     EXPECT_TRUE(map.SetValue("a", Value("test")));
90     EXPECT_TRUE(map.SetValue("b", Value("test")));
91     EXPECT_TRUE(map.SetValue("bb", Value("test")));
92     EXPECT_TRUE(map.SetValue("z", Value("test")));
93
94     map.ClearWithPrefix("z");
95
96     EXPECT_TRUE(map.GetValue("a", nullptr));
97     EXPECT_TRUE(map.GetValue("b", nullptr));
98     EXPECT_TRUE(map.GetValue("bb", nullptr));
99     EXPECT_FALSE(map.GetValue("z", nullptr));
100   }
101   {
102     PrefValueMap map;
103     EXPECT_TRUE(map.SetValue("a", Value("test")));
104     EXPECT_TRUE(map.SetValue("b", Value("test")));
105     EXPECT_TRUE(map.SetValue("bb", Value("test")));
106     EXPECT_TRUE(map.SetValue("z", Value("test")));
107
108     map.ClearWithPrefix("c");
109
110     EXPECT_TRUE(map.GetValue("a", nullptr));
111     EXPECT_TRUE(map.GetValue("b", nullptr));
112     EXPECT_TRUE(map.GetValue("bb", nullptr));
113     EXPECT_TRUE(map.GetValue("z", nullptr));
114   }
115 }
116
117 TEST(PrefValueMapTest, GetDifferingKeys) {
118   PrefValueMap reference;
119   EXPECT_TRUE(reference.SetValue("b", Value("test")));
120   EXPECT_TRUE(reference.SetValue("c", Value("test")));
121   EXPECT_TRUE(reference.SetValue("e", Value("test")));
122
123   PrefValueMap check;
124   std::vector<std::string> differing_paths;
125   std::vector<std::string> expected_differing_paths;
126
127   reference.GetDifferingKeys(&check, &differing_paths);
128   expected_differing_paths.push_back("b");
129   expected_differing_paths.push_back("c");
130   expected_differing_paths.push_back("e");
131   EXPECT_EQ(expected_differing_paths, differing_paths);
132
133   EXPECT_TRUE(check.SetValue("a", Value("test")));
134   EXPECT_TRUE(check.SetValue("c", Value("test")));
135   EXPECT_TRUE(check.SetValue("d", Value("test")));
136
137   reference.GetDifferingKeys(&check, &differing_paths);
138   expected_differing_paths.clear();
139   expected_differing_paths.push_back("a");
140   expected_differing_paths.push_back("b");
141   expected_differing_paths.push_back("d");
142   expected_differing_paths.push_back("e");
143   EXPECT_EQ(expected_differing_paths, differing_paths);
144 }
145
146 TEST(PrefValueMapTest, SwapTwoMaps) {
147   PrefValueMap first_map;
148   EXPECT_TRUE(first_map.SetValue("a", Value("test")));
149   EXPECT_TRUE(first_map.SetValue("b", Value("test")));
150   EXPECT_TRUE(first_map.SetValue("c", Value("test")));
151
152   PrefValueMap second_map;
153   EXPECT_TRUE(second_map.SetValue("d", Value("test")));
154   EXPECT_TRUE(second_map.SetValue("e", Value("test")));
155   EXPECT_TRUE(second_map.SetValue("f", Value("test")));
156
157   first_map.Swap(&second_map);
158
159   EXPECT_TRUE(first_map.GetValue("d", nullptr));
160   EXPECT_TRUE(first_map.GetValue("e", nullptr));
161   EXPECT_TRUE(first_map.GetValue("f", nullptr));
162
163   EXPECT_TRUE(second_map.GetValue("a", nullptr));
164   EXPECT_TRUE(second_map.GetValue("b", nullptr));
165   EXPECT_TRUE(second_map.GetValue("c", nullptr));
166 }
167
168 }  // namespace
169 }  // namespace base