Chromium Code Reviews| Index: base/values_unittest.cc |
| diff --git a/base/values_unittest.cc b/base/values_unittest.cc |
| index e62b6e579b134f5bd92291b1b796618c689f239a..107dd64e69ba047acc599f5a4677a9615eab8494 100644 |
| --- a/base/values_unittest.cc |
| +++ b/base/values_unittest.cc |
| @@ -399,61 +399,20 @@ TEST(ValuesTest, StringValue) { |
| static_cast<const StringValue**>(NULL))); |
| } |
| -// This is a Value object that allows us to tell if it's been |
| -// properly deleted by modifying the value of external flag on destruction. |
| -class DeletionTestValue : public Value { |
| - public: |
| - explicit DeletionTestValue(bool* deletion_flag) : Value(Type::NONE) { |
| - Init(deletion_flag); // Separate function so that we can use ASSERT_* |
| - } |
| - |
| - void Init(bool* deletion_flag) { |
| - ASSERT_TRUE(deletion_flag); |
| - deletion_flag_ = deletion_flag; |
| - *deletion_flag_ = false; |
| - } |
| - |
| - ~DeletionTestValue() override { *deletion_flag_ = true; } |
| - |
| - private: |
| - bool* deletion_flag_; |
| -}; |
|
jdoerrie
2017/02/10 15:17:38
I had to get rid of this class since Value's const
jdoerrie
2017/02/10 18:45:44
The tests are currently failing, because there is
brettw
2017/02/11 00:24:04
I think doing so is OK.
jdoerrie
2017/02/14 17:06:56
Done.
|
| - |
| TEST(ValuesTest, ListDeletion) { |
| - bool deletion_flag = true; |
| - |
| - { |
| - ListValue list; |
| - list.Append(MakeUnique<DeletionTestValue>(&deletion_flag)); |
| - EXPECT_FALSE(deletion_flag); |
| - } |
| - EXPECT_TRUE(deletion_flag); |
| - |
| - { |
| - ListValue list; |
| - list.Append(MakeUnique<DeletionTestValue>(&deletion_flag)); |
| - EXPECT_FALSE(deletion_flag); |
| - list.Clear(); |
| - EXPECT_TRUE(deletion_flag); |
| - } |
| - |
| - { |
| - ListValue list; |
| - list.Append(MakeUnique<DeletionTestValue>(&deletion_flag)); |
| - EXPECT_FALSE(deletion_flag); |
| - EXPECT_TRUE(list.Set(0, Value::CreateNullValue())); |
| - EXPECT_TRUE(deletion_flag); |
| - } |
| + ListValue list; |
| + list.Append(MakeUnique<Value>()); |
| + EXPECT_FALSE(list.empty()); |
| + list.Clear(); |
| + EXPECT_TRUE(list.empty()); |
| } |
| TEST(ValuesTest, ListRemoval) { |
| - bool deletion_flag = true; |
| std::unique_ptr<Value> removed_item; |
| { |
| ListValue list; |
| - list.Append(MakeUnique<DeletionTestValue>(&deletion_flag)); |
| - EXPECT_FALSE(deletion_flag); |
| + list.Append(MakeUnique<Value>()); |
| EXPECT_EQ(1U, list.GetSize()); |
| EXPECT_FALSE(list.Remove(std::numeric_limits<size_t>::max(), |
| &removed_item)); |
| @@ -462,88 +421,55 @@ TEST(ValuesTest, ListRemoval) { |
| ASSERT_TRUE(removed_item); |
| EXPECT_EQ(0U, list.GetSize()); |
| } |
| - EXPECT_FALSE(deletion_flag); |
| removed_item.reset(); |
| - EXPECT_TRUE(deletion_flag); |
| { |
| ListValue list; |
| - list.Append(MakeUnique<DeletionTestValue>(&deletion_flag)); |
| - EXPECT_FALSE(deletion_flag); |
| + list.Append(MakeUnique<Value>()); |
| EXPECT_TRUE(list.Remove(0, NULL)); |
| - EXPECT_TRUE(deletion_flag); |
| EXPECT_EQ(0U, list.GetSize()); |
| } |
| { |
| ListValue list; |
| - std::unique_ptr<DeletionTestValue> value( |
| - new DeletionTestValue(&deletion_flag)); |
| - DeletionTestValue* original_value = value.get(); |
| + auto value = MakeUnique<Value>(); |
| + Value* original_value = value.get(); |
| list.Append(std::move(value)); |
| - EXPECT_FALSE(deletion_flag); |
| size_t index = 0; |
| list.Remove(*original_value, &index); |
| EXPECT_EQ(0U, index); |
| - EXPECT_TRUE(deletion_flag); |
| EXPECT_EQ(0U, list.GetSize()); |
| } |
| } |
| TEST(ValuesTest, DictionaryDeletion) { |
| std::string key = "test"; |
| - bool deletion_flag = true; |
| - |
| - { |
| - DictionaryValue dict; |
| - dict.Set(key, MakeUnique<DeletionTestValue>(&deletion_flag)); |
| - EXPECT_FALSE(deletion_flag); |
| - } |
| - EXPECT_TRUE(deletion_flag); |
| - |
| - { |
| - DictionaryValue dict; |
| - dict.Set(key, MakeUnique<DeletionTestValue>(&deletion_flag)); |
| - EXPECT_FALSE(deletion_flag); |
| - dict.Clear(); |
| - EXPECT_TRUE(deletion_flag); |
| - } |
| - |
| - { |
| - DictionaryValue dict; |
| - dict.Set(key, MakeUnique<DeletionTestValue>(&deletion_flag)); |
| - EXPECT_FALSE(deletion_flag); |
| - dict.Set(key, Value::CreateNullValue()); |
| - EXPECT_TRUE(deletion_flag); |
| - } |
| + DictionaryValue dict; |
| + dict.Set(key, MakeUnique<Value>()); |
| + EXPECT_FALSE(dict.empty()); |
| + dict.Clear(); |
| + EXPECT_TRUE(dict.empty()); |
| } |
| TEST(ValuesTest, DictionaryRemoval) { |
| std::string key = "test"; |
| - bool deletion_flag = true; |
| std::unique_ptr<Value> removed_item; |
| { |
| DictionaryValue dict; |
| - dict.Set(key, MakeUnique<DeletionTestValue>(&deletion_flag)); |
| - EXPECT_FALSE(deletion_flag); |
| + dict.Set(key, MakeUnique<Value>()); |
| EXPECT_TRUE(dict.HasKey(key)); |
| EXPECT_FALSE(dict.Remove("absent key", &removed_item)); |
| EXPECT_TRUE(dict.Remove(key, &removed_item)); |
| EXPECT_FALSE(dict.HasKey(key)); |
| ASSERT_TRUE(removed_item); |
| } |
| - EXPECT_FALSE(deletion_flag); |
| - removed_item.reset(); |
| - EXPECT_TRUE(deletion_flag); |
| { |
| DictionaryValue dict; |
| - dict.Set(key, MakeUnique<DeletionTestValue>(&deletion_flag)); |
| - EXPECT_FALSE(deletion_flag); |
| + dict.Set(key, MakeUnique<Value>()); |
| EXPECT_TRUE(dict.HasKey(key)); |
| EXPECT_TRUE(dict.Remove(key, NULL)); |
| - EXPECT_TRUE(deletion_flag); |
| EXPECT_FALSE(dict.HasKey(key)); |
| } |
| } |