| 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_;
|
| -};
|
| -
|
| 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));
|
| }
|
| }
|
|
|