| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/app_list/app_list_item_list.h" | 5 #include "ui/app_list/app_list_item_list.h" |
| 6 | 6 |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/strings/stringprintf.h" | 8 #include "base/strings/stringprintf.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 #include "ui/app_list/app_list_folder_item.h" | 10 #include "ui/app_list/app_list_folder_item.h" |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 79 return item; | 79 return item; |
| 80 } | 80 } |
| 81 | 81 |
| 82 AppListItem* CreateAndAddItem(const std::string& title, | 82 AppListItem* CreateAndAddItem(const std::string& title, |
| 83 const std::string& full_name) { | 83 const std::string& full_name) { |
| 84 AppListItem* item = CreateItem(title, full_name); | 84 AppListItem* item = CreateItem(title, full_name); |
| 85 item_list_.AddItem(item); | 85 item_list_.AddItem(item); |
| 86 return item; | 86 return item; |
| 87 } | 87 } |
| 88 | 88 |
| 89 scoped_ptr<AppListItem> RemoveItem(const std::string& id) { |
| 90 return item_list_.RemoveItem(id); |
| 91 } |
| 92 |
| 93 scoped_ptr<AppListItem> RemoveItemAt(size_t index) { |
| 94 return item_list_.RemoveItemAt(index); |
| 95 } |
| 96 |
| 89 bool VerifyItemListOrdinals() { | 97 bool VerifyItemListOrdinals() { |
| 90 bool res = true; | 98 bool res = true; |
| 91 for (size_t i = 1; i < item_list_.item_count(); ++i) { | 99 for (size_t i = 1; i < item_list_.item_count(); ++i) { |
| 92 res &= (item_list_.item_at(i - 1)->position().LessThan( | 100 res &= (item_list_.item_at(i - 1)->position().LessThan( |
| 93 item_list_.item_at(i)->position())); | 101 item_list_.item_at(i)->position())); |
| 94 } | 102 } |
| 95 if (!res) | 103 if (!res) |
| 96 PrintItems(); | 104 PrintItems(); |
| 97 return res; | 105 return res; |
| 98 } | 106 } |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 AppListItem* item_0 = CreateAndAddItem(GetItemName(0), GetItemName(0)); | 156 AppListItem* item_0 = CreateAndAddItem(GetItemName(0), GetItemName(0)); |
| 149 AppListItem* item_1 = CreateAndAddItem(GetItemName(1), GetItemName(1)); | 157 AppListItem* item_1 = CreateAndAddItem(GetItemName(1), GetItemName(1)); |
| 150 AppListItem* item_2 = CreateAndAddItem(GetItemName(2), GetItemName(2)); | 158 AppListItem* item_2 = CreateAndAddItem(GetItemName(2), GetItemName(2)); |
| 151 EXPECT_EQ(item_list_.item_count(), 3u); | 159 EXPECT_EQ(item_list_.item_count(), 3u); |
| 152 EXPECT_EQ(observer_.items_added(), 3u); | 160 EXPECT_EQ(observer_.items_added(), 3u); |
| 153 size_t index; | 161 size_t index; |
| 154 EXPECT_TRUE(item_list_.FindItemIndex(item_1->id(), &index)); | 162 EXPECT_TRUE(item_list_.FindItemIndex(item_1->id(), &index)); |
| 155 EXPECT_EQ(index, 1u); | 163 EXPECT_EQ(index, 1u); |
| 156 EXPECT_TRUE(VerifyItemListOrdinals()); | 164 EXPECT_TRUE(VerifyItemListOrdinals()); |
| 157 | 165 |
| 158 scoped_ptr<AppListItem> item_removed = item_list_.RemoveItemAt(1); | 166 scoped_ptr<AppListItem> item_removed = RemoveItemAt(1); |
| 159 EXPECT_EQ(item_removed, item_1); | 167 EXPECT_EQ(item_removed, item_1); |
| 160 EXPECT_FALSE(item_list_.FindItem(item_1->id())); | 168 EXPECT_FALSE(item_list_.FindItem(item_1->id())); |
| 161 EXPECT_EQ(item_list_.item_count(), 2u); | 169 EXPECT_EQ(item_list_.item_count(), 2u); |
| 162 EXPECT_EQ(observer_.items_removed(), 1u); | 170 EXPECT_EQ(observer_.items_removed(), 1u); |
| 163 EXPECT_EQ(item_list_.item_at(0), item_0); | 171 EXPECT_EQ(item_list_.item_at(0), item_0); |
| 164 EXPECT_EQ(item_list_.item_at(1), item_2); | 172 EXPECT_EQ(item_list_.item_at(1), item_2); |
| 165 EXPECT_TRUE(VerifyItemListOrdinals()); | 173 EXPECT_TRUE(VerifyItemListOrdinals()); |
| 166 } | 174 } |
| 167 | 175 |
| 168 TEST_F(AppListItemListTest, RemoveItem) { | 176 TEST_F(AppListItemListTest, RemoveItem) { |
| 169 AppListItem* item_0 = CreateAndAddItem(GetItemName(0), GetItemName(0)); | 177 AppListItem* item_0 = CreateAndAddItem(GetItemName(0), GetItemName(0)); |
| 170 AppListItem* item_1 = CreateAndAddItem(GetItemName(1), GetItemName(1)); | 178 AppListItem* item_1 = CreateAndAddItem(GetItemName(1), GetItemName(1)); |
| 171 AppListItem* item_2 = CreateAndAddItem(GetItemName(2), GetItemName(2)); | 179 AppListItem* item_2 = CreateAndAddItem(GetItemName(2), GetItemName(2)); |
| 172 EXPECT_EQ(item_list_.item_count(), 3u); | 180 EXPECT_EQ(item_list_.item_count(), 3u); |
| 173 EXPECT_EQ(observer_.items_added(), 3u); | 181 EXPECT_EQ(observer_.items_added(), 3u); |
| 174 EXPECT_EQ(item_0, item_list_.item_at(0)); | 182 EXPECT_EQ(item_0, item_list_.item_at(0)); |
| 175 EXPECT_EQ(item_1, item_list_.item_at(1)); | 183 EXPECT_EQ(item_1, item_list_.item_at(1)); |
| 176 EXPECT_EQ(item_2, item_list_.item_at(2)); | 184 EXPECT_EQ(item_2, item_list_.item_at(2)); |
| 177 EXPECT_TRUE(VerifyItemListOrdinals()); | 185 EXPECT_TRUE(VerifyItemListOrdinals()); |
| 178 | 186 |
| 179 size_t index; | 187 size_t index; |
| 180 EXPECT_TRUE(item_list_.FindItemIndex(item_1->id(), &index)); | 188 EXPECT_TRUE(item_list_.FindItemIndex(item_1->id(), &index)); |
| 181 EXPECT_EQ(index, 1u); | 189 EXPECT_EQ(index, 1u); |
| 182 | 190 |
| 183 scoped_ptr<AppListItem> item_removed = | 191 scoped_ptr<AppListItem> item_removed = RemoveItem(item_1->id()); |
| 184 item_list_.RemoveItem(item_1->id()); | |
| 185 EXPECT_EQ(item_removed, item_1); | 192 EXPECT_EQ(item_removed, item_1); |
| 186 EXPECT_FALSE(item_list_.FindItem(item_1->id())); | 193 EXPECT_FALSE(item_list_.FindItem(item_1->id())); |
| 187 EXPECT_EQ(item_list_.item_count(), 2u); | 194 EXPECT_EQ(item_list_.item_count(), 2u); |
| 188 EXPECT_EQ(observer_.items_removed(), 1u); | 195 EXPECT_EQ(observer_.items_removed(), 1u); |
| 189 EXPECT_TRUE(VerifyItemListOrdinals()); | 196 EXPECT_TRUE(VerifyItemListOrdinals()); |
| 190 | 197 |
| 191 scoped_ptr<AppListItem> not_found_item = item_list_.RemoveItem("Bogus"); | 198 scoped_ptr<AppListItem> not_found_item = RemoveItem("Bogus"); |
| 192 EXPECT_FALSE(not_found_item.get()); | 199 EXPECT_FALSE(not_found_item.get()); |
| 193 } | 200 } |
| 194 | 201 |
| 195 TEST_F(AppListItemListTest, InsertItemAt) { | |
| 196 AppListItem* item_0 = CreateAndAddItem(GetItemName(0), GetItemName(0)); | |
| 197 AppListItem* item_1 = CreateAndAddItem(GetItemName(1), GetItemName(1)); | |
| 198 EXPECT_EQ(item_list_.item_count(), 2u); | |
| 199 EXPECT_EQ(observer_.items_added(), 2u); | |
| 200 EXPECT_EQ(item_list_.item_at(0), item_0); | |
| 201 EXPECT_EQ(item_list_.item_at(1), item_1); | |
| 202 EXPECT_TRUE(VerifyItemListOrdinals()); | |
| 203 | |
| 204 // Insert an item at the beginning of the item_list_. | |
| 205 AppListItem* item_2 = CreateItem(GetItemName(2), GetItemName(2)); | |
| 206 item_list_.InsertItemAt(item_2, 0); | |
| 207 EXPECT_EQ(item_list_.item_count(), 3u); | |
| 208 EXPECT_EQ(observer_.items_added(), 3u); | |
| 209 EXPECT_EQ(item_list_.item_at(0), item_2); | |
| 210 EXPECT_EQ(item_list_.item_at(1), item_0); | |
| 211 EXPECT_EQ(item_list_.item_at(2), item_1); | |
| 212 EXPECT_TRUE(VerifyItemListOrdinals()); | |
| 213 | |
| 214 // Insert an item at the end of the item_list_. | |
| 215 AppListItem* item_3 = CreateItem(GetItemName(3), GetItemName(3)); | |
| 216 item_list_.InsertItemAt(item_3, item_list_.item_count()); | |
| 217 EXPECT_EQ(item_list_.item_count(), 4u); | |
| 218 EXPECT_EQ(observer_.items_added(), 4u); | |
| 219 EXPECT_EQ(item_list_.item_at(0), item_2); | |
| 220 EXPECT_EQ(item_list_.item_at(1), item_0); | |
| 221 EXPECT_EQ(item_list_.item_at(2), item_1); | |
| 222 EXPECT_EQ(item_list_.item_at(3), item_3); | |
| 223 EXPECT_TRUE(VerifyItemListOrdinals()); | |
| 224 | |
| 225 // Insert an item at the 2nd item of the item_list_. | |
| 226 AppListItem* item_4 = CreateItem(GetItemName(4), GetItemName(4)); | |
| 227 item_list_.InsertItemAt(item_4, 1); | |
| 228 EXPECT_EQ(item_list_.item_count(), 5u); | |
| 229 EXPECT_EQ(observer_.items_added(), 5u); | |
| 230 EXPECT_EQ(item_list_.item_at(0), item_2); | |
| 231 EXPECT_EQ(item_list_.item_at(1), item_4); | |
| 232 EXPECT_EQ(item_list_.item_at(2), item_0); | |
| 233 EXPECT_EQ(item_list_.item_at(3), item_1); | |
| 234 EXPECT_EQ(item_list_.item_at(4), item_3); | |
| 235 EXPECT_TRUE(VerifyItemListOrdinals()); | |
| 236 } | |
| 237 | |
| 238 TEST_F(AppListItemListTest, InsertItemAtEmptyList) { | |
| 239 AppListItem* item_0 = CreateItem(GetItemName(0), GetItemName(0)); | |
| 240 EXPECT_EQ(item_list_.item_count(), 0u); | |
| 241 item_list_.InsertItemAt(item_0, 0); | |
| 242 EXPECT_EQ(item_list_.item_count(), 1u); | |
| 243 EXPECT_EQ(observer_.items_added(), 1u); | |
| 244 EXPECT_EQ(item_list_.item_at(0), item_0); | |
| 245 EXPECT_TRUE(VerifyItemListOrdinals()); | |
| 246 } | |
| 247 | |
| 248 TEST_F(AppListItemListTest, MoveItem) { | 202 TEST_F(AppListItemListTest, MoveItem) { |
| 249 CreateAndAddItem(GetItemName(0), GetItemName(0)); | 203 CreateAndAddItem(GetItemName(0), GetItemName(0)); |
| 250 CreateAndAddItem(GetItemName(1), GetItemName(1)); | 204 CreateAndAddItem(GetItemName(1), GetItemName(1)); |
| 251 CreateAndAddItem(GetItemName(2), GetItemName(2)); | 205 CreateAndAddItem(GetItemName(2), GetItemName(2)); |
| 252 CreateAndAddItem(GetItemName(3), GetItemName(3)); | 206 CreateAndAddItem(GetItemName(3), GetItemName(3)); |
| 253 EXPECT_TRUE(VerifyItemOrder4(0, 1, 2, 3)); | 207 EXPECT_TRUE(VerifyItemOrder4(0, 1, 2, 3)); |
| 254 | 208 |
| 255 item_list_.MoveItem(0, 1); | 209 item_list_.MoveItem(0, 1); |
| 256 EXPECT_TRUE(VerifyItemListOrdinals()); | 210 EXPECT_TRUE(VerifyItemListOrdinals()); |
| 257 EXPECT_TRUE(VerifyItemOrder4(1, 0, 2, 3)); | 211 EXPECT_TRUE(VerifyItemOrder4(1, 0, 2, 3)); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 309 EXPECT_TRUE(VerifyItemListOrdinals()); | 263 EXPECT_TRUE(VerifyItemListOrdinals()); |
| 310 EXPECT_TRUE(VerifyItemOrder4(2, 0, 3, 1)); | 264 EXPECT_TRUE(VerifyItemOrder4(2, 0, 3, 1)); |
| 311 // last -> last | 265 // last -> last |
| 312 item_list_.SetItemPosition(item_list_.item_at(3), | 266 item_list_.SetItemPosition(item_list_.item_at(3), |
| 313 item_list_.item_at(3)->position().CreateAfter()); | 267 item_list_.item_at(3)->position().CreateAfter()); |
| 314 EXPECT_TRUE(VerifyItemListOrdinals()); | 268 EXPECT_TRUE(VerifyItemListOrdinals()); |
| 315 EXPECT_TRUE(VerifyItemOrder4(2, 0, 3, 1)); | 269 EXPECT_TRUE(VerifyItemOrder4(2, 0, 3, 1)); |
| 316 } | 270 } |
| 317 | 271 |
| 318 } // namespace app_list | 272 } // namespace app_list |
| OLD | NEW |