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

Side by Side Diff: base/values_unittest.cc

Issue 8701002: Value::GetAsDictionary (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Pacify clang Created 9 years 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/values.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"
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
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", &copy_null)); 374 ASSERT_TRUE(copy_dict->Get("null", &copy_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
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", &copy_value)); 442 ASSERT_TRUE(copy_dict->Get("list", &copy_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(&copy_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, &copy_list_element_0)); 452 ASSERT_TRUE(copy_list->Get(0, &copy_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(&copy_list_element_0_value)); 456 ASSERT_TRUE(copy_list_element_0->GetAsInteger(&copy_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, &copy_list_element_1)); 460 ASSERT_TRUE(copy_list->Get(1, &copy_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(&copy_list_element_1_value)); 464 ASSERT_TRUE(copy_list_element_1->GetAsInteger(&copy_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", &copy_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(&copy_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
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
OLDNEW
« no previous file with comments | « base/values.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698