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