OLD | NEW |
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" |
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
355 BinaryValue* original_binary = BinaryValue::Create(original_buffer, 42); | 355 BinaryValue* original_binary = BinaryValue::Create(original_buffer, 42); |
356 original_dict.Set("binary", original_binary); | 356 original_dict.Set("binary", original_binary); |
357 | 357 |
358 ListValue* original_list = new ListValue(); | 358 ListValue* original_list = new ListValue(); |
359 FundamentalValue* original_list_element_0 = Value::CreateIntegerValue(0); | 359 FundamentalValue* original_list_element_0 = Value::CreateIntegerValue(0); |
360 original_list->Append(original_list_element_0); | 360 original_list->Append(original_list_element_0); |
361 FundamentalValue* original_list_element_1 = Value::CreateIntegerValue(1); | 361 FundamentalValue* original_list_element_1 = Value::CreateIntegerValue(1); |
362 original_list->Append(original_list_element_1); | 362 original_list->Append(original_list_element_1); |
363 original_dict.Set("list", original_list); | 363 original_dict.Set("list", original_list); |
364 | 364 |
| 365 DictionaryValue* original_nested_dictionary = new DictionaryValue(); |
| 366 original_nested_dictionary->Set("key", Value::CreateStringValue("value")); |
| 367 original_dict.Set("dictionary", original_nested_dictionary); |
| 368 |
365 scoped_ptr<DictionaryValue> copy_dict(original_dict.DeepCopy()); | 369 scoped_ptr<DictionaryValue> copy_dict(original_dict.DeepCopy()); |
366 ASSERT_TRUE(copy_dict.get()); | 370 ASSERT_TRUE(copy_dict.get()); |
367 ASSERT_NE(copy_dict.get(), &original_dict); | 371 ASSERT_NE(copy_dict.get(), &original_dict); |
368 | 372 |
369 Value* copy_null = NULL; | 373 Value* copy_null = NULL; |
370 ASSERT_TRUE(copy_dict->Get("null", ©_null)); | 374 ASSERT_TRUE(copy_dict->Get("null", ©_null)); |
371 ASSERT_TRUE(copy_null); | 375 ASSERT_TRUE(copy_null); |
372 ASSERT_NE(copy_null, original_null); | 376 ASSERT_NE(copy_null, original_null); |
373 ASSERT_TRUE(copy_null->IsType(Value::TYPE_NULL)); | 377 ASSERT_TRUE(copy_null->IsType(Value::TYPE_NULL)); |
374 | 378 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
432 static_cast<BinaryValue*>(copy_binary)->GetSize()); | 436 static_cast<BinaryValue*>(copy_binary)->GetSize()); |
433 ASSERT_EQ(0, memcmp(original_binary->GetBuffer(), | 437 ASSERT_EQ(0, memcmp(original_binary->GetBuffer(), |
434 static_cast<BinaryValue*>(copy_binary)->GetBuffer(), | 438 static_cast<BinaryValue*>(copy_binary)->GetBuffer(), |
435 original_binary->GetSize())); | 439 original_binary->GetSize())); |
436 | 440 |
437 Value* copy_value = NULL; | 441 Value* copy_value = NULL; |
438 ASSERT_TRUE(copy_dict->Get("list", ©_value)); | 442 ASSERT_TRUE(copy_dict->Get("list", ©_value)); |
439 ASSERT_TRUE(copy_value); | 443 ASSERT_TRUE(copy_value); |
440 ASSERT_NE(copy_value, original_list); | 444 ASSERT_NE(copy_value, original_list); |
441 ASSERT_TRUE(copy_value->IsType(Value::TYPE_LIST)); | 445 ASSERT_TRUE(copy_value->IsType(Value::TYPE_LIST)); |
442 ListValue* copy_list = static_cast<ListValue*>(copy_value); | 446 ListValue* copy_list = NULL; |
| 447 ASSERT_TRUE(copy_value->GetAsList(©_list)); |
| 448 ASSERT_TRUE(copy_list); |
443 ASSERT_EQ(2U, copy_list->GetSize()); | 449 ASSERT_EQ(2U, copy_list->GetSize()); |
444 | 450 |
445 Value* copy_list_element_0; | 451 Value* copy_list_element_0; |
446 ASSERT_TRUE(copy_list->Get(0, ©_list_element_0)); | 452 ASSERT_TRUE(copy_list->Get(0, ©_list_element_0)); |
447 ASSERT_TRUE(copy_list_element_0); | 453 ASSERT_TRUE(copy_list_element_0); |
448 ASSERT_NE(copy_list_element_0, original_list_element_0); | 454 ASSERT_NE(copy_list_element_0, original_list_element_0); |
449 int copy_list_element_0_value; | 455 int copy_list_element_0_value; |
450 ASSERT_TRUE(copy_list_element_0->GetAsInteger(©_list_element_0_value)); | 456 ASSERT_TRUE(copy_list_element_0->GetAsInteger(©_list_element_0_value)); |
451 ASSERT_EQ(0, copy_list_element_0_value); | 457 ASSERT_EQ(0, copy_list_element_0_value); |
452 | 458 |
453 Value* copy_list_element_1; | 459 Value* copy_list_element_1; |
454 ASSERT_TRUE(copy_list->Get(1, ©_list_element_1)); | 460 ASSERT_TRUE(copy_list->Get(1, ©_list_element_1)); |
455 ASSERT_TRUE(copy_list_element_1); | 461 ASSERT_TRUE(copy_list_element_1); |
456 ASSERT_NE(copy_list_element_1, original_list_element_1); | 462 ASSERT_NE(copy_list_element_1, original_list_element_1); |
457 int copy_list_element_1_value; | 463 int copy_list_element_1_value; |
458 ASSERT_TRUE(copy_list_element_1->GetAsInteger(©_list_element_1_value)); | 464 ASSERT_TRUE(copy_list_element_1->GetAsInteger(©_list_element_1_value)); |
459 ASSERT_EQ(1, copy_list_element_1_value); | 465 ASSERT_EQ(1, copy_list_element_1_value); |
| 466 |
| 467 copy_value = NULL; |
| 468 ASSERT_TRUE(copy_dict->Get("dictionary", ©_value)); |
| 469 ASSERT_TRUE(copy_value); |
| 470 ASSERT_NE(copy_value, original_nested_dictionary); |
| 471 ASSERT_TRUE(copy_value->IsType(Value::TYPE_DICTIONARY)); |
| 472 DictionaryValue* copy_nested_dictionary = NULL; |
| 473 ASSERT_TRUE(copy_value->GetAsDictionary(©_nested_dictionary)); |
| 474 ASSERT_TRUE(copy_nested_dictionary); |
| 475 EXPECT_TRUE(copy_nested_dictionary->HasKey("key")); |
460 } | 476 } |
461 | 477 |
462 TEST(ValuesTest, Equals) { | 478 TEST(ValuesTest, Equals) { |
463 Value* null1 = Value::CreateNullValue(); | 479 Value* null1 = Value::CreateNullValue(); |
464 Value* null2 = Value::CreateNullValue(); | 480 Value* null2 = Value::CreateNullValue(); |
465 EXPECT_NE(null1, null2); | 481 EXPECT_NE(null1, null2); |
466 EXPECT_TRUE(null1->Equals(null2)); | 482 EXPECT_TRUE(null1->Equals(null2)); |
467 | 483 |
468 Value* boolean = Value::CreateBooleanValue(false); | 484 Value* boolean = Value::CreateBooleanValue(false); |
469 EXPECT_FALSE(null1->Equals(boolean)); | 485 EXPECT_FALSE(null1->Equals(boolean)); |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
733 seen2 = true; | 749 seen2 = true; |
734 } else { | 750 } else { |
735 ADD_FAILURE(); | 751 ADD_FAILURE(); |
736 } | 752 } |
737 } | 753 } |
738 EXPECT_TRUE(seen1); | 754 EXPECT_TRUE(seen1); |
739 EXPECT_TRUE(seen2); | 755 EXPECT_TRUE(seen2); |
740 } | 756 } |
741 | 757 |
742 } // namespace base | 758 } // namespace base |
OLD | NEW |