Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(300)

Unified Diff: ui/app_list/views/apps_grid_view_unittest.cc

Issue 614213004: Refactor app list max folder logic. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/app_list/views/apps_grid_view_unittest.cc
diff --git a/ui/app_list/views/apps_grid_view_unittest.cc b/ui/app_list/views/apps_grid_view_unittest.cc
index febc17cc1fa5eb59854760a1cd36b2274761e4ed..b9cc401e1cb220f54d58ebc0f0b2be506c1cca46 100644
--- a/ui/app_list/views/apps_grid_view_unittest.cc
+++ b/ui/app_list/views/apps_grid_view_unittest.cc
@@ -149,9 +149,9 @@ class AppsGridViewTest : public views::ViewsTestBase {
}
// Points are in |apps_grid_view_|'s coordinates.
- void SimulateDrag(AppsGridView::Pointer pointer,
- const gfx::Point& from,
- const gfx::Point& to) {
+ AppListItemView* SimulateDrag(AppsGridView::Pointer pointer,
+ const gfx::Point& from,
+ const gfx::Point& to) {
AppListItemView* view = GetItemViewForPoint(from);
DCHECK(view);
@@ -167,6 +167,7 @@ class AppsGridViewTest : public views::ViewsTestBase {
ui::MouseEvent drag_event(ui::ET_MOUSE_DRAGGED,
translated_to, to, 0, 0);
apps_grid_view_->UpdateDragFromItem(pointer, drag_event);
+ return view;
}
void SimulateKeyPress(ui::KeyboardCode key_code) {
@@ -416,6 +417,56 @@ TEST_F(AppsGridViewTest, MouseDragMaxItemsInFolder) {
test_api_->LayoutToIdealBounds();
}
+// Check that moving items around doesn't allow a drop to happen into a full
+// folder.
+TEST_F(AppsGridViewTest, MouseDragMaxItemsInFolderWithMovement) {
+ EnsureFoldersEnabled();
+
+ // Create and add a folder with 16 items in it.
+ size_t kTotalItems = kMaxFolderItems;
+ model_->CreateAndPopulateFolderWithApps(kTotalItems);
+ EXPECT_EQ(1u, model_->top_level_item_list()->item_count());
+ EXPECT_EQ(AppListFolderItem::kItemType,
+ model_->top_level_item_list()->item_at(0)->GetItemType());
+ AppListFolderItem* folder_item = static_cast<AppListFolderItem*>(
+ model_->top_level_item_list()->item_at(0));
+ EXPECT_EQ(kTotalItems, folder_item->ChildItemCount());
+
+ // Create and add another item.
+ model_->PopulateAppWithId(kTotalItems);
+ EXPECT_EQ(2u, model_->top_level_item_list()->item_count());
+ EXPECT_EQ(folder_item->id(), model_->top_level_item_list()->item_at(0)->id());
+ EXPECT_EQ(model_->GetItemName(kMaxFolderItems),
+ model_->top_level_item_list()->item_at(1)->id());
+
+ AppListItemView* folder_view =
+ GetItemViewForPoint(GetItemTileRectAt(0, 0).CenterPoint());
+
+ // Drag the new item to the left so that the grid reorders.
+ gfx::Point from = GetItemTileRectAt(0, 1).CenterPoint();
+ gfx::Point to = GetItemTileRectAt(0, 0).bottom_left();
+ AppListItemView* dragged_view = SimulateDrag(AppsGridView::MOUSE, from, to);
+ test_api_->LayoutToIdealBounds();
+
+ // The grid now looks like | blank | folder |.
+ EXPECT_EQ(NULL, GetItemViewForPoint(GetItemTileRectAt(0, 0).CenterPoint()));
+ EXPECT_EQ(folder_view,
+ GetItemViewForPoint(GetItemTileRectAt(0, 1).CenterPoint()));
+
+ // Move onto the folder and end the drag.
+ to = GetItemTileRectAt(0, 1).CenterPoint();
+ gfx::Point translated_to =
+ gfx::PointAtOffsetFromOrigin(to - dragged_view->bounds().origin());
+ ui::MouseEvent drag_event(ui::ET_MOUSE_DRAGGED, translated_to, to, 0, 0);
+ apps_grid_view_->UpdateDragFromItem(AppsGridView::MOUSE, drag_event);
+ apps_grid_view_->EndDrag(false);
+
+ // The item should not have moved into the folder.
+ EXPECT_EQ(2u, model_->top_level_item_list()->item_count());
+ EXPECT_EQ(kMaxFolderItems, folder_item->ChildItemCount());
+ test_api_->LayoutToIdealBounds();
+}
+
TEST_F(AppsGridViewTest, MouseDragItemReorder) {
// This test assumes Folders are enabled.
EnsureFoldersEnabled();

Powered by Google App Engine
This is Rietveld 408576698