Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(152)

Side by Side Diff: dbus/values_util_unittest.cc

Issue 16012018: Cleanup: Put DBus unit tests in the dbus namespace, so one does not need to write dbus:: everywhere… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « dbus/test_service.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "dbus/values_util.h" 5 #include "dbus/values_util.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/float_util.h" 9 #include "base/float_util.h"
10 #include "base/json/json_writer.h" 10 #include "base/json/json_writer.h"
11 #include "base/memory/scoped_ptr.h" 11 #include "base/memory/scoped_ptr.h"
12 #include "base/values.h" 12 #include "base/values.h"
13 #include "dbus/message.h" 13 #include "dbus/message.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 15
16 namespace dbus {
17
16 TEST(ValuesUtilTest, PopBasicTypes) { 18 TEST(ValuesUtilTest, PopBasicTypes) {
17 scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); 19 scoped_ptr<Response> response(Response::CreateEmpty());
18 // Append basic type values. 20 // Append basic type values.
19 dbus::MessageWriter writer(response.get()); 21 MessageWriter writer(response.get());
20 const uint8 kByteValue = 42; 22 const uint8 kByteValue = 42;
21 writer.AppendByte(kByteValue); 23 writer.AppendByte(kByteValue);
22 const bool kBoolValue = true; 24 const bool kBoolValue = true;
23 writer.AppendBool(kBoolValue); 25 writer.AppendBool(kBoolValue);
24 const int16 kInt16Value = -43; 26 const int16 kInt16Value = -43;
25 writer.AppendInt16(kInt16Value); 27 writer.AppendInt16(kInt16Value);
26 const uint16 kUint16Value = 44; 28 const uint16 kUint16Value = 44;
27 writer.AppendUint16(kUint16Value); 29 writer.AppendUint16(kUint16Value);
28 const int32 kInt32Value = -45; 30 const int32 kInt32Value = -45;
29 writer.AppendInt32(kInt32Value); 31 writer.AppendInt32(kInt32Value);
30 const uint32 kUint32Value = 46; 32 const uint32 kUint32Value = 46;
31 writer.AppendUint32(kUint32Value); 33 writer.AppendUint32(kUint32Value);
32 const int64 kInt64Value = -47; 34 const int64 kInt64Value = -47;
33 writer.AppendInt64(kInt64Value); 35 writer.AppendInt64(kInt64Value);
34 const uint64 kUint64Value = 48; 36 const uint64 kUint64Value = 48;
35 writer.AppendUint64(kUint64Value); 37 writer.AppendUint64(kUint64Value);
36 const double kDoubleValue = 4.9; 38 const double kDoubleValue = 4.9;
37 writer.AppendDouble(kDoubleValue); 39 writer.AppendDouble(kDoubleValue);
38 const std::string kStringValue = "fifty"; 40 const std::string kStringValue = "fifty";
39 writer.AppendString(kStringValue); 41 writer.AppendString(kStringValue);
40 const std::string kEmptyStringValue; 42 const std::string kEmptyStringValue;
41 writer.AppendString(kEmptyStringValue); 43 writer.AppendString(kEmptyStringValue);
42 const dbus::ObjectPath kObjectPathValue("/ObjectPath"); 44 const ObjectPath kObjectPathValue("/ObjectPath");
43 writer.AppendObjectPath(kObjectPathValue); 45 writer.AppendObjectPath(kObjectPathValue);
44 46
45 dbus::MessageReader reader(response.get()); 47 MessageReader reader(response.get());
46 scoped_ptr<base::Value> value; 48 scoped_ptr<base::Value> value;
47 scoped_ptr<base::Value> expected_value; 49 scoped_ptr<base::Value> expected_value;
48 // Pop a byte. 50 // Pop a byte.
49 value.reset(dbus::PopDataAsValue(&reader)); 51 value.reset(PopDataAsValue(&reader));
50 ASSERT_TRUE(value.get() != NULL); 52 ASSERT_TRUE(value.get() != NULL);
51 expected_value.reset(new base::FundamentalValue(kByteValue)); 53 expected_value.reset(new base::FundamentalValue(kByteValue));
52 EXPECT_TRUE(value->Equals(expected_value.get())); 54 EXPECT_TRUE(value->Equals(expected_value.get()));
53 // Pop a bool. 55 // Pop a bool.
54 value.reset(dbus::PopDataAsValue(&reader)); 56 value.reset(PopDataAsValue(&reader));
55 ASSERT_TRUE(value.get() != NULL); 57 ASSERT_TRUE(value.get() != NULL);
56 expected_value.reset(new base::FundamentalValue(kBoolValue)); 58 expected_value.reset(new base::FundamentalValue(kBoolValue));
57 EXPECT_TRUE(value->Equals(expected_value.get())); 59 EXPECT_TRUE(value->Equals(expected_value.get()));
58 // Pop an int16. 60 // Pop an int16.
59 value.reset(dbus::PopDataAsValue(&reader)); 61 value.reset(PopDataAsValue(&reader));
60 ASSERT_TRUE(value.get() != NULL); 62 ASSERT_TRUE(value.get() != NULL);
61 expected_value.reset(new base::FundamentalValue(kInt16Value)); 63 expected_value.reset(new base::FundamentalValue(kInt16Value));
62 EXPECT_TRUE(value->Equals(expected_value.get())); 64 EXPECT_TRUE(value->Equals(expected_value.get()));
63 // Pop a uint16. 65 // Pop a uint16.
64 value.reset(dbus::PopDataAsValue(&reader)); 66 value.reset(PopDataAsValue(&reader));
65 ASSERT_TRUE(value.get() != NULL); 67 ASSERT_TRUE(value.get() != NULL);
66 expected_value.reset(new base::FundamentalValue(kUint16Value)); 68 expected_value.reset(new base::FundamentalValue(kUint16Value));
67 EXPECT_TRUE(value->Equals(expected_value.get())); 69 EXPECT_TRUE(value->Equals(expected_value.get()));
68 // Pop an int32. 70 // Pop an int32.
69 value.reset(dbus::PopDataAsValue(&reader)); 71 value.reset(PopDataAsValue(&reader));
70 ASSERT_TRUE(value.get() != NULL); 72 ASSERT_TRUE(value.get() != NULL);
71 expected_value.reset(new base::FundamentalValue(kInt32Value)); 73 expected_value.reset(new base::FundamentalValue(kInt32Value));
72 EXPECT_TRUE(value->Equals(expected_value.get())); 74 EXPECT_TRUE(value->Equals(expected_value.get()));
73 // Pop a uint32. 75 // Pop a uint32.
74 value.reset(dbus::PopDataAsValue(&reader)); 76 value.reset(PopDataAsValue(&reader));
75 ASSERT_TRUE(value.get() != NULL); 77 ASSERT_TRUE(value.get() != NULL);
76 expected_value.reset( 78 expected_value.reset(
77 new base::FundamentalValue(static_cast<double>(kUint32Value))); 79 new base::FundamentalValue(static_cast<double>(kUint32Value)));
78 EXPECT_TRUE(value->Equals(expected_value.get())); 80 EXPECT_TRUE(value->Equals(expected_value.get()));
79 // Pop an int64. 81 // Pop an int64.
80 value.reset(dbus::PopDataAsValue(&reader)); 82 value.reset(PopDataAsValue(&reader));
81 ASSERT_TRUE(value.get() != NULL); 83 ASSERT_TRUE(value.get() != NULL);
82 expected_value.reset( 84 expected_value.reset(
83 new base::FundamentalValue(static_cast<double>(kInt64Value))); 85 new base::FundamentalValue(static_cast<double>(kInt64Value)));
84 EXPECT_TRUE(value->Equals(expected_value.get())); 86 EXPECT_TRUE(value->Equals(expected_value.get()));
85 // Pop a uint64. 87 // Pop a uint64.
86 value.reset(dbus::PopDataAsValue(&reader)); 88 value.reset(PopDataAsValue(&reader));
87 ASSERT_TRUE(value.get() != NULL); 89 ASSERT_TRUE(value.get() != NULL);
88 expected_value.reset( 90 expected_value.reset(
89 new base::FundamentalValue(static_cast<double>(kUint64Value))); 91 new base::FundamentalValue(static_cast<double>(kUint64Value)));
90 EXPECT_TRUE(value->Equals(expected_value.get())); 92 EXPECT_TRUE(value->Equals(expected_value.get()));
91 // Pop a double. 93 // Pop a double.
92 value.reset(dbus::PopDataAsValue(&reader)); 94 value.reset(PopDataAsValue(&reader));
93 ASSERT_TRUE(value.get() != NULL); 95 ASSERT_TRUE(value.get() != NULL);
94 expected_value.reset(new base::FundamentalValue(kDoubleValue)); 96 expected_value.reset(new base::FundamentalValue(kDoubleValue));
95 EXPECT_TRUE(value->Equals(expected_value.get())); 97 EXPECT_TRUE(value->Equals(expected_value.get()));
96 // Pop a string. 98 // Pop a string.
97 value.reset(dbus::PopDataAsValue(&reader)); 99 value.reset(PopDataAsValue(&reader));
98 ASSERT_TRUE(value.get() != NULL); 100 ASSERT_TRUE(value.get() != NULL);
99 expected_value.reset(new base::StringValue(kStringValue)); 101 expected_value.reset(new base::StringValue(kStringValue));
100 EXPECT_TRUE(value->Equals(expected_value.get())); 102 EXPECT_TRUE(value->Equals(expected_value.get()));
101 // Pop an empty string. 103 // Pop an empty string.
102 value.reset(dbus::PopDataAsValue(&reader)); 104 value.reset(PopDataAsValue(&reader));
103 ASSERT_TRUE(value.get() != NULL); 105 ASSERT_TRUE(value.get() != NULL);
104 expected_value.reset(new base::StringValue(kEmptyStringValue)); 106 expected_value.reset(new base::StringValue(kEmptyStringValue));
105 EXPECT_TRUE(value->Equals(expected_value.get())); 107 EXPECT_TRUE(value->Equals(expected_value.get()));
106 // Pop an object path. 108 // Pop an object path.
107 value.reset(dbus::PopDataAsValue(&reader)); 109 value.reset(PopDataAsValue(&reader));
108 ASSERT_TRUE(value.get() != NULL); 110 ASSERT_TRUE(value.get() != NULL);
109 expected_value.reset(new base::StringValue(kObjectPathValue.value())); 111 expected_value.reset(new base::StringValue(kObjectPathValue.value()));
110 EXPECT_TRUE(value->Equals(expected_value.get())); 112 EXPECT_TRUE(value->Equals(expected_value.get()));
111 } 113 }
112 114
113 TEST(ValuesUtilTest, PopVariant) { 115 TEST(ValuesUtilTest, PopVariant) {
114 scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); 116 scoped_ptr<Response> response(Response::CreateEmpty());
115 // Append variant values. 117 // Append variant values.
116 dbus::MessageWriter writer(response.get()); 118 MessageWriter writer(response.get());
117 const bool kBoolValue = true; 119 const bool kBoolValue = true;
118 writer.AppendVariantOfBool(kBoolValue); 120 writer.AppendVariantOfBool(kBoolValue);
119 const int32 kInt32Value = -45; 121 const int32 kInt32Value = -45;
120 writer.AppendVariantOfInt32(kInt32Value); 122 writer.AppendVariantOfInt32(kInt32Value);
121 const double kDoubleValue = 4.9; 123 const double kDoubleValue = 4.9;
122 writer.AppendVariantOfDouble(kDoubleValue); 124 writer.AppendVariantOfDouble(kDoubleValue);
123 const std::string kStringValue = "fifty"; 125 const std::string kStringValue = "fifty";
124 writer.AppendVariantOfString(kStringValue); 126 writer.AppendVariantOfString(kStringValue);
125 127
126 dbus::MessageReader reader(response.get()); 128 MessageReader reader(response.get());
127 scoped_ptr<base::Value> value; 129 scoped_ptr<base::Value> value;
128 scoped_ptr<base::Value> expected_value; 130 scoped_ptr<base::Value> expected_value;
129 // Pop a bool. 131 // Pop a bool.
130 value.reset(dbus::PopDataAsValue(&reader)); 132 value.reset(PopDataAsValue(&reader));
131 ASSERT_TRUE(value.get() != NULL); 133 ASSERT_TRUE(value.get() != NULL);
132 expected_value.reset(new base::FundamentalValue(kBoolValue)); 134 expected_value.reset(new base::FundamentalValue(kBoolValue));
133 EXPECT_TRUE(value->Equals(expected_value.get())); 135 EXPECT_TRUE(value->Equals(expected_value.get()));
134 // Pop an int32. 136 // Pop an int32.
135 value.reset(dbus::PopDataAsValue(&reader)); 137 value.reset(PopDataAsValue(&reader));
136 ASSERT_TRUE(value.get() != NULL); 138 ASSERT_TRUE(value.get() != NULL);
137 expected_value.reset(new base::FundamentalValue(kInt32Value)); 139 expected_value.reset(new base::FundamentalValue(kInt32Value));
138 EXPECT_TRUE(value->Equals(expected_value.get())); 140 EXPECT_TRUE(value->Equals(expected_value.get()));
139 // Pop a double. 141 // Pop a double.
140 value.reset(dbus::PopDataAsValue(&reader)); 142 value.reset(PopDataAsValue(&reader));
141 ASSERT_TRUE(value.get() != NULL); 143 ASSERT_TRUE(value.get() != NULL);
142 expected_value.reset(new base::FundamentalValue(kDoubleValue)); 144 expected_value.reset(new base::FundamentalValue(kDoubleValue));
143 EXPECT_TRUE(value->Equals(expected_value.get())); 145 EXPECT_TRUE(value->Equals(expected_value.get()));
144 // Pop a string. 146 // Pop a string.
145 value.reset(dbus::PopDataAsValue(&reader)); 147 value.reset(PopDataAsValue(&reader));
146 ASSERT_TRUE(value.get() != NULL); 148 ASSERT_TRUE(value.get() != NULL);
147 expected_value.reset(new base::StringValue(kStringValue)); 149 expected_value.reset(new base::StringValue(kStringValue));
148 EXPECT_TRUE(value->Equals(expected_value.get())); 150 EXPECT_TRUE(value->Equals(expected_value.get()));
149 } 151 }
150 152
151 // Pop extremely large integers which cannot be precisely represented in 153 // Pop extremely large integers which cannot be precisely represented in
152 // double. 154 // double.
153 TEST(ValuesUtilTest, PopExtremelyLargeIntegers) { 155 TEST(ValuesUtilTest, PopExtremelyLargeIntegers) {
154 scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); 156 scoped_ptr<Response> response(Response::CreateEmpty());
155 // Append large integers. 157 // Append large integers.
156 dbus::MessageWriter writer(response.get()); 158 MessageWriter writer(response.get());
157 const int64 kInt64Value = -123456789012345689LL; 159 const int64 kInt64Value = -123456789012345689LL;
158 writer.AppendInt64(kInt64Value); 160 writer.AppendInt64(kInt64Value);
159 const uint64 kUint64Value = 9876543210987654321ULL; 161 const uint64 kUint64Value = 9876543210987654321ULL;
160 writer.AppendUint64(kUint64Value); 162 writer.AppendUint64(kUint64Value);
161 163
162 dbus::MessageReader reader(response.get()); 164 MessageReader reader(response.get());
163 scoped_ptr<base::Value> value; 165 scoped_ptr<base::Value> value;
164 scoped_ptr<base::Value> expected_value; 166 scoped_ptr<base::Value> expected_value;
165 double double_value = 0; 167 double double_value = 0;
166 // Pop an int64. 168 // Pop an int64.
167 value.reset(dbus::PopDataAsValue(&reader)); 169 value.reset(PopDataAsValue(&reader));
168 ASSERT_TRUE(value.get() != NULL); 170 ASSERT_TRUE(value.get() != NULL);
169 expected_value.reset( 171 expected_value.reset(
170 new base::FundamentalValue(static_cast<double>(kInt64Value))); 172 new base::FundamentalValue(static_cast<double>(kInt64Value)));
171 EXPECT_TRUE(value->Equals(expected_value.get())); 173 EXPECT_TRUE(value->Equals(expected_value.get()));
172 ASSERT_TRUE(value->GetAsDouble(&double_value)); 174 ASSERT_TRUE(value->GetAsDouble(&double_value));
173 EXPECT_NE(kInt64Value, static_cast<int64>(double_value)); 175 EXPECT_NE(kInt64Value, static_cast<int64>(double_value));
174 // Pop a uint64. 176 // Pop a uint64.
175 value.reset(dbus::PopDataAsValue(&reader)); 177 value.reset(PopDataAsValue(&reader));
176 ASSERT_TRUE(value.get() != NULL); 178 ASSERT_TRUE(value.get() != NULL);
177 expected_value.reset( 179 expected_value.reset(
178 new base::FundamentalValue(static_cast<double>(kUint64Value))); 180 new base::FundamentalValue(static_cast<double>(kUint64Value)));
179 EXPECT_TRUE(value->Equals(expected_value.get())); 181 EXPECT_TRUE(value->Equals(expected_value.get()));
180 ASSERT_TRUE(value->GetAsDouble(&double_value)); 182 ASSERT_TRUE(value->GetAsDouble(&double_value));
181 EXPECT_NE(kUint64Value, static_cast<uint64>(double_value)); 183 EXPECT_NE(kUint64Value, static_cast<uint64>(double_value));
182 } 184 }
183 185
184 TEST(ValuesUtilTest, PopIntArray) { 186 TEST(ValuesUtilTest, PopIntArray) {
185 scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); 187 scoped_ptr<Response> response(Response::CreateEmpty());
186 // Append an int32 array. 188 // Append an int32 array.
187 dbus::MessageWriter writer(response.get()); 189 MessageWriter writer(response.get());
188 dbus::MessageWriter sub_writer(NULL); 190 MessageWriter sub_writer(NULL);
189 std::vector<int32> data; 191 std::vector<int32> data;
190 data.push_back(0); 192 data.push_back(0);
191 data.push_back(1); 193 data.push_back(1);
192 data.push_back(2); 194 data.push_back(2);
193 writer.OpenArray("i", &sub_writer); 195 writer.OpenArray("i", &sub_writer);
194 for (size_t i = 0; i != data.size(); ++i) 196 for (size_t i = 0; i != data.size(); ++i)
195 sub_writer.AppendInt32(data[i]); 197 sub_writer.AppendInt32(data[i]);
196 writer.CloseContainer(&sub_writer); 198 writer.CloseContainer(&sub_writer);
197 199
198 // Create the expected value. 200 // Create the expected value.
199 scoped_ptr<base::ListValue> list_value(new base::ListValue); 201 scoped_ptr<base::ListValue> list_value(new base::ListValue);
200 for (size_t i = 0; i != data.size(); ++i) 202 for (size_t i = 0; i != data.size(); ++i)
201 list_value->Append(new base::FundamentalValue(data[i])); 203 list_value->Append(new base::FundamentalValue(data[i]));
202 204
203 // Pop an int32 array. 205 // Pop an int32 array.
204 dbus::MessageReader reader(response.get()); 206 MessageReader reader(response.get());
205 scoped_ptr<base::Value> value(dbus::PopDataAsValue(&reader)); 207 scoped_ptr<base::Value> value(PopDataAsValue(&reader));
206 ASSERT_TRUE(value.get() != NULL); 208 ASSERT_TRUE(value.get() != NULL);
207 EXPECT_TRUE(value->Equals(list_value.get())); 209 EXPECT_TRUE(value->Equals(list_value.get()));
208 } 210 }
209 211
210 TEST(ValuesUtilTest, PopStringArray) { 212 TEST(ValuesUtilTest, PopStringArray) {
211 scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); 213 scoped_ptr<Response> response(Response::CreateEmpty());
212 // Append a string array. 214 // Append a string array.
213 dbus::MessageWriter writer(response.get()); 215 MessageWriter writer(response.get());
214 dbus::MessageWriter sub_writer(NULL); 216 MessageWriter sub_writer(NULL);
215 std::vector<std::string> data; 217 std::vector<std::string> data;
216 data.push_back("Dreamlifter"); 218 data.push_back("Dreamlifter");
217 data.push_back("Beluga"); 219 data.push_back("Beluga");
218 data.push_back("Mriya"); 220 data.push_back("Mriya");
219 writer.AppendArrayOfStrings(data); 221 writer.AppendArrayOfStrings(data);
220 222
221 // Create the expected value. 223 // Create the expected value.
222 scoped_ptr<base::ListValue> list_value(new base::ListValue); 224 scoped_ptr<base::ListValue> list_value(new base::ListValue);
223 for (size_t i = 0; i != data.size(); ++i) 225 for (size_t i = 0; i != data.size(); ++i)
224 list_value->Append(new base::StringValue(data[i])); 226 list_value->Append(new base::StringValue(data[i]));
225 227
226 // Pop a string array. 228 // Pop a string array.
227 dbus::MessageReader reader(response.get()); 229 MessageReader reader(response.get());
228 scoped_ptr<base::Value> value(dbus::PopDataAsValue(&reader)); 230 scoped_ptr<base::Value> value(PopDataAsValue(&reader));
229 ASSERT_TRUE(value.get() != NULL); 231 ASSERT_TRUE(value.get() != NULL);
230 EXPECT_TRUE(value->Equals(list_value.get())); 232 EXPECT_TRUE(value->Equals(list_value.get()));
231 } 233 }
232 234
233 TEST(ValuesUtilTest, PopStruct) { 235 TEST(ValuesUtilTest, PopStruct) {
234 scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); 236 scoped_ptr<Response> response(Response::CreateEmpty());
235 // Append a struct. 237 // Append a struct.
236 dbus::MessageWriter writer(response.get()); 238 MessageWriter writer(response.get());
237 dbus::MessageWriter sub_writer(NULL); 239 MessageWriter sub_writer(NULL);
238 writer.OpenStruct(&sub_writer); 240 writer.OpenStruct(&sub_writer);
239 const bool kBoolValue = true; 241 const bool kBoolValue = true;
240 sub_writer.AppendBool(kBoolValue); 242 sub_writer.AppendBool(kBoolValue);
241 const int32 kInt32Value = -123; 243 const int32 kInt32Value = -123;
242 sub_writer.AppendInt32(kInt32Value); 244 sub_writer.AppendInt32(kInt32Value);
243 const double kDoubleValue = 1.23; 245 const double kDoubleValue = 1.23;
244 sub_writer.AppendDouble(kDoubleValue); 246 sub_writer.AppendDouble(kDoubleValue);
245 const std::string kStringValue = "one two three"; 247 const std::string kStringValue = "one two three";
246 sub_writer.AppendString(kStringValue); 248 sub_writer.AppendString(kStringValue);
247 writer.CloseContainer(&sub_writer); 249 writer.CloseContainer(&sub_writer);
248 250
249 // Create the expected value. 251 // Create the expected value.
250 base::ListValue list_value; 252 base::ListValue list_value;
251 list_value.Append(new base::FundamentalValue(kBoolValue)); 253 list_value.Append(new base::FundamentalValue(kBoolValue));
252 list_value.Append(new base::FundamentalValue(kInt32Value)); 254 list_value.Append(new base::FundamentalValue(kInt32Value));
253 list_value.Append(new base::FundamentalValue(kDoubleValue)); 255 list_value.Append(new base::FundamentalValue(kDoubleValue));
254 list_value.Append(new base::StringValue(kStringValue)); 256 list_value.Append(new base::StringValue(kStringValue));
255 257
256 // Pop a struct. 258 // Pop a struct.
257 dbus::MessageReader reader(response.get()); 259 MessageReader reader(response.get());
258 scoped_ptr<base::Value> value(dbus::PopDataAsValue(&reader)); 260 scoped_ptr<base::Value> value(PopDataAsValue(&reader));
259 ASSERT_TRUE(value.get() != NULL); 261 ASSERT_TRUE(value.get() != NULL);
260 EXPECT_TRUE(value->Equals(&list_value)); 262 EXPECT_TRUE(value->Equals(&list_value));
261 } 263 }
262 264
263 TEST(ValuesUtilTest, PopStringToVariantDictionary) { 265 TEST(ValuesUtilTest, PopStringToVariantDictionary) {
264 scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); 266 scoped_ptr<Response> response(Response::CreateEmpty());
265 // Append a dictionary. 267 // Append a dictionary.
266 dbus::MessageWriter writer(response.get()); 268 MessageWriter writer(response.get());
267 dbus::MessageWriter sub_writer(NULL); 269 MessageWriter sub_writer(NULL);
268 dbus::MessageWriter entry_writer(NULL); 270 MessageWriter entry_writer(NULL);
269 writer.OpenArray("{sv}", &sub_writer); 271 writer.OpenArray("{sv}", &sub_writer);
270 sub_writer.OpenDictEntry(&entry_writer); 272 sub_writer.OpenDictEntry(&entry_writer);
271 const std::string kKey1 = "one"; 273 const std::string kKey1 = "one";
272 entry_writer.AppendString(kKey1); 274 entry_writer.AppendString(kKey1);
273 const bool kBoolValue = true; 275 const bool kBoolValue = true;
274 entry_writer.AppendVariantOfBool(kBoolValue); 276 entry_writer.AppendVariantOfBool(kBoolValue);
275 sub_writer.CloseContainer(&entry_writer); 277 sub_writer.CloseContainer(&entry_writer);
276 sub_writer.OpenDictEntry(&entry_writer); 278 sub_writer.OpenDictEntry(&entry_writer);
277 const std::string kKey2 = "two"; 279 const std::string kKey2 = "two";
278 entry_writer.AppendString(kKey2); 280 entry_writer.AppendString(kKey2);
(...skipping 15 matching lines...) Expand all
294 writer.CloseContainer(&sub_writer); 296 writer.CloseContainer(&sub_writer);
295 297
296 // Create the expected value. 298 // Create the expected value.
297 base::DictionaryValue dictionary_value; 299 base::DictionaryValue dictionary_value;
298 dictionary_value.SetBoolean(kKey1, kBoolValue); 300 dictionary_value.SetBoolean(kKey1, kBoolValue);
299 dictionary_value.SetInteger(kKey2, kInt32Value); 301 dictionary_value.SetInteger(kKey2, kInt32Value);
300 dictionary_value.SetDouble(kKey3, kDoubleValue); 302 dictionary_value.SetDouble(kKey3, kDoubleValue);
301 dictionary_value.SetString(kKey4, kStringValue); 303 dictionary_value.SetString(kKey4, kStringValue);
302 304
303 // Pop a dictinoary. 305 // Pop a dictinoary.
304 dbus::MessageReader reader(response.get()); 306 MessageReader reader(response.get());
305 scoped_ptr<base::Value> value(dbus::PopDataAsValue(&reader)); 307 scoped_ptr<base::Value> value(PopDataAsValue(&reader));
306 ASSERT_TRUE(value.get() != NULL); 308 ASSERT_TRUE(value.get() != NULL);
307 EXPECT_TRUE(value->Equals(&dictionary_value)); 309 EXPECT_TRUE(value->Equals(&dictionary_value));
308 } 310 }
309 311
310 TEST(ValuesUtilTest, PopDictionaryWithDottedStringKey) { 312 TEST(ValuesUtilTest, PopDictionaryWithDottedStringKey) {
311 scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); 313 scoped_ptr<Response> response(Response::CreateEmpty());
312 // Append a dictionary. 314 // Append a dictionary.
313 dbus::MessageWriter writer(response.get()); 315 MessageWriter writer(response.get());
314 dbus::MessageWriter sub_writer(NULL); 316 MessageWriter sub_writer(NULL);
315 dbus::MessageWriter entry_writer(NULL); 317 MessageWriter entry_writer(NULL);
316 writer.OpenArray("{sv}", &sub_writer); 318 writer.OpenArray("{sv}", &sub_writer);
317 sub_writer.OpenDictEntry(&entry_writer); 319 sub_writer.OpenDictEntry(&entry_writer);
318 const std::string kKey1 = "www.example.com"; // String including dots. 320 const std::string kKey1 = "www.example.com"; // String including dots.
319 entry_writer.AppendString(kKey1); 321 entry_writer.AppendString(kKey1);
320 const bool kBoolValue = true; 322 const bool kBoolValue = true;
321 entry_writer.AppendVariantOfBool(kBoolValue); 323 entry_writer.AppendVariantOfBool(kBoolValue);
322 sub_writer.CloseContainer(&entry_writer); 324 sub_writer.CloseContainer(&entry_writer);
323 sub_writer.OpenDictEntry(&entry_writer); 325 sub_writer.OpenDictEntry(&entry_writer);
324 const std::string kKey2 = ".example"; // String starting with a dot. 326 const std::string kKey2 = ".example"; // String starting with a dot.
325 entry_writer.AppendString(kKey2); 327 entry_writer.AppendString(kKey2);
(...skipping 11 matching lines...) Expand all
337 // Create the expected value. 339 // Create the expected value.
338 base::DictionaryValue dictionary_value; 340 base::DictionaryValue dictionary_value;
339 dictionary_value.SetWithoutPathExpansion( 341 dictionary_value.SetWithoutPathExpansion(
340 kKey1, new base::FundamentalValue(kBoolValue)); 342 kKey1, new base::FundamentalValue(kBoolValue));
341 dictionary_value.SetWithoutPathExpansion( 343 dictionary_value.SetWithoutPathExpansion(
342 kKey2, new base::FundamentalValue(kInt32Value)); 344 kKey2, new base::FundamentalValue(kInt32Value));
343 dictionary_value.SetWithoutPathExpansion( 345 dictionary_value.SetWithoutPathExpansion(
344 kKey3, new base::FundamentalValue(kDoubleValue)); 346 kKey3, new base::FundamentalValue(kDoubleValue));
345 347
346 // Pop a dictinoary. 348 // Pop a dictinoary.
347 dbus::MessageReader reader(response.get()); 349 MessageReader reader(response.get());
348 scoped_ptr<base::Value> value(dbus::PopDataAsValue(&reader)); 350 scoped_ptr<base::Value> value(PopDataAsValue(&reader));
349 ASSERT_TRUE(value.get() != NULL); 351 ASSERT_TRUE(value.get() != NULL);
350 EXPECT_TRUE(value->Equals(&dictionary_value)); 352 EXPECT_TRUE(value->Equals(&dictionary_value));
351 } 353 }
352 354
353 TEST(ValuesUtilTest, PopDoubleToIntDictionary) { 355 TEST(ValuesUtilTest, PopDoubleToIntDictionary) {
354 // Create test data. 356 // Create test data.
355 const int32 kValues[] = {0, 1, 1, 2, 3, 5, 8, 13, 21}; 357 const int32 kValues[] = {0, 1, 1, 2, 3, 5, 8, 13, 21};
356 const std::vector<int32> values(kValues, kValues + arraysize(kValues)); 358 const std::vector<int32> values(kValues, kValues + arraysize(kValues));
357 std::vector<double> keys(values.size()); 359 std::vector<double> keys(values.size());
358 for (size_t i = 0; i != values.size(); ++i) 360 for (size_t i = 0; i != values.size(); ++i)
359 keys[i] = sqrt(values[i]); 361 keys[i] = sqrt(values[i]);
360 362
361 // Append a dictionary. 363 // Append a dictionary.
362 scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); 364 scoped_ptr<Response> response(Response::CreateEmpty());
363 dbus::MessageWriter writer(response.get()); 365 MessageWriter writer(response.get());
364 dbus::MessageWriter sub_writer(NULL); 366 MessageWriter sub_writer(NULL);
365 writer.OpenArray("{di}", &sub_writer); 367 writer.OpenArray("{di}", &sub_writer);
366 for (size_t i = 0; i != values.size(); ++i) { 368 for (size_t i = 0; i != values.size(); ++i) {
367 dbus::MessageWriter entry_writer(NULL); 369 MessageWriter entry_writer(NULL);
368 sub_writer.OpenDictEntry(&entry_writer); 370 sub_writer.OpenDictEntry(&entry_writer);
369 entry_writer.AppendDouble(keys[i]); 371 entry_writer.AppendDouble(keys[i]);
370 entry_writer.AppendInt32(values[i]); 372 entry_writer.AppendInt32(values[i]);
371 sub_writer.CloseContainer(&entry_writer); 373 sub_writer.CloseContainer(&entry_writer);
372 } 374 }
373 writer.CloseContainer(&sub_writer); 375 writer.CloseContainer(&sub_writer);
374 376
375 // Create the expected value. 377 // Create the expected value.
376 base::DictionaryValue dictionary_value; 378 base::DictionaryValue dictionary_value;
377 for (size_t i = 0; i != values.size(); ++i) { 379 for (size_t i = 0; i != values.size(); ++i) {
378 scoped_ptr<base::Value> key_value(new base::FundamentalValue(keys[i])); 380 scoped_ptr<base::Value> key_value(new base::FundamentalValue(keys[i]));
379 std::string key_string; 381 std::string key_string;
380 base::JSONWriter::Write(key_value.get(), &key_string); 382 base::JSONWriter::Write(key_value.get(), &key_string);
381 dictionary_value.SetWithoutPathExpansion( 383 dictionary_value.SetWithoutPathExpansion(
382 key_string, new base::FundamentalValue(values[i])); 384 key_string, new base::FundamentalValue(values[i]));
383 } 385 }
384 386
385 // Pop a dictionary. 387 // Pop a dictionary.
386 dbus::MessageReader reader(response.get()); 388 MessageReader reader(response.get());
387 scoped_ptr<base::Value> value(dbus::PopDataAsValue(&reader)); 389 scoped_ptr<base::Value> value(PopDataAsValue(&reader));
388 ASSERT_TRUE(value.get() != NULL); 390 ASSERT_TRUE(value.get() != NULL);
389 EXPECT_TRUE(value->Equals(&dictionary_value)); 391 EXPECT_TRUE(value->Equals(&dictionary_value));
390 } 392 }
391 393
392 TEST(ValuesUtilTest, AppendBasicTypes) { 394 TEST(ValuesUtilTest, AppendBasicTypes) {
393 const base::FundamentalValue kBoolValue(false); 395 const base::FundamentalValue kBoolValue(false);
394 const base::FundamentalValue kIntegerValue(42); 396 const base::FundamentalValue kIntegerValue(42);
395 const base::FundamentalValue kDoubleValue(4.2); 397 const base::FundamentalValue kDoubleValue(4.2);
396 const base::StringValue kStringValue("string"); 398 const base::StringValue kStringValue("string");
397 399
398 scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); 400 scoped_ptr<Response> response(Response::CreateEmpty());
399 dbus::MessageWriter writer(response.get()); 401 MessageWriter writer(response.get());
400 AppendBasicTypeValueData(&writer, kBoolValue); 402 AppendBasicTypeValueData(&writer, kBoolValue);
401 AppendBasicTypeValueData(&writer, kIntegerValue); 403 AppendBasicTypeValueData(&writer, kIntegerValue);
402 AppendBasicTypeValueData(&writer, kDoubleValue); 404 AppendBasicTypeValueData(&writer, kDoubleValue);
403 AppendBasicTypeValueData(&writer, kStringValue); 405 AppendBasicTypeValueData(&writer, kStringValue);
404 406
405 dbus::MessageReader reader(response.get()); 407 MessageReader reader(response.get());
406 scoped_ptr<base::Value> value; 408 scoped_ptr<base::Value> value;
407 value.reset(dbus::PopDataAsValue(&reader)); 409 value.reset(PopDataAsValue(&reader));
408 ASSERT_TRUE(value.get() != NULL); 410 ASSERT_TRUE(value.get() != NULL);
409 EXPECT_TRUE(value->Equals(&kBoolValue)); 411 EXPECT_TRUE(value->Equals(&kBoolValue));
410 value.reset(dbus::PopDataAsValue(&reader)); 412 value.reset(PopDataAsValue(&reader));
411 ASSERT_TRUE(value.get() != NULL); 413 ASSERT_TRUE(value.get() != NULL);
412 EXPECT_TRUE(value->Equals(&kIntegerValue)); 414 EXPECT_TRUE(value->Equals(&kIntegerValue));
413 value.reset(dbus::PopDataAsValue(&reader)); 415 value.reset(PopDataAsValue(&reader));
414 ASSERT_TRUE(value.get() != NULL); 416 ASSERT_TRUE(value.get() != NULL);
415 EXPECT_TRUE(value->Equals(&kDoubleValue)); 417 EXPECT_TRUE(value->Equals(&kDoubleValue));
416 value.reset(dbus::PopDataAsValue(&reader)); 418 value.reset(PopDataAsValue(&reader));
417 ASSERT_TRUE(value.get() != NULL); 419 ASSERT_TRUE(value.get() != NULL);
418 EXPECT_TRUE(value->Equals(&kStringValue)); 420 EXPECT_TRUE(value->Equals(&kStringValue));
419 } 421 }
420 422
421 TEST(ValuesUtilTest, AppendBasicTypesAsVariant) { 423 TEST(ValuesUtilTest, AppendBasicTypesAsVariant) {
422 const base::FundamentalValue kBoolValue(false); 424 const base::FundamentalValue kBoolValue(false);
423 const base::FundamentalValue kIntegerValue(42); 425 const base::FundamentalValue kIntegerValue(42);
424 const base::FundamentalValue kDoubleValue(4.2); 426 const base::FundamentalValue kDoubleValue(4.2);
425 const base::StringValue kStringValue("string"); 427 const base::StringValue kStringValue("string");
426 428
427 scoped_ptr<dbus::Response> response(dbus::Response::CreateEmpty()); 429 scoped_ptr<Response> response(Response::CreateEmpty());
428 dbus::MessageWriter writer(response.get()); 430 MessageWriter writer(response.get());
429 AppendBasicTypeValueDataAsVariant(&writer, kBoolValue); 431 AppendBasicTypeValueDataAsVariant(&writer, kBoolValue);
430 AppendBasicTypeValueDataAsVariant(&writer, kIntegerValue); 432 AppendBasicTypeValueDataAsVariant(&writer, kIntegerValue);
431 AppendBasicTypeValueDataAsVariant(&writer, kDoubleValue); 433 AppendBasicTypeValueDataAsVariant(&writer, kDoubleValue);
432 AppendBasicTypeValueDataAsVariant(&writer, kStringValue); 434 AppendBasicTypeValueDataAsVariant(&writer, kStringValue);
433 435
434 dbus::MessageReader reader(response.get()); 436 MessageReader reader(response.get());
435 scoped_ptr<base::Value> value; 437 scoped_ptr<base::Value> value;
436 value.reset(dbus::PopDataAsValue(&reader)); 438 value.reset(PopDataAsValue(&reader));
437 ASSERT_TRUE(value.get() != NULL); 439 ASSERT_TRUE(value.get() != NULL);
438 EXPECT_TRUE(value->Equals(&kBoolValue)); 440 EXPECT_TRUE(value->Equals(&kBoolValue));
439 value.reset(dbus::PopDataAsValue(&reader)); 441 value.reset(PopDataAsValue(&reader));
440 ASSERT_TRUE(value.get() != NULL); 442 ASSERT_TRUE(value.get() != NULL);
441 EXPECT_TRUE(value->Equals(&kIntegerValue)); 443 EXPECT_TRUE(value->Equals(&kIntegerValue));
442 value.reset(dbus::PopDataAsValue(&reader)); 444 value.reset(PopDataAsValue(&reader));
443 ASSERT_TRUE(value.get() != NULL); 445 ASSERT_TRUE(value.get() != NULL);
444 EXPECT_TRUE(value->Equals(&kDoubleValue)); 446 EXPECT_TRUE(value->Equals(&kDoubleValue));
445 value.reset(dbus::PopDataAsValue(&reader)); 447 value.reset(PopDataAsValue(&reader));
446 ASSERT_TRUE(value.get() != NULL); 448 ASSERT_TRUE(value.get() != NULL);
447 EXPECT_TRUE(value->Equals(&kStringValue)); 449 EXPECT_TRUE(value->Equals(&kStringValue));
448 } 450 }
451
452 } // namespace dbus
OLDNEW
« no previous file with comments | « dbus/test_service.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698