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

Side by Side Diff: base/values_unittest.cc

Issue 7275004: base: Use TEST() macro in Value unittests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 5 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 | « base/file_descriptor_shuffle_unittest.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) 2011 The Chromium Authors. All rights reserved. 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 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 <limits> 5 #include <limits>
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/string16.h" 8 #include "base/string16.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "base/values.h" 10 #include "base/values.h"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 12
13 class ValuesTest : public testing::Test { 13 namespace base {
14 };
15 14
16 TEST_F(ValuesTest, Basic) { 15 TEST(ValuesTest, Basic) {
17 // Test basic dictionary getting/setting 16 // Test basic dictionary getting/setting
18 DictionaryValue settings; 17 DictionaryValue settings;
19 std::string homepage = "http://google.com"; 18 std::string homepage = "http://google.com";
20 ASSERT_FALSE(settings.GetString("global.homepage", &homepage)); 19 ASSERT_FALSE(settings.GetString("global.homepage", &homepage));
21 ASSERT_EQ(std::string("http://google.com"), homepage); 20 ASSERT_EQ(std::string("http://google.com"), homepage);
22 21
23 ASSERT_FALSE(settings.Get("global", NULL)); 22 ASSERT_FALSE(settings.Get("global", NULL));
24 settings.Set("global", Value::CreateBooleanValue(true)); 23 settings.Set("global", Value::CreateBooleanValue(true));
25 ASSERT_TRUE(settings.Get("global", NULL)); 24 ASSERT_TRUE(settings.Get("global", NULL));
26 settings.SetString("global.homepage", "http://scurvy.com"); 25 settings.SetString("global.homepage", "http://scurvy.com");
(...skipping 22 matching lines...) Expand all
49 ASSERT_EQ(1U, bookmark_list->GetSize()); 48 ASSERT_EQ(1U, bookmark_list->GetSize());
50 ASSERT_TRUE(bookmark_list->GetDictionary(0, &bookmark)); 49 ASSERT_TRUE(bookmark_list->GetDictionary(0, &bookmark));
51 std::string bookmark_name = "Unnamed"; 50 std::string bookmark_name = "Unnamed";
52 ASSERT_TRUE(bookmark->GetString("name", &bookmark_name)); 51 ASSERT_TRUE(bookmark->GetString("name", &bookmark_name));
53 ASSERT_EQ(std::string("Froogle"), bookmark_name); 52 ASSERT_EQ(std::string("Froogle"), bookmark_name);
54 std::string bookmark_url; 53 std::string bookmark_url;
55 ASSERT_TRUE(bookmark->GetString("url", &bookmark_url)); 54 ASSERT_TRUE(bookmark->GetString("url", &bookmark_url));
56 ASSERT_EQ(std::string("http://froogle.com"), bookmark_url); 55 ASSERT_EQ(std::string("http://froogle.com"), bookmark_url);
57 } 56 }
58 57
59 TEST_F(ValuesTest, List) { 58 TEST(ValuesTest, List) {
60 scoped_ptr<ListValue> mixed_list(new ListValue()); 59 scoped_ptr<ListValue> mixed_list(new ListValue());
61 mixed_list->Set(0, Value::CreateBooleanValue(true)); 60 mixed_list->Set(0, Value::CreateBooleanValue(true));
62 mixed_list->Set(1, Value::CreateIntegerValue(42)); 61 mixed_list->Set(1, Value::CreateIntegerValue(42));
63 mixed_list->Set(2, Value::CreateDoubleValue(88.8)); 62 mixed_list->Set(2, Value::CreateDoubleValue(88.8));
64 mixed_list->Set(3, Value::CreateStringValue("foo")); 63 mixed_list->Set(3, Value::CreateStringValue("foo"));
65 ASSERT_EQ(4u, mixed_list->GetSize()); 64 ASSERT_EQ(4u, mixed_list->GetSize());
66 65
67 Value *value = NULL; 66 Value *value = NULL;
68 bool bool_value = false; 67 bool bool_value = false;
69 int int_value = 0; 68 int int_value = 0;
(...skipping 19 matching lines...) Expand all
89 ASSERT_EQ(42, int_value); 88 ASSERT_EQ(42, int_value);
90 // implicit conversion from Integer to Double should be possible. 89 // implicit conversion from Integer to Double should be possible.
91 ASSERT_TRUE(mixed_list->GetDouble(1, &double_value)); 90 ASSERT_TRUE(mixed_list->GetDouble(1, &double_value));
92 ASSERT_EQ(42, double_value); 91 ASSERT_EQ(42, double_value);
93 ASSERT_TRUE(mixed_list->GetDouble(2, &double_value)); 92 ASSERT_TRUE(mixed_list->GetDouble(2, &double_value));
94 ASSERT_EQ(88.8, double_value); 93 ASSERT_EQ(88.8, double_value);
95 ASSERT_TRUE(mixed_list->GetString(3, &string_value)); 94 ASSERT_TRUE(mixed_list->GetString(3, &string_value));
96 ASSERT_EQ("foo", string_value); 95 ASSERT_EQ("foo", string_value);
97 } 96 }
98 97
99 TEST_F(ValuesTest, BinaryValue) { 98 TEST(ValuesTest, BinaryValue) {
100 char* buffer = NULL; 99 char* buffer = NULL;
101 // Passing a null buffer pointer doesn't yield a BinaryValue 100 // Passing a null buffer pointer doesn't yield a BinaryValue
102 scoped_ptr<BinaryValue> binary(BinaryValue::Create(buffer, 0)); 101 scoped_ptr<BinaryValue> binary(BinaryValue::Create(buffer, 0));
103 ASSERT_FALSE(binary.get()); 102 ASSERT_FALSE(binary.get());
104 103
105 // If you want to represent an empty binary value, use a zero-length buffer. 104 // If you want to represent an empty binary value, use a zero-length buffer.
106 buffer = new char[1]; 105 buffer = new char[1];
107 ASSERT_TRUE(buffer); 106 ASSERT_TRUE(buffer);
108 binary.reset(BinaryValue::Create(buffer, 0)); 107 binary.reset(BinaryValue::Create(buffer, 0));
109 ASSERT_TRUE(binary.get()); 108 ASSERT_TRUE(binary.get());
(...skipping 12 matching lines...) Expand all
122 char stack_buffer[42]; 121 char stack_buffer[42];
123 memset(stack_buffer, '!', 42); 122 memset(stack_buffer, '!', 42);
124 binary.reset(BinaryValue::CreateWithCopiedBuffer(stack_buffer, 42)); 123 binary.reset(BinaryValue::CreateWithCopiedBuffer(stack_buffer, 42));
125 ASSERT_TRUE(binary.get()); 124 ASSERT_TRUE(binary.get());
126 ASSERT_TRUE(binary->GetBuffer()); 125 ASSERT_TRUE(binary->GetBuffer());
127 ASSERT_NE(stack_buffer, binary->GetBuffer()); 126 ASSERT_NE(stack_buffer, binary->GetBuffer());
128 ASSERT_EQ(42U, binary->GetSize()); 127 ASSERT_EQ(42U, binary->GetSize());
129 ASSERT_EQ(0, memcmp(stack_buffer, binary->GetBuffer(), binary->GetSize())); 128 ASSERT_EQ(0, memcmp(stack_buffer, binary->GetBuffer(), binary->GetSize()));
130 } 129 }
131 130
132 TEST_F(ValuesTest, StringValue) { 131 TEST(ValuesTest, StringValue) {
133 // Test overloaded CreateStringValue. 132 // Test overloaded CreateStringValue.
134 scoped_ptr<Value> narrow_value(Value::CreateStringValue("narrow")); 133 scoped_ptr<Value> narrow_value(Value::CreateStringValue("narrow"));
135 ASSERT_TRUE(narrow_value.get()); 134 ASSERT_TRUE(narrow_value.get());
136 ASSERT_TRUE(narrow_value->IsType(Value::TYPE_STRING)); 135 ASSERT_TRUE(narrow_value->IsType(Value::TYPE_STRING));
137 scoped_ptr<Value> utf16_value( 136 scoped_ptr<Value> utf16_value(
138 Value::CreateStringValue(ASCIIToUTF16("utf16"))); 137 Value::CreateStringValue(ASCIIToUTF16("utf16")));
139 ASSERT_TRUE(utf16_value.get()); 138 ASSERT_TRUE(utf16_value.get());
140 ASSERT_TRUE(utf16_value->IsType(Value::TYPE_STRING)); 139 ASSERT_TRUE(utf16_value->IsType(Value::TYPE_STRING));
141 140
142 // Test overloaded GetString. 141 // Test overloaded GetString.
(...skipping 25 matching lines...) Expand all
168 } 167 }
169 168
170 ~DeletionTestValue() { 169 ~DeletionTestValue() {
171 *deletion_flag_ = true; 170 *deletion_flag_ = true;
172 } 171 }
173 172
174 private: 173 private:
175 bool* deletion_flag_; 174 bool* deletion_flag_;
176 }; 175 };
177 176
178 TEST_F(ValuesTest, ListDeletion) { 177 TEST(ValuesTest, ListDeletion) {
179 bool deletion_flag = true; 178 bool deletion_flag = true;
180 179
181 { 180 {
182 ListValue list; 181 ListValue list;
183 list.Append(new DeletionTestValue(&deletion_flag)); 182 list.Append(new DeletionTestValue(&deletion_flag));
184 EXPECT_FALSE(deletion_flag); 183 EXPECT_FALSE(deletion_flag);
185 } 184 }
186 EXPECT_TRUE(deletion_flag); 185 EXPECT_TRUE(deletion_flag);
187 186
188 { 187 {
189 ListValue list; 188 ListValue list;
190 list.Append(new DeletionTestValue(&deletion_flag)); 189 list.Append(new DeletionTestValue(&deletion_flag));
191 EXPECT_FALSE(deletion_flag); 190 EXPECT_FALSE(deletion_flag);
192 list.Clear(); 191 list.Clear();
193 EXPECT_TRUE(deletion_flag); 192 EXPECT_TRUE(deletion_flag);
194 } 193 }
195 194
196 { 195 {
197 ListValue list; 196 ListValue list;
198 list.Append(new DeletionTestValue(&deletion_flag)); 197 list.Append(new DeletionTestValue(&deletion_flag));
199 EXPECT_FALSE(deletion_flag); 198 EXPECT_FALSE(deletion_flag);
200 EXPECT_TRUE(list.Set(0, Value::CreateNullValue())); 199 EXPECT_TRUE(list.Set(0, Value::CreateNullValue()));
201 EXPECT_TRUE(deletion_flag); 200 EXPECT_TRUE(deletion_flag);
202 } 201 }
203 } 202 }
204 203
205 TEST_F(ValuesTest, ListRemoval) { 204 TEST(ValuesTest, ListRemoval) {
206 bool deletion_flag = true; 205 bool deletion_flag = true;
207 Value* removed_item = NULL; 206 Value* removed_item = NULL;
208 207
209 { 208 {
210 ListValue list; 209 ListValue list;
211 list.Append(new DeletionTestValue(&deletion_flag)); 210 list.Append(new DeletionTestValue(&deletion_flag));
212 EXPECT_FALSE(deletion_flag); 211 EXPECT_FALSE(deletion_flag);
213 EXPECT_EQ(1U, list.GetSize()); 212 EXPECT_EQ(1U, list.GetSize());
214 EXPECT_FALSE(list.Remove(std::numeric_limits<size_t>::max(), 213 EXPECT_FALSE(list.Remove(std::numeric_limits<size_t>::max(),
215 &removed_item)); 214 &removed_item));
(...skipping 20 matching lines...) Expand all
236 ListValue list; 235 ListValue list;
237 DeletionTestValue* value = new DeletionTestValue(&deletion_flag); 236 DeletionTestValue* value = new DeletionTestValue(&deletion_flag);
238 list.Append(value); 237 list.Append(value);
239 EXPECT_FALSE(deletion_flag); 238 EXPECT_FALSE(deletion_flag);
240 EXPECT_EQ(0, list.Remove(*value)); 239 EXPECT_EQ(0, list.Remove(*value));
241 EXPECT_TRUE(deletion_flag); 240 EXPECT_TRUE(deletion_flag);
242 EXPECT_EQ(0U, list.GetSize()); 241 EXPECT_EQ(0U, list.GetSize());
243 } 242 }
244 } 243 }
245 244
246 TEST_F(ValuesTest, DictionaryDeletion) { 245 TEST(ValuesTest, DictionaryDeletion) {
247 std::string key = "test"; 246 std::string key = "test";
248 bool deletion_flag = true; 247 bool deletion_flag = true;
249 248
250 { 249 {
251 DictionaryValue dict; 250 DictionaryValue dict;
252 dict.Set(key, new DeletionTestValue(&deletion_flag)); 251 dict.Set(key, new DeletionTestValue(&deletion_flag));
253 EXPECT_FALSE(deletion_flag); 252 EXPECT_FALSE(deletion_flag);
254 } 253 }
255 EXPECT_TRUE(deletion_flag); 254 EXPECT_TRUE(deletion_flag);
256 255
257 { 256 {
258 DictionaryValue dict; 257 DictionaryValue dict;
259 dict.Set(key, new DeletionTestValue(&deletion_flag)); 258 dict.Set(key, new DeletionTestValue(&deletion_flag));
260 EXPECT_FALSE(deletion_flag); 259 EXPECT_FALSE(deletion_flag);
261 dict.Clear(); 260 dict.Clear();
262 EXPECT_TRUE(deletion_flag); 261 EXPECT_TRUE(deletion_flag);
263 } 262 }
264 263
265 { 264 {
266 DictionaryValue dict; 265 DictionaryValue dict;
267 dict.Set(key, new DeletionTestValue(&deletion_flag)); 266 dict.Set(key, new DeletionTestValue(&deletion_flag));
268 EXPECT_FALSE(deletion_flag); 267 EXPECT_FALSE(deletion_flag);
269 dict.Set(key, Value::CreateNullValue()); 268 dict.Set(key, Value::CreateNullValue());
270 EXPECT_TRUE(deletion_flag); 269 EXPECT_TRUE(deletion_flag);
271 } 270 }
272 } 271 }
273 272
274 TEST_F(ValuesTest, DictionaryRemoval) { 273 TEST(ValuesTest, DictionaryRemoval) {
275 std::string key = "test"; 274 std::string key = "test";
276 bool deletion_flag = true; 275 bool deletion_flag = true;
277 Value* removed_item = NULL; 276 Value* removed_item = NULL;
278 277
279 { 278 {
280 DictionaryValue dict; 279 DictionaryValue dict;
281 dict.Set(key, new DeletionTestValue(&deletion_flag)); 280 dict.Set(key, new DeletionTestValue(&deletion_flag));
282 EXPECT_FALSE(deletion_flag); 281 EXPECT_FALSE(deletion_flag);
283 EXPECT_TRUE(dict.HasKey(key)); 282 EXPECT_TRUE(dict.HasKey(key));
284 EXPECT_FALSE(dict.Remove("absent key", &removed_item)); 283 EXPECT_FALSE(dict.Remove("absent key", &removed_item));
(...skipping 10 matching lines...) Expand all
295 DictionaryValue dict; 294 DictionaryValue dict;
296 dict.Set(key, new DeletionTestValue(&deletion_flag)); 295 dict.Set(key, new DeletionTestValue(&deletion_flag));
297 EXPECT_FALSE(deletion_flag); 296 EXPECT_FALSE(deletion_flag);
298 EXPECT_TRUE(dict.HasKey(key)); 297 EXPECT_TRUE(dict.HasKey(key));
299 EXPECT_TRUE(dict.Remove(key, NULL)); 298 EXPECT_TRUE(dict.Remove(key, NULL));
300 EXPECT_TRUE(deletion_flag); 299 EXPECT_TRUE(deletion_flag);
301 EXPECT_FALSE(dict.HasKey(key)); 300 EXPECT_FALSE(dict.HasKey(key));
302 } 301 }
303 } 302 }
304 303
305 TEST_F(ValuesTest, DictionaryWithoutPathExpansion) { 304 TEST(ValuesTest, DictionaryWithoutPathExpansion) {
306 DictionaryValue dict; 305 DictionaryValue dict;
307 dict.Set("this.is.expanded", Value::CreateNullValue()); 306 dict.Set("this.is.expanded", Value::CreateNullValue());
308 dict.SetWithoutPathExpansion("this.isnt.expanded", Value::CreateNullValue()); 307 dict.SetWithoutPathExpansion("this.isnt.expanded", Value::CreateNullValue());
309 308
310 EXPECT_FALSE(dict.HasKey("this.is.expanded")); 309 EXPECT_FALSE(dict.HasKey("this.is.expanded"));
311 EXPECT_TRUE(dict.HasKey("this")); 310 EXPECT_TRUE(dict.HasKey("this"));
312 Value* value1; 311 Value* value1;
313 EXPECT_TRUE(dict.Get("this", &value1)); 312 EXPECT_TRUE(dict.Get("this", &value1));
314 DictionaryValue* value2; 313 DictionaryValue* value2;
315 ASSERT_TRUE(dict.GetDictionaryWithoutPathExpansion("this", &value2)); 314 ASSERT_TRUE(dict.GetDictionaryWithoutPathExpansion("this", &value2));
316 EXPECT_EQ(value1, value2); 315 EXPECT_EQ(value1, value2);
317 EXPECT_EQ(1U, value2->size()); 316 EXPECT_EQ(1U, value2->size());
318 317
319 EXPECT_TRUE(dict.HasKey("this.isnt.expanded")); 318 EXPECT_TRUE(dict.HasKey("this.isnt.expanded"));
320 Value* value3; 319 Value* value3;
321 EXPECT_FALSE(dict.Get("this.isnt.expanded", &value3)); 320 EXPECT_FALSE(dict.Get("this.isnt.expanded", &value3));
322 Value* value4; 321 Value* value4;
323 ASSERT_TRUE(dict.GetWithoutPathExpansion("this.isnt.expanded", &value4)); 322 ASSERT_TRUE(dict.GetWithoutPathExpansion("this.isnt.expanded", &value4));
324 EXPECT_EQ(Value::TYPE_NULL, value4->GetType()); 323 EXPECT_EQ(Value::TYPE_NULL, value4->GetType());
325 } 324 }
326 325
327 TEST_F(ValuesTest, DeepCopy) { 326 TEST(ValuesTest, DeepCopy) {
328 DictionaryValue original_dict; 327 DictionaryValue original_dict;
329 Value* original_null = Value::CreateNullValue(); 328 Value* original_null = Value::CreateNullValue();
330 original_dict.Set("null", original_null); 329 original_dict.Set("null", original_null);
331 FundamentalValue* original_bool = Value::CreateBooleanValue(true); 330 FundamentalValue* original_bool = Value::CreateBooleanValue(true);
332 original_dict.Set("bool", original_bool); 331 original_dict.Set("bool", original_bool);
333 FundamentalValue* original_int = Value::CreateIntegerValue(42); 332 FundamentalValue* original_int = Value::CreateIntegerValue(42);
334 original_dict.Set("int", original_int); 333 original_dict.Set("int", original_int);
335 FundamentalValue* original_double = Value::CreateDoubleValue(3.14); 334 FundamentalValue* original_double = Value::CreateDoubleValue(3.14);
336 original_dict.Set("double", original_double); 335 original_dict.Set("double", original_double);
337 StringValue* original_string = Value::CreateStringValue("hello"); 336 StringValue* original_string = Value::CreateStringValue("hello");
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 441
443 Value* copy_list_element_1; 442 Value* copy_list_element_1;
444 ASSERT_TRUE(copy_list->Get(1, &copy_list_element_1)); 443 ASSERT_TRUE(copy_list->Get(1, &copy_list_element_1));
445 ASSERT_TRUE(copy_list_element_1); 444 ASSERT_TRUE(copy_list_element_1);
446 ASSERT_NE(copy_list_element_1, original_list_element_1); 445 ASSERT_NE(copy_list_element_1, original_list_element_1);
447 int copy_list_element_1_value; 446 int copy_list_element_1_value;
448 ASSERT_TRUE(copy_list_element_1->GetAsInteger(&copy_list_element_1_value)); 447 ASSERT_TRUE(copy_list_element_1->GetAsInteger(&copy_list_element_1_value));
449 ASSERT_EQ(1, copy_list_element_1_value); 448 ASSERT_EQ(1, copy_list_element_1_value);
450 } 449 }
451 450
452 TEST_F(ValuesTest, Equals) { 451 TEST(ValuesTest, Equals) {
453 Value* null1 = Value::CreateNullValue(); 452 Value* null1 = Value::CreateNullValue();
454 Value* null2 = Value::CreateNullValue(); 453 Value* null2 = Value::CreateNullValue();
455 EXPECT_NE(null1, null2); 454 EXPECT_NE(null1, null2);
456 EXPECT_TRUE(null1->Equals(null2)); 455 EXPECT_TRUE(null1->Equals(null2));
457 456
458 Value* boolean = Value::CreateBooleanValue(false); 457 Value* boolean = Value::CreateBooleanValue(false);
459 EXPECT_FALSE(null1->Equals(boolean)); 458 EXPECT_FALSE(null1->Equals(boolean));
460 delete null1; 459 delete null1;
461 delete null2; 460 delete null2;
462 delete boolean; 461 delete boolean;
(...skipping 23 matching lines...) Expand all
486 EXPECT_FALSE(dv.Equals(copy.get())); 485 EXPECT_FALSE(dv.Equals(copy.get()));
487 486
488 // Check if Equals detects differences in only the keys. 487 // Check if Equals detects differences in only the keys.
489 copy.reset(dv.DeepCopy()); 488 copy.reset(dv.DeepCopy());
490 EXPECT_TRUE(dv.Equals(copy.get())); 489 EXPECT_TRUE(dv.Equals(copy.get()));
491 copy->Remove("a", NULL); 490 copy->Remove("a", NULL);
492 copy->SetBoolean("aa", false); 491 copy->SetBoolean("aa", false);
493 EXPECT_FALSE(dv.Equals(copy.get())); 492 EXPECT_FALSE(dv.Equals(copy.get()));
494 } 493 }
495 494
496 TEST_F(ValuesTest, StaticEquals) { 495 TEST(ValuesTest, StaticEquals) {
497 scoped_ptr<Value> null1(Value::CreateNullValue()); 496 scoped_ptr<Value> null1(Value::CreateNullValue());
498 scoped_ptr<Value> null2(Value::CreateNullValue()); 497 scoped_ptr<Value> null2(Value::CreateNullValue());
499 EXPECT_TRUE(Value::Equals(null1.get(), null2.get())); 498 EXPECT_TRUE(Value::Equals(null1.get(), null2.get()));
500 EXPECT_TRUE(Value::Equals(NULL, NULL)); 499 EXPECT_TRUE(Value::Equals(NULL, NULL));
501 500
502 scoped_ptr<Value> i42(Value::CreateIntegerValue(42)); 501 scoped_ptr<Value> i42(Value::CreateIntegerValue(42));
503 scoped_ptr<Value> j42(Value::CreateIntegerValue(42)); 502 scoped_ptr<Value> j42(Value::CreateIntegerValue(42));
504 scoped_ptr<Value> i17(Value::CreateIntegerValue(17)); 503 scoped_ptr<Value> i17(Value::CreateIntegerValue(17));
505 EXPECT_TRUE(Value::Equals(i42.get(), i42.get())); 504 EXPECT_TRUE(Value::Equals(i42.get(), i42.get()));
506 EXPECT_TRUE(Value::Equals(j42.get(), i42.get())); 505 EXPECT_TRUE(Value::Equals(j42.get(), i42.get()));
507 EXPECT_TRUE(Value::Equals(i42.get(), j42.get())); 506 EXPECT_TRUE(Value::Equals(i42.get(), j42.get()));
508 EXPECT_FALSE(Value::Equals(i42.get(), i17.get())); 507 EXPECT_FALSE(Value::Equals(i42.get(), i17.get()));
509 EXPECT_FALSE(Value::Equals(i42.get(), NULL)); 508 EXPECT_FALSE(Value::Equals(i42.get(), NULL));
510 EXPECT_FALSE(Value::Equals(NULL, i42.get())); 509 EXPECT_FALSE(Value::Equals(NULL, i42.get()));
511 510
512 // NULL and Value::CreateNullValue() are intentionally different: We need 511 // NULL and Value::CreateNullValue() are intentionally different: We need
513 // support for NULL as a return value for "undefined" without caring for 512 // support for NULL as a return value for "undefined" without caring for
514 // ownership of the pointer. 513 // ownership of the pointer.
515 EXPECT_FALSE(Value::Equals(null1.get(), NULL)); 514 EXPECT_FALSE(Value::Equals(null1.get(), NULL));
516 EXPECT_FALSE(Value::Equals(NULL, null1.get())); 515 EXPECT_FALSE(Value::Equals(NULL, null1.get()));
517 } 516 }
518 517
519 TEST_F(ValuesTest, DeepCopyCovariantReturnTypes) { 518 TEST(ValuesTest, DeepCopyCovariantReturnTypes) {
520 DictionaryValue original_dict; 519 DictionaryValue original_dict;
521 Value* original_null = Value::CreateNullValue(); 520 Value* original_null = Value::CreateNullValue();
522 original_dict.Set("null", original_null); 521 original_dict.Set("null", original_null);
523 FundamentalValue* original_bool = Value::CreateBooleanValue(true); 522 FundamentalValue* original_bool = Value::CreateBooleanValue(true);
524 original_dict.Set("bool", original_bool); 523 original_dict.Set("bool", original_bool);
525 FundamentalValue* original_int = Value::CreateIntegerValue(42); 524 FundamentalValue* original_int = Value::CreateIntegerValue(42);
526 original_dict.Set("int", original_int); 525 original_dict.Set("int", original_int);
527 FundamentalValue* original_double = Value::CreateDoubleValue(3.14); 526 FundamentalValue* original_double = Value::CreateDoubleValue(3.14);
528 original_dict.Set("double", original_double); 527 original_dict.Set("double", original_double);
529 StringValue* original_string = Value::CreateStringValue("hello"); 528 StringValue* original_string = Value::CreateStringValue("hello");
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 EXPECT_TRUE(original_dict_value->Equals(copy_dict_value.get())); 564 EXPECT_TRUE(original_dict_value->Equals(copy_dict_value.get()));
566 EXPECT_TRUE(original_bool_value->Equals(copy_bool_value.get())); 565 EXPECT_TRUE(original_bool_value->Equals(copy_bool_value.get()));
567 EXPECT_TRUE(original_int_value->Equals(copy_int_value.get())); 566 EXPECT_TRUE(original_int_value->Equals(copy_int_value.get()));
568 EXPECT_TRUE(original_double_value->Equals(copy_double_value.get())); 567 EXPECT_TRUE(original_double_value->Equals(copy_double_value.get()));
569 EXPECT_TRUE(original_string_value->Equals(copy_string_value.get())); 568 EXPECT_TRUE(original_string_value->Equals(copy_string_value.get()));
570 EXPECT_TRUE(original_string16_value->Equals(copy_string16_value.get())); 569 EXPECT_TRUE(original_string16_value->Equals(copy_string16_value.get()));
571 EXPECT_TRUE(original_binary_value->Equals(copy_binary_value.get())); 570 EXPECT_TRUE(original_binary_value->Equals(copy_binary_value.get()));
572 EXPECT_TRUE(original_list_value->Equals(copy_list_value.get())); 571 EXPECT_TRUE(original_list_value->Equals(copy_list_value.get()));
573 } 572 }
574 573
575 TEST_F(ValuesTest, RemoveEmptyChildren) { 574 TEST(ValuesTest, RemoveEmptyChildren) {
576 scoped_ptr<DictionaryValue> root(new DictionaryValue); 575 scoped_ptr<DictionaryValue> root(new DictionaryValue);
577 // Remove empty lists and dictionaries. 576 // Remove empty lists and dictionaries.
578 root->Set("empty_dict", new DictionaryValue); 577 root->Set("empty_dict", new DictionaryValue);
579 root->Set("empty_list", new ListValue); 578 root->Set("empty_list", new ListValue);
580 root->SetWithoutPathExpansion("a.b.c.d.e", new DictionaryValue); 579 root->SetWithoutPathExpansion("a.b.c.d.e", new DictionaryValue);
581 root.reset(root->DeepCopyWithoutEmptyChildren()); 580 root.reset(root->DeepCopyWithoutEmptyChildren());
582 EXPECT_TRUE(root->empty()); 581 EXPECT_TRUE(root->empty());
583 582
584 // Make sure we don't prune too much. 583 // Make sure we don't prune too much.
585 root->SetBoolean("bool", true); 584 root->SetBoolean("bool", true);
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
640 inner2->Append(Value::CreateStringValue("hello")); 639 inner2->Append(Value::CreateStringValue("hello"));
641 root.reset(root->DeepCopyWithoutEmptyChildren()); 640 root.reset(root->DeepCopyWithoutEmptyChildren());
642 EXPECT_EQ(3U, root->size()); 641 EXPECT_EQ(3U, root->size());
643 EXPECT_TRUE(root->GetList("list_with_empty_children", &inner)); 642 EXPECT_TRUE(root->GetList("list_with_empty_children", &inner));
644 EXPECT_EQ(1U, inner->GetSize()); // Dictionary was pruned. 643 EXPECT_EQ(1U, inner->GetSize()); // Dictionary was pruned.
645 EXPECT_TRUE(inner->GetList(0, &inner2)); 644 EXPECT_TRUE(inner->GetList(0, &inner2));
646 EXPECT_EQ(1U, inner2->GetSize()); 645 EXPECT_EQ(1U, inner2->GetSize());
647 } 646 }
648 } 647 }
649 648
650 TEST_F(ValuesTest, MergeDictionary) { 649 TEST(ValuesTest, MergeDictionary) {
651 scoped_ptr<DictionaryValue> base(new DictionaryValue); 650 scoped_ptr<DictionaryValue> base(new DictionaryValue);
652 base->SetString("base_key", "base_key_value_base"); 651 base->SetString("base_key", "base_key_value_base");
653 base->SetString("collide_key", "collide_key_value_base"); 652 base->SetString("collide_key", "collide_key_value_base");
654 DictionaryValue* base_sub_dict = new DictionaryValue; 653 DictionaryValue* base_sub_dict = new DictionaryValue;
655 base_sub_dict->SetString("sub_base_key", "sub_base_key_value_base"); 654 base_sub_dict->SetString("sub_base_key", "sub_base_key_value_base");
656 base_sub_dict->SetString("sub_collide_key", "sub_collide_key_value_base"); 655 base_sub_dict->SetString("sub_collide_key", "sub_collide_key_value_base");
657 base->Set("sub_dict_key", base_sub_dict); 656 base->Set("sub_dict_key", base_sub_dict);
658 657
659 scoped_ptr<DictionaryValue> merge(new DictionaryValue); 658 scoped_ptr<DictionaryValue> merge(new DictionaryValue);
660 merge->SetString("merge_key", "merge_key_value_merge"); 659 merge->SetString("merge_key", "merge_key_value_merge");
(...skipping 23 matching lines...) Expand all
684 EXPECT_TRUE(res_sub_dict->GetString("sub_base_key", &sub_base_key_value)); 683 EXPECT_TRUE(res_sub_dict->GetString("sub_base_key", &sub_base_key_value));
685 EXPECT_EQ("sub_base_key_value_base", sub_base_key_value); // Preserved. 684 EXPECT_EQ("sub_base_key_value_base", sub_base_key_value); // Preserved.
686 std::string sub_collide_key_value; 685 std::string sub_collide_key_value;
687 EXPECT_TRUE(res_sub_dict->GetString("sub_collide_key", 686 EXPECT_TRUE(res_sub_dict->GetString("sub_collide_key",
688 &sub_collide_key_value)); 687 &sub_collide_key_value));
689 EXPECT_EQ("sub_collide_key_value_merge", sub_collide_key_value); // Replaced. 688 EXPECT_EQ("sub_collide_key_value_merge", sub_collide_key_value); // Replaced.
690 std::string sub_merge_key_value; 689 std::string sub_merge_key_value;
691 EXPECT_TRUE(res_sub_dict->GetString("sub_merge_key", &sub_merge_key_value)); 690 EXPECT_TRUE(res_sub_dict->GetString("sub_merge_key", &sub_merge_key_value));
692 EXPECT_EQ("sub_merge_key_value_merge", sub_merge_key_value); // Merged in. 691 EXPECT_EQ("sub_merge_key_value_merge", sub_merge_key_value); // Merged in.
693 } 692 }
693
694 } // namespace base
OLDNEW
« no previous file with comments | « base/file_descriptor_shuffle_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698