Chromium Code Reviews| Index: ui/base/models/list_model_unittest.cc |
| diff --git a/ui/base/models/list_model_unittest.cc b/ui/base/models/list_model_unittest.cc |
| index 75921f799aea999ced7f1016caba07eb9277ba7d..713b0d5b2d346701028b3a3f3cfb1d409590f52a 100644 |
| --- a/ui/base/models/list_model_unittest.cc |
| +++ b/ui/base/models/list_model_unittest.cc |
| @@ -28,19 +28,22 @@ class ListModelTest : public testing::Test, |
| ListModelTest() |
| : added_count_(0), |
| removed_count_(0), |
| + moved_count_(0), |
| changed_count_(0) { |
| } |
| void ExpectCountsEqual(size_t added_count, |
| size_t removed_count, |
| + size_t moved_count, |
| size_t changed_count) { |
| EXPECT_EQ(added_count, added_count_); |
| EXPECT_EQ(removed_count, removed_count_); |
| + EXPECT_EQ(moved_count, moved_count_); |
| EXPECT_EQ(changed_count, changed_count_); |
| } |
| void ClearCounts() { |
| - added_count_ = removed_count_ = changed_count_ = 0; |
| + added_count_ = removed_count_ = moved_count_ = changed_count_ = 0; |
| } |
| // ListModelObserver implementation: |
| @@ -50,6 +53,9 @@ class ListModelTest : public testing::Test, |
| virtual void ListItemsRemoved(size_t start, size_t count) OVERRIDE { |
| removed_count_ += count; |
| } |
| + virtual void ListItemMoved(size_t index, size_t target_index) OVERRIDE { |
| + ++moved_count_; |
| + } |
| virtual void ListItemsChanged(size_t start, size_t count) OVERRIDE { |
| changed_count_ += count; |
| } |
| @@ -57,6 +63,7 @@ class ListModelTest : public testing::Test, |
| private: |
| size_t added_count_; |
| size_t removed_count_; |
| + size_t moved_count_; |
| size_t changed_count_; |
| DISALLOW_COPY_AND_ASSIGN(ListModelTest); |
| @@ -68,15 +75,15 @@ TEST_F(ListModelTest, Add) { |
| // Append FooItem(0) |
| model.Add(new FooItem(0)); |
| - ExpectCountsEqual(1, 0, 0); |
| + ExpectCountsEqual(1, 0, 0, 0); |
| // Append FooItem(1) |
| model.Add(new FooItem(1)); |
| - ExpectCountsEqual(2, 0, 0); |
| + ExpectCountsEqual(2, 0, 0, 0); |
| // Insert FooItem(2) at position 0 |
| model.AddAt(0, new FooItem(2)); |
| - ExpectCountsEqual(3, 0, 0); |
| + ExpectCountsEqual(3, 0, 0, 0); |
| // Total 3 items in mode. |
|
tfarina
2012/09/24 21:02:00
nit: s/mode/model.
xiyuan
2012/09/24 21:34:11
Done.
|
| EXPECT_EQ(3U, model.item_count()); |
| @@ -99,7 +106,7 @@ TEST_F(ListModelTest, Remove) { |
| // Remove item at index 1 from model and release memory. |
| model.DeleteAt(1); |
| - ExpectCountsEqual(0, 1, 0); |
| + ExpectCountsEqual(0, 1, 0, 0); |
| EXPECT_EQ(2U, model.item_count()); |
| EXPECT_EQ(0, model.GetItemAt(0)->id()); |
| @@ -107,7 +114,7 @@ TEST_F(ListModelTest, Remove) { |
| // Remove all items from model and delete them. |
| model.DeleteAll(); |
| - ExpectCountsEqual(0, 3, 0); |
| + ExpectCountsEqual(0, 3, 0, 0); |
| } |
| TEST_F(ListModelTest, RemoveAll) { |
| @@ -126,7 +133,25 @@ TEST_F(ListModelTest, RemoveAll) { |
| // Remove all items and scoped_ptr above would release memory. |
|
tfarina
2012/09/24 21:02:00
doesn't allocating them in the stack instead of he
xiyuan
2012/09/24 21:34:11
That should work too. But think using a scoped_ptr
|
| model.RemoveAll(); |
| - ExpectCountsEqual(0, 3, 0); |
| + ExpectCountsEqual(0, 3, 0, 0); |
| +} |
| + |
| +TEST_F(ListModelTest, Move) { |
| + ListModel<FooItem> model; |
| + model.AddObserver(this); |
| + |
| + model.Add(new FooItem(0)); |
| + model.Add(new FooItem(1)); |
| + model.Add(new FooItem(2)); |
| + |
| + ClearCounts(); |
| + |
| + // Moves item at index 0 to index 2. |
| + model.Move(0, 2); |
| + ExpectCountsEqual(0, 0, 1, 0); |
| + EXPECT_EQ(1, model.GetItemAt(0)->id()); |
| + EXPECT_EQ(2, model.GetItemAt(1)->id()); |
| + EXPECT_EQ(0, model.GetItemAt(2)->id()); |
| } |
| TEST_F(ListModelTest, FakeUpdate) { |
| @@ -140,10 +165,10 @@ TEST_F(ListModelTest, FakeUpdate) { |
| ClearCounts(); |
| model.NotifyItemsChanged(0, 1); |
| - ExpectCountsEqual(0, 0, 1); |
| + ExpectCountsEqual(0, 0, 0, 1); |
| model.NotifyItemsChanged(1, 2); |
| - ExpectCountsEqual(0, 0, 3); |
| + ExpectCountsEqual(0, 0, 0, 3); |
| } |
| } // namespace ui |