Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/scoped_ptr.h" | 7 #include "base/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 490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 501 EXPECT_FALSE(dv.Equals(copy.get())); | 501 EXPECT_FALSE(dv.Equals(copy.get())); |
| 502 | 502 |
| 503 // Check if Equals detects differences in only the keys. | 503 // Check if Equals detects differences in only the keys. |
| 504 copy.reset(static_cast<DictionaryValue*>(dv.DeepCopy())); | 504 copy.reset(static_cast<DictionaryValue*>(dv.DeepCopy())); |
| 505 EXPECT_TRUE(dv.Equals(copy.get())); | 505 EXPECT_TRUE(dv.Equals(copy.get())); |
| 506 copy->Remove("a", NULL); | 506 copy->Remove("a", NULL); |
| 507 copy->SetBoolean("aa", false); | 507 copy->SetBoolean("aa", false); |
| 508 EXPECT_FALSE(dv.Equals(copy.get())); | 508 EXPECT_FALSE(dv.Equals(copy.get())); |
| 509 } | 509 } |
| 510 | 510 |
| 511 TEST_F(ValuesTest, StaticEquals) { | |
| 512 Value* null_ptr = NULL; | |
|
Mattias Nissler (ping if slow)
2010/12/01 10:36:36
Why have a var for this that even has more charact
battre (please use the other)
2010/12/01 17:44:38
Done.
| |
| 513 scoped_ptr<Value> null1(Value::CreateNullValue()); | |
| 514 scoped_ptr<Value> null2(Value::CreateNullValue()); | |
| 515 EXPECT_TRUE(Value::Equals(null1.get(), null2.get())); | |
| 516 EXPECT_TRUE(Value::Equals(null_ptr, null_ptr)); | |
| 517 | |
| 518 scoped_ptr<Value> i42(Value::CreateIntegerValue(42)); | |
| 519 scoped_ptr<Value> j42(Value::CreateIntegerValue(42)); | |
| 520 scoped_ptr<Value> i17(Value::CreateIntegerValue(17)); | |
| 521 EXPECT_TRUE(Value::Equals(i42.get(), i42.get())); | |
| 522 EXPECT_TRUE(Value::Equals(j42.get(), i42.get())); | |
| 523 EXPECT_TRUE(Value::Equals(i42.get(), j42.get())); | |
| 524 EXPECT_FALSE(Value::Equals(i42.get(), i17.get())); | |
| 525 EXPECT_FALSE(Value::Equals(i42.get(), null_ptr)); | |
| 526 EXPECT_FALSE(Value::Equals(null_ptr, i42.get())); | |
| 527 | |
| 528 // NULL and Value::CreateNullValue() are intentionally different: We need | |
| 529 // support for NULL as a return value for "undefined" without caring for | |
| 530 // ownership of the pointer. | |
| 531 EXPECT_FALSE(Value::Equals(null1.get(), null_ptr)); | |
| 532 EXPECT_FALSE(Value::Equals(null_ptr, null1.get())); | |
| 533 } | |
| 534 | |
| 511 TEST_F(ValuesTest, RemoveEmptyChildren) { | 535 TEST_F(ValuesTest, RemoveEmptyChildren) { |
| 512 scoped_ptr<DictionaryValue> root(new DictionaryValue); | 536 scoped_ptr<DictionaryValue> root(new DictionaryValue); |
| 513 // Remove empty lists and dictionaries. | 537 // Remove empty lists and dictionaries. |
| 514 root->Set("empty_dict", new DictionaryValue); | 538 root->Set("empty_dict", new DictionaryValue); |
| 515 root->Set("empty_list", new ListValue); | 539 root->Set("empty_list", new ListValue); |
| 516 root->SetWithoutPathExpansion("a.b.c.d.e", new DictionaryValue); | 540 root->SetWithoutPathExpansion("a.b.c.d.e", new DictionaryValue); |
| 517 root.reset(root->DeepCopyWithoutEmptyChildren()); | 541 root.reset(root->DeepCopyWithoutEmptyChildren()); |
| 518 EXPECT_TRUE(root->empty()); | 542 EXPECT_TRUE(root->empty()); |
| 519 | 543 |
| 520 // Make sure we don't prune too much. | 544 // Make sure we don't prune too much. |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 731 "s1", | 755 "s1", |
| 732 "s1.s2" | 756 "s1.s2" |
| 733 }; | 757 }; |
| 734 dict1.reset(new DictionaryValue()); | 758 dict1.reset(new DictionaryValue()); |
| 735 dict1->Set("s1.s2", new DictionaryValue()); | 759 dict1->Set("s1.s2", new DictionaryValue()); |
| 736 dict2.reset(new DictionaryValue()); | 760 dict2.reset(new DictionaryValue()); |
| 737 dict2->SetInteger("s1", 1); | 761 dict2->SetInteger("s1", 1); |
| 738 CompareDictionariesAndCheckResult(dict1.get(), dict2.get(), expected_paths8, | 762 CompareDictionariesAndCheckResult(dict1.get(), dict2.get(), expected_paths8, |
| 739 arraysize(expected_paths8)); | 763 arraysize(expected_paths8)); |
| 740 } | 764 } |
| OLD | NEW |