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

Side by Side Diff: base/values_unittest.cc

Issue 2539363004: Make base::Value::TYPE a scoped enum. (Closed)
Patch Set: Rebase Created 4 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
« no previous file with comments | « base/values.cc ('k') | cc/layers/layer_impl.cc » ('j') | 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 "base/values.h" 5 #include "base/values.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <limits> 9 #include <limits>
10 #include <memory> 10 #include <memory>
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 Value* narrow_value = binary.get(); 138 Value* narrow_value = binary.get();
139 const BinaryValue* narrow_binary = NULL; 139 const BinaryValue* narrow_binary = NULL;
140 ASSERT_TRUE(narrow_value->GetAsBinary(&narrow_binary)); 140 ASSERT_TRUE(narrow_value->GetAsBinary(&narrow_binary));
141 EXPECT_EQ(binary.get(), narrow_binary); 141 EXPECT_EQ(binary.get(), narrow_binary);
142 } 142 }
143 143
144 TEST(ValuesTest, StringValue) { 144 TEST(ValuesTest, StringValue) {
145 // Test overloaded StringValue constructor. 145 // Test overloaded StringValue constructor.
146 std::unique_ptr<Value> narrow_value(new StringValue("narrow")); 146 std::unique_ptr<Value> narrow_value(new StringValue("narrow"));
147 ASSERT_TRUE(narrow_value.get()); 147 ASSERT_TRUE(narrow_value.get());
148 ASSERT_TRUE(narrow_value->IsType(Value::TYPE_STRING)); 148 ASSERT_TRUE(narrow_value->IsType(Value::Type::STRING));
149 std::unique_ptr<Value> utf16_value(new StringValue(ASCIIToUTF16("utf16"))); 149 std::unique_ptr<Value> utf16_value(new StringValue(ASCIIToUTF16("utf16")));
150 ASSERT_TRUE(utf16_value.get()); 150 ASSERT_TRUE(utf16_value.get());
151 ASSERT_TRUE(utf16_value->IsType(Value::TYPE_STRING)); 151 ASSERT_TRUE(utf16_value->IsType(Value::Type::STRING));
152 152
153 // Test overloaded GetAsString. 153 // Test overloaded GetAsString.
154 std::string narrow = "http://google.com"; 154 std::string narrow = "http://google.com";
155 string16 utf16 = ASCIIToUTF16("http://google.com"); 155 string16 utf16 = ASCIIToUTF16("http://google.com");
156 const StringValue* string_value = NULL; 156 const StringValue* string_value = NULL;
157 ASSERT_TRUE(narrow_value->GetAsString(&narrow)); 157 ASSERT_TRUE(narrow_value->GetAsString(&narrow));
158 ASSERT_TRUE(narrow_value->GetAsString(&utf16)); 158 ASSERT_TRUE(narrow_value->GetAsString(&utf16));
159 ASSERT_TRUE(narrow_value->GetAsString(&string_value)); 159 ASSERT_TRUE(narrow_value->GetAsString(&string_value));
160 ASSERT_EQ(std::string("narrow"), narrow); 160 ASSERT_EQ(std::string("narrow"), narrow);
161 ASSERT_EQ(ASCIIToUTF16("narrow"), utf16); 161 ASSERT_EQ(ASCIIToUTF16("narrow"), utf16);
(...skipping 10 matching lines...) Expand all
172 ASSERT_TRUE(narrow_value->GetAsString(static_cast<string16*>(NULL))); 172 ASSERT_TRUE(narrow_value->GetAsString(static_cast<string16*>(NULL)));
173 ASSERT_TRUE(narrow_value->GetAsString(static_cast<std::string*>(NULL))); 173 ASSERT_TRUE(narrow_value->GetAsString(static_cast<std::string*>(NULL)));
174 ASSERT_TRUE(narrow_value->GetAsString( 174 ASSERT_TRUE(narrow_value->GetAsString(
175 static_cast<const StringValue**>(NULL))); 175 static_cast<const StringValue**>(NULL)));
176 } 176 }
177 177
178 // This is a Value object that allows us to tell if it's been 178 // This is a Value object that allows us to tell if it's been
179 // properly deleted by modifying the value of external flag on destruction. 179 // properly deleted by modifying the value of external flag on destruction.
180 class DeletionTestValue : public Value { 180 class DeletionTestValue : public Value {
181 public: 181 public:
182 explicit DeletionTestValue(bool* deletion_flag) : Value(TYPE_NULL) { 182 explicit DeletionTestValue(bool* deletion_flag) : Value(Type::NONE) {
183 Init(deletion_flag); // Separate function so that we can use ASSERT_* 183 Init(deletion_flag); // Separate function so that we can use ASSERT_*
184 } 184 }
185 185
186 void Init(bool* deletion_flag) { 186 void Init(bool* deletion_flag) {
187 ASSERT_TRUE(deletion_flag); 187 ASSERT_TRUE(deletion_flag);
188 deletion_flag_ = deletion_flag; 188 deletion_flag_ = deletion_flag;
189 *deletion_flag_ = false; 189 *deletion_flag_ = false;
190 } 190 }
191 191
192 ~DeletionTestValue() override { *deletion_flag_ = true; } 192 ~DeletionTestValue() override { *deletion_flag_ = true; }
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 DictionaryValue* value2; 336 DictionaryValue* value2;
337 ASSERT_TRUE(dict.GetDictionaryWithoutPathExpansion("this", &value2)); 337 ASSERT_TRUE(dict.GetDictionaryWithoutPathExpansion("this", &value2));
338 EXPECT_EQ(value1, value2); 338 EXPECT_EQ(value1, value2);
339 EXPECT_EQ(1U, value2->size()); 339 EXPECT_EQ(1U, value2->size());
340 340
341 EXPECT_TRUE(dict.HasKey("this.isnt.expanded")); 341 EXPECT_TRUE(dict.HasKey("this.isnt.expanded"));
342 Value* value3; 342 Value* value3;
343 EXPECT_FALSE(dict.Get("this.isnt.expanded", &value3)); 343 EXPECT_FALSE(dict.Get("this.isnt.expanded", &value3));
344 Value* value4; 344 Value* value4;
345 ASSERT_TRUE(dict.GetWithoutPathExpansion("this.isnt.expanded", &value4)); 345 ASSERT_TRUE(dict.GetWithoutPathExpansion("this.isnt.expanded", &value4));
346 EXPECT_EQ(Value::TYPE_NULL, value4->GetType()); 346 EXPECT_EQ(Value::Type::NONE, value4->GetType());
347 } 347 }
348 348
349 // Tests the deprecated version of SetWithoutPathExpansion. 349 // Tests the deprecated version of SetWithoutPathExpansion.
350 // TODO(estade): remove. 350 // TODO(estade): remove.
351 TEST(ValuesTest, DictionaryWithoutPathExpansionDeprecated) { 351 TEST(ValuesTest, DictionaryWithoutPathExpansionDeprecated) {
352 DictionaryValue dict; 352 DictionaryValue dict;
353 dict.Set("this.is.expanded", Value::CreateNullValue()); 353 dict.Set("this.is.expanded", Value::CreateNullValue());
354 dict.SetWithoutPathExpansion("this.isnt.expanded", Value::CreateNullValue()); 354 dict.SetWithoutPathExpansion("this.isnt.expanded", Value::CreateNullValue());
355 355
356 EXPECT_FALSE(dict.HasKey("this.is.expanded")); 356 EXPECT_FALSE(dict.HasKey("this.is.expanded"));
357 EXPECT_TRUE(dict.HasKey("this")); 357 EXPECT_TRUE(dict.HasKey("this"));
358 Value* value1; 358 Value* value1;
359 EXPECT_TRUE(dict.Get("this", &value1)); 359 EXPECT_TRUE(dict.Get("this", &value1));
360 DictionaryValue* value2; 360 DictionaryValue* value2;
361 ASSERT_TRUE(dict.GetDictionaryWithoutPathExpansion("this", &value2)); 361 ASSERT_TRUE(dict.GetDictionaryWithoutPathExpansion("this", &value2));
362 EXPECT_EQ(value1, value2); 362 EXPECT_EQ(value1, value2);
363 EXPECT_EQ(1U, value2->size()); 363 EXPECT_EQ(1U, value2->size());
364 364
365 EXPECT_TRUE(dict.HasKey("this.isnt.expanded")); 365 EXPECT_TRUE(dict.HasKey("this.isnt.expanded"));
366 Value* value3; 366 Value* value3;
367 EXPECT_FALSE(dict.Get("this.isnt.expanded", &value3)); 367 EXPECT_FALSE(dict.Get("this.isnt.expanded", &value3));
368 Value* value4; 368 Value* value4;
369 ASSERT_TRUE(dict.GetWithoutPathExpansion("this.isnt.expanded", &value4)); 369 ASSERT_TRUE(dict.GetWithoutPathExpansion("this.isnt.expanded", &value4));
370 EXPECT_EQ(Value::TYPE_NULL, value4->GetType()); 370 EXPECT_EQ(Value::Type::NONE, value4->GetType());
371 } 371 }
372 372
373 TEST(ValuesTest, DictionaryRemovePath) { 373 TEST(ValuesTest, DictionaryRemovePath) {
374 DictionaryValue dict; 374 DictionaryValue dict;
375 dict.SetInteger("a.long.way.down", 1); 375 dict.SetInteger("a.long.way.down", 1);
376 dict.SetBoolean("a.long.key.path", true); 376 dict.SetBoolean("a.long.key.path", true);
377 377
378 std::unique_ptr<Value> removed_item; 378 std::unique_ptr<Value> removed_item;
379 EXPECT_TRUE(dict.RemovePath("a.long.way.down", &removed_item)); 379 EXPECT_TRUE(dict.RemovePath("a.long.way.down", &removed_item));
380 ASSERT_TRUE(removed_item); 380 ASSERT_TRUE(removed_item);
381 EXPECT_TRUE(removed_item->IsType(base::Value::TYPE_INTEGER)); 381 EXPECT_TRUE(removed_item->IsType(base::Value::Type::INTEGER));
382 EXPECT_FALSE(dict.HasKey("a.long.way.down")); 382 EXPECT_FALSE(dict.HasKey("a.long.way.down"));
383 EXPECT_FALSE(dict.HasKey("a.long.way")); 383 EXPECT_FALSE(dict.HasKey("a.long.way"));
384 EXPECT_TRUE(dict.Get("a.long.key.path", NULL)); 384 EXPECT_TRUE(dict.Get("a.long.key.path", NULL));
385 385
386 removed_item.reset(); 386 removed_item.reset();
387 EXPECT_FALSE(dict.RemovePath("a.long.way.down", &removed_item)); 387 EXPECT_FALSE(dict.RemovePath("a.long.way.down", &removed_item));
388 EXPECT_FALSE(removed_item); 388 EXPECT_FALSE(removed_item);
389 EXPECT_TRUE(dict.Get("a.long.key.path", NULL)); 389 EXPECT_TRUE(dict.Get("a.long.key.path", NULL));
390 390
391 removed_item.reset(); 391 removed_item.reset();
392 EXPECT_TRUE(dict.RemovePath("a.long.key.path", &removed_item)); 392 EXPECT_TRUE(dict.RemovePath("a.long.key.path", &removed_item));
393 ASSERT_TRUE(removed_item); 393 ASSERT_TRUE(removed_item);
394 EXPECT_TRUE(removed_item->IsType(base::Value::TYPE_BOOLEAN)); 394 EXPECT_TRUE(removed_item->IsType(base::Value::Type::BOOLEAN));
395 EXPECT_TRUE(dict.empty()); 395 EXPECT_TRUE(dict.empty());
396 } 396 }
397 397
398 TEST(ValuesTest, DeepCopy) { 398 TEST(ValuesTest, DeepCopy) {
399 DictionaryValue original_dict; 399 DictionaryValue original_dict;
400 std::unique_ptr<Value> scoped_null = Value::CreateNullValue(); 400 std::unique_ptr<Value> scoped_null = Value::CreateNullValue();
401 Value* original_null = scoped_null.get(); 401 Value* original_null = scoped_null.get();
402 original_dict.Set("null", std::move(scoped_null)); 402 original_dict.Set("null", std::move(scoped_null));
403 std::unique_ptr<FundamentalValue> scoped_bool(new FundamentalValue(true)); 403 std::unique_ptr<FundamentalValue> scoped_bool(new FundamentalValue(true));
404 FundamentalValue* original_bool = scoped_bool.get(); 404 FundamentalValue* original_bool = scoped_bool.get();
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
443 original_dict.Set("dictionary", std::move(scoped_nested_dictionary)); 443 original_dict.Set("dictionary", std::move(scoped_nested_dictionary));
444 444
445 std::unique_ptr<DictionaryValue> copy_dict = original_dict.CreateDeepCopy(); 445 std::unique_ptr<DictionaryValue> copy_dict = original_dict.CreateDeepCopy();
446 ASSERT_TRUE(copy_dict.get()); 446 ASSERT_TRUE(copy_dict.get());
447 ASSERT_NE(copy_dict.get(), &original_dict); 447 ASSERT_NE(copy_dict.get(), &original_dict);
448 448
449 Value* copy_null = NULL; 449 Value* copy_null = NULL;
450 ASSERT_TRUE(copy_dict->Get("null", &copy_null)); 450 ASSERT_TRUE(copy_dict->Get("null", &copy_null));
451 ASSERT_TRUE(copy_null); 451 ASSERT_TRUE(copy_null);
452 ASSERT_NE(copy_null, original_null); 452 ASSERT_NE(copy_null, original_null);
453 ASSERT_TRUE(copy_null->IsType(Value::TYPE_NULL)); 453 ASSERT_TRUE(copy_null->IsType(Value::Type::NONE));
454 454
455 Value* copy_bool = NULL; 455 Value* copy_bool = NULL;
456 ASSERT_TRUE(copy_dict->Get("bool", &copy_bool)); 456 ASSERT_TRUE(copy_dict->Get("bool", &copy_bool));
457 ASSERT_TRUE(copy_bool); 457 ASSERT_TRUE(copy_bool);
458 ASSERT_NE(copy_bool, original_bool); 458 ASSERT_NE(copy_bool, original_bool);
459 ASSERT_TRUE(copy_bool->IsType(Value::TYPE_BOOLEAN)); 459 ASSERT_TRUE(copy_bool->IsType(Value::Type::BOOLEAN));
460 bool copy_bool_value = false; 460 bool copy_bool_value = false;
461 ASSERT_TRUE(copy_bool->GetAsBoolean(&copy_bool_value)); 461 ASSERT_TRUE(copy_bool->GetAsBoolean(&copy_bool_value));
462 ASSERT_TRUE(copy_bool_value); 462 ASSERT_TRUE(copy_bool_value);
463 463
464 Value* copy_int = NULL; 464 Value* copy_int = NULL;
465 ASSERT_TRUE(copy_dict->Get("int", &copy_int)); 465 ASSERT_TRUE(copy_dict->Get("int", &copy_int));
466 ASSERT_TRUE(copy_int); 466 ASSERT_TRUE(copy_int);
467 ASSERT_NE(copy_int, original_int); 467 ASSERT_NE(copy_int, original_int);
468 ASSERT_TRUE(copy_int->IsType(Value::TYPE_INTEGER)); 468 ASSERT_TRUE(copy_int->IsType(Value::Type::INTEGER));
469 int copy_int_value = 0; 469 int copy_int_value = 0;
470 ASSERT_TRUE(copy_int->GetAsInteger(&copy_int_value)); 470 ASSERT_TRUE(copy_int->GetAsInteger(&copy_int_value));
471 ASSERT_EQ(42, copy_int_value); 471 ASSERT_EQ(42, copy_int_value);
472 472
473 Value* copy_double = NULL; 473 Value* copy_double = NULL;
474 ASSERT_TRUE(copy_dict->Get("double", &copy_double)); 474 ASSERT_TRUE(copy_dict->Get("double", &copy_double));
475 ASSERT_TRUE(copy_double); 475 ASSERT_TRUE(copy_double);
476 ASSERT_NE(copy_double, original_double); 476 ASSERT_NE(copy_double, original_double);
477 ASSERT_TRUE(copy_double->IsType(Value::TYPE_DOUBLE)); 477 ASSERT_TRUE(copy_double->IsType(Value::Type::DOUBLE));
478 double copy_double_value = 0; 478 double copy_double_value = 0;
479 ASSERT_TRUE(copy_double->GetAsDouble(&copy_double_value)); 479 ASSERT_TRUE(copy_double->GetAsDouble(&copy_double_value));
480 ASSERT_EQ(3.14, copy_double_value); 480 ASSERT_EQ(3.14, copy_double_value);
481 481
482 Value* copy_string = NULL; 482 Value* copy_string = NULL;
483 ASSERT_TRUE(copy_dict->Get("string", &copy_string)); 483 ASSERT_TRUE(copy_dict->Get("string", &copy_string));
484 ASSERT_TRUE(copy_string); 484 ASSERT_TRUE(copy_string);
485 ASSERT_NE(copy_string, original_string); 485 ASSERT_NE(copy_string, original_string);
486 ASSERT_TRUE(copy_string->IsType(Value::TYPE_STRING)); 486 ASSERT_TRUE(copy_string->IsType(Value::Type::STRING));
487 std::string copy_string_value; 487 std::string copy_string_value;
488 string16 copy_string16_value; 488 string16 copy_string16_value;
489 ASSERT_TRUE(copy_string->GetAsString(&copy_string_value)); 489 ASSERT_TRUE(copy_string->GetAsString(&copy_string_value));
490 ASSERT_TRUE(copy_string->GetAsString(&copy_string16_value)); 490 ASSERT_TRUE(copy_string->GetAsString(&copy_string16_value));
491 ASSERT_EQ(std::string("hello"), copy_string_value); 491 ASSERT_EQ(std::string("hello"), copy_string_value);
492 ASSERT_EQ(ASCIIToUTF16("hello"), copy_string16_value); 492 ASSERT_EQ(ASCIIToUTF16("hello"), copy_string16_value);
493 493
494 Value* copy_string16 = NULL; 494 Value* copy_string16 = NULL;
495 ASSERT_TRUE(copy_dict->Get("string16", &copy_string16)); 495 ASSERT_TRUE(copy_dict->Get("string16", &copy_string16));
496 ASSERT_TRUE(copy_string16); 496 ASSERT_TRUE(copy_string16);
497 ASSERT_NE(copy_string16, original_string16); 497 ASSERT_NE(copy_string16, original_string16);
498 ASSERT_TRUE(copy_string16->IsType(Value::TYPE_STRING)); 498 ASSERT_TRUE(copy_string16->IsType(Value::Type::STRING));
499 ASSERT_TRUE(copy_string16->GetAsString(&copy_string_value)); 499 ASSERT_TRUE(copy_string16->GetAsString(&copy_string_value));
500 ASSERT_TRUE(copy_string16->GetAsString(&copy_string16_value)); 500 ASSERT_TRUE(copy_string16->GetAsString(&copy_string16_value));
501 ASSERT_EQ(std::string("hello16"), copy_string_value); 501 ASSERT_EQ(std::string("hello16"), copy_string_value);
502 ASSERT_EQ(ASCIIToUTF16("hello16"), copy_string16_value); 502 ASSERT_EQ(ASCIIToUTF16("hello16"), copy_string16_value);
503 503
504 Value* copy_binary = NULL; 504 Value* copy_binary = NULL;
505 ASSERT_TRUE(copy_dict->Get("binary", &copy_binary)); 505 ASSERT_TRUE(copy_dict->Get("binary", &copy_binary));
506 ASSERT_TRUE(copy_binary); 506 ASSERT_TRUE(copy_binary);
507 ASSERT_NE(copy_binary, original_binary); 507 ASSERT_NE(copy_binary, original_binary);
508 ASSERT_TRUE(copy_binary->IsType(Value::TYPE_BINARY)); 508 ASSERT_TRUE(copy_binary->IsType(Value::Type::BINARY));
509 ASSERT_NE(original_binary->GetBuffer(), 509 ASSERT_NE(original_binary->GetBuffer(),
510 static_cast<BinaryValue*>(copy_binary)->GetBuffer()); 510 static_cast<BinaryValue*>(copy_binary)->GetBuffer());
511 ASSERT_EQ(original_binary->GetSize(), 511 ASSERT_EQ(original_binary->GetSize(),
512 static_cast<BinaryValue*>(copy_binary)->GetSize()); 512 static_cast<BinaryValue*>(copy_binary)->GetSize());
513 ASSERT_EQ(0, memcmp(original_binary->GetBuffer(), 513 ASSERT_EQ(0, memcmp(original_binary->GetBuffer(),
514 static_cast<BinaryValue*>(copy_binary)->GetBuffer(), 514 static_cast<BinaryValue*>(copy_binary)->GetBuffer(),
515 original_binary->GetSize())); 515 original_binary->GetSize()));
516 516
517 Value* copy_value = NULL; 517 Value* copy_value = NULL;
518 ASSERT_TRUE(copy_dict->Get("list", &copy_value)); 518 ASSERT_TRUE(copy_dict->Get("list", &copy_value));
519 ASSERT_TRUE(copy_value); 519 ASSERT_TRUE(copy_value);
520 ASSERT_NE(copy_value, original_list); 520 ASSERT_NE(copy_value, original_list);
521 ASSERT_TRUE(copy_value->IsType(Value::TYPE_LIST)); 521 ASSERT_TRUE(copy_value->IsType(Value::Type::LIST));
522 ListValue* copy_list = NULL; 522 ListValue* copy_list = NULL;
523 ASSERT_TRUE(copy_value->GetAsList(&copy_list)); 523 ASSERT_TRUE(copy_value->GetAsList(&copy_list));
524 ASSERT_TRUE(copy_list); 524 ASSERT_TRUE(copy_list);
525 ASSERT_EQ(2U, copy_list->GetSize()); 525 ASSERT_EQ(2U, copy_list->GetSize());
526 526
527 Value* copy_list_element_0; 527 Value* copy_list_element_0;
528 ASSERT_TRUE(copy_list->Get(0, &copy_list_element_0)); 528 ASSERT_TRUE(copy_list->Get(0, &copy_list_element_0));
529 ASSERT_TRUE(copy_list_element_0); 529 ASSERT_TRUE(copy_list_element_0);
530 ASSERT_NE(copy_list_element_0, original_list_element_0); 530 ASSERT_NE(copy_list_element_0, original_list_element_0);
531 int copy_list_element_0_value; 531 int copy_list_element_0_value;
532 ASSERT_TRUE(copy_list_element_0->GetAsInteger(&copy_list_element_0_value)); 532 ASSERT_TRUE(copy_list_element_0->GetAsInteger(&copy_list_element_0_value));
533 ASSERT_EQ(0, copy_list_element_0_value); 533 ASSERT_EQ(0, copy_list_element_0_value);
534 534
535 Value* copy_list_element_1; 535 Value* copy_list_element_1;
536 ASSERT_TRUE(copy_list->Get(1, &copy_list_element_1)); 536 ASSERT_TRUE(copy_list->Get(1, &copy_list_element_1));
537 ASSERT_TRUE(copy_list_element_1); 537 ASSERT_TRUE(copy_list_element_1);
538 ASSERT_NE(copy_list_element_1, original_list_element_1); 538 ASSERT_NE(copy_list_element_1, original_list_element_1);
539 int copy_list_element_1_value; 539 int copy_list_element_1_value;
540 ASSERT_TRUE(copy_list_element_1->GetAsInteger(&copy_list_element_1_value)); 540 ASSERT_TRUE(copy_list_element_1->GetAsInteger(&copy_list_element_1_value));
541 ASSERT_EQ(1, copy_list_element_1_value); 541 ASSERT_EQ(1, copy_list_element_1_value);
542 542
543 copy_value = NULL; 543 copy_value = NULL;
544 ASSERT_TRUE(copy_dict->Get("dictionary", &copy_value)); 544 ASSERT_TRUE(copy_dict->Get("dictionary", &copy_value));
545 ASSERT_TRUE(copy_value); 545 ASSERT_TRUE(copy_value);
546 ASSERT_NE(copy_value, original_nested_dictionary); 546 ASSERT_NE(copy_value, original_nested_dictionary);
547 ASSERT_TRUE(copy_value->IsType(Value::TYPE_DICTIONARY)); 547 ASSERT_TRUE(copy_value->IsType(Value::Type::DICTIONARY));
548 DictionaryValue* copy_nested_dictionary = NULL; 548 DictionaryValue* copy_nested_dictionary = NULL;
549 ASSERT_TRUE(copy_value->GetAsDictionary(&copy_nested_dictionary)); 549 ASSERT_TRUE(copy_value->GetAsDictionary(&copy_nested_dictionary));
550 ASSERT_TRUE(copy_nested_dictionary); 550 ASSERT_TRUE(copy_nested_dictionary);
551 EXPECT_TRUE(copy_nested_dictionary->HasKey("key")); 551 EXPECT_TRUE(copy_nested_dictionary->HasKey("key"));
552 } 552 }
553 553
554 TEST(ValuesTest, Equals) { 554 TEST(ValuesTest, Equals) {
555 std::unique_ptr<Value> null1(Value::CreateNullValue()); 555 std::unique_ptr<Value> null1(Value::CreateNullValue());
556 std::unique_ptr<Value> null2(Value::CreateNullValue()); 556 std::unique_ptr<Value> null2(Value::CreateNullValue());
557 EXPECT_NE(null1.get(), null2.get()); 557 EXPECT_NE(null1.get(), null2.get());
(...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after
1147 EXPECT_FALSE(main_list.GetList(1, NULL)); 1147 EXPECT_FALSE(main_list.GetList(1, NULL));
1148 EXPECT_FALSE(main_list.GetList(2, NULL)); 1148 EXPECT_FALSE(main_list.GetList(2, NULL));
1149 EXPECT_FALSE(main_list.GetList(3, NULL)); 1149 EXPECT_FALSE(main_list.GetList(3, NULL));
1150 EXPECT_FALSE(main_list.GetList(4, NULL)); 1150 EXPECT_FALSE(main_list.GetList(4, NULL));
1151 EXPECT_FALSE(main_list.GetList(5, NULL)); 1151 EXPECT_FALSE(main_list.GetList(5, NULL));
1152 EXPECT_TRUE(main_list.GetList(6, NULL)); 1152 EXPECT_TRUE(main_list.GetList(6, NULL));
1153 EXPECT_FALSE(main_list.GetList(7, NULL)); 1153 EXPECT_FALSE(main_list.GetList(7, NULL));
1154 } 1154 }
1155 1155
1156 } // namespace base 1156 } // namespace base
OLDNEW
« no previous file with comments | « base/values.cc ('k') | cc/layers/layer_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698