| Index: base/memory/scoped_vector_unittest.cc
|
| diff --git a/base/memory/scoped_vector_unittest.cc b/base/memory/scoped_vector_unittest.cc
|
| index 6eefbffba6f1fa85cb016643f202b4ad6db5aeee..a91776afe92a97a66b02b300dca9112966232af1 100644
|
| --- a/base/memory/scoped_vector_unittest.cc
|
| +++ b/base/memory/scoped_vector_unittest.cc
|
| @@ -93,6 +93,11 @@ class LifeCycleWatcher : public LifeCycleObject::Observer {
|
| return new LifeCycleObject(this);
|
| }
|
|
|
| + // Returns true iff |object| is the same object that this watcher is tracking.
|
| + bool IsWatching(LifeCycleObject* object) const {
|
| + return object == constructed_life_cycle_object_.get();
|
| + }
|
| +
|
| private:
|
| LifeCycleState life_cycle_state_;
|
| scoped_ptr<LifeCycleObject> constructed_life_cycle_object_;
|
| @@ -115,6 +120,7 @@ TEST(ScopedVectorTest, Clear) {
|
| ScopedVector<LifeCycleObject> scoped_vector;
|
| scoped_vector.push_back(watcher.NewLifeCycleObject());
|
| EXPECT_EQ(LC_CONSTRUCTED, watcher.life_cycle_state());
|
| + EXPECT_TRUE(watcher.IsWatching(scoped_vector.back()));
|
| scoped_vector.clear();
|
| EXPECT_EQ(LC_DESTROYED, watcher.life_cycle_state());
|
| EXPECT_TRUE(scoped_vector.empty());
|
| @@ -126,6 +132,7 @@ TEST(ScopedVectorTest, WeakClear) {
|
| ScopedVector<LifeCycleObject> scoped_vector;
|
| scoped_vector.push_back(watcher.NewLifeCycleObject());
|
| EXPECT_EQ(LC_CONSTRUCTED, watcher.life_cycle_state());
|
| + EXPECT_TRUE(watcher.IsWatching(scoped_vector.back()));
|
| scoped_vector.weak_clear();
|
| EXPECT_EQ(LC_CONSTRUCTED, watcher.life_cycle_state());
|
| EXPECT_TRUE(scoped_vector.empty());
|
| @@ -141,16 +148,21 @@ TEST(ScopedVectorTest, ResizeShrink) {
|
| scoped_vector.push_back(first_watcher.NewLifeCycleObject());
|
| EXPECT_EQ(LC_CONSTRUCTED, first_watcher.life_cycle_state());
|
| EXPECT_EQ(LC_INITIAL, second_watcher.life_cycle_state());
|
| + EXPECT_TRUE(first_watcher.IsWatching(scoped_vector[0]));
|
| + EXPECT_FALSE(second_watcher.IsWatching(scoped_vector[0]));
|
|
|
| scoped_vector.push_back(second_watcher.NewLifeCycleObject());
|
| EXPECT_EQ(LC_CONSTRUCTED, first_watcher.life_cycle_state());
|
| EXPECT_EQ(LC_CONSTRUCTED, second_watcher.life_cycle_state());
|
| + EXPECT_FALSE(first_watcher.IsWatching(scoped_vector[1]));
|
| + EXPECT_TRUE(second_watcher.IsWatching(scoped_vector[1]));
|
|
|
| - // Test that shrinking a vector deletes elements in the dissapearing range.
|
| + // Test that shrinking a vector deletes elements in the disappearing range.
|
| scoped_vector.resize(1);
|
| EXPECT_EQ(LC_CONSTRUCTED, first_watcher.life_cycle_state());
|
| EXPECT_EQ(LC_DESTROYED, second_watcher.life_cycle_state());
|
| EXPECT_EQ(1u, scoped_vector.size());
|
| + EXPECT_TRUE(first_watcher.IsWatching(scoped_vector[0]));
|
| }
|
|
|
| TEST(ScopedVectorTest, ResizeGrow) {
|
| @@ -159,10 +171,16 @@ TEST(ScopedVectorTest, ResizeGrow) {
|
| ScopedVector<LifeCycleObject> scoped_vector;
|
| scoped_vector.push_back(watcher.NewLifeCycleObject());
|
| EXPECT_EQ(LC_CONSTRUCTED, watcher.life_cycle_state());
|
| + EXPECT_TRUE(watcher.IsWatching(scoped_vector.back()));
|
|
|
| scoped_vector.resize(5);
|
| EXPECT_EQ(LC_CONSTRUCTED, watcher.life_cycle_state());
|
| - EXPECT_EQ(5u, scoped_vector.size());
|
| + ASSERT_EQ(5u, scoped_vector.size());
|
| + EXPECT_TRUE(watcher.IsWatching(scoped_vector[0]));
|
| + EXPECT_FALSE(watcher.IsWatching(scoped_vector[1]));
|
| + EXPECT_FALSE(watcher.IsWatching(scoped_vector[2]));
|
| + EXPECT_FALSE(watcher.IsWatching(scoped_vector[3]));
|
| + EXPECT_FALSE(watcher.IsWatching(scoped_vector[4]));
|
| }
|
|
|
| TEST(ScopedVectorTest, Scope) {
|
| @@ -172,6 +190,7 @@ TEST(ScopedVectorTest, Scope) {
|
| ScopedVector<LifeCycleObject> scoped_vector;
|
| scoped_vector.push_back(watcher.NewLifeCycleObject());
|
| EXPECT_EQ(LC_CONSTRUCTED, watcher.life_cycle_state());
|
| + EXPECT_TRUE(watcher.IsWatching(scoped_vector.back()));
|
| }
|
| EXPECT_EQ(LC_DESTROYED, watcher.life_cycle_state());
|
| }
|
| @@ -183,10 +202,12 @@ TEST(ScopedVectorTest, MoveConstruct) {
|
| ScopedVector<LifeCycleObject> scoped_vector;
|
| scoped_vector.push_back(watcher.NewLifeCycleObject());
|
| EXPECT_FALSE(scoped_vector.empty());
|
| + EXPECT_TRUE(watcher.IsWatching(scoped_vector.back()));
|
|
|
| ScopedVector<LifeCycleObject> scoped_vector_copy(scoped_vector.Pass());
|
| EXPECT_TRUE(scoped_vector.empty());
|
| EXPECT_FALSE(scoped_vector_copy.empty());
|
| + EXPECT_TRUE(watcher.IsWatching(scoped_vector_copy.back()));
|
|
|
| EXPECT_EQ(LC_CONSTRUCTED, watcher.life_cycle_state());
|
| }
|
| @@ -201,10 +222,12 @@ TEST(ScopedVectorTest, MoveAssign) {
|
| scoped_vector.push_back(watcher.NewLifeCycleObject());
|
| ScopedVector<LifeCycleObject> scoped_vector_assign;
|
| EXPECT_FALSE(scoped_vector.empty());
|
| + EXPECT_TRUE(watcher.IsWatching(scoped_vector.back()));
|
|
|
| scoped_vector_assign = scoped_vector.Pass();
|
| EXPECT_TRUE(scoped_vector.empty());
|
| EXPECT_FALSE(scoped_vector_assign.empty());
|
| + EXPECT_TRUE(watcher.IsWatching(scoped_vector_assign.back()));
|
|
|
| EXPECT_EQ(LC_CONSTRUCTED, watcher.life_cycle_state());
|
| }
|
|
|