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/views/app_list_main_view.h" | 5 #include "ui/app_list/views/app_list_main_view.h" |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
9 #include "base/time/time.h" | 9 #include "base/time/time.h" |
10 #include "base/timer/timer.h" | 10 #include "base/timer/timer.h" |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
279 // The item view should be in slot 1 instead of slot 2 where it is dropped. | 279 // The item view should be in slot 1 instead of slot 2 where it is dropped. |
280 AppsGridViewTestApi root_grid_view_test_api(RootGridView()); | 280 AppsGridViewTestApi root_grid_view_test_api(RootGridView()); |
281 root_grid_view_test_api.LayoutToIdealBounds(); | 281 root_grid_view_test_api.LayoutToIdealBounds(); |
282 EXPECT_EQ(first_slot_tile, RootViewModel()->view_at(0)->bounds()); | 282 EXPECT_EQ(first_slot_tile, RootViewModel()->view_at(0)->bounds()); |
283 | 283 |
284 // Single item folder should be auto removed. | 284 // Single item folder should be auto removed. |
285 EXPECT_EQ(NULL, | 285 EXPECT_EQ(NULL, |
286 delegate_->GetTestModel()->FindFolderItem("single_item_folder")); | 286 delegate_->GetTestModel()->FindFolderItem("single_item_folder")); |
287 } | 287 } |
288 | 288 |
289 // Tests dragging an item out of a single item folder and dropping it onto the | |
290 // page switcher. Regression test for http://crbug.com/415530/. | |
291 TEST_F(AppListMainViewTest, DragReparentItemOntoPageSwitcher) { | |
292 AppListItemView* folder_item_view = CreateAndOpenSingleItemFolder(); | |
293 const gfx::Rect first_slot_tile = folder_item_view->bounds(); | |
294 | |
295 const int kInitialApps = 20; | |
tapted
2014/09/22 06:47:02
nit: I'd just drop this var and put 20 on the next
calamity
2014/09/23 01:06:22
Done.
| |
296 delegate_->GetTestModel()->PopulateApps(kInitialApps); | |
297 | |
298 EXPECT_EQ(1, FolderViewModel()->view_size()); | |
299 EXPECT_EQ(21, RootViewModel()->view_size()); | |
300 | |
301 AppListItemView* dragged = StartDragForReparent(0); | |
302 | |
303 gfx::Rect main_view_bounds = main_view_->bounds(); | |
304 // Drag the reparent item to the page switcher. | |
305 gfx::Point point = | |
306 gfx::Point(main_view_bounds.width() / 2, | |
307 main_view_bounds.bottom() - first_slot_tile.height()); | |
308 SimulateUpdateDrag(FolderGridView(), AppsGridView::MOUSE, dragged, point); | |
tapted
2014/09/22 06:47:02
Why two? (comment?). But I'm pretty sure you can d
calamity
2014/09/23 01:06:22
Indeed.
| |
309 SimulateUpdateDrag(FolderGridView(), AppsGridView::MOUSE, dragged, point); | |
310 base::RunLoop().RunUntilIdle(); | |
tapted
2014/09/22 06:47:02
yeah - as discussed - probably don't need these.
calamity
2014/09/23 01:06:22
Done.
| |
311 | |
312 // Drop it. | |
313 FolderGridView()->EndDrag(false); | |
314 base::RunLoop().RunUntilIdle(); | |
315 | |
316 // The folder should be destroyed. | |
317 EXPECT_EQ(21, RootViewModel()->view_size()); | |
318 EXPECT_EQ(NULL, | |
319 delegate_->GetTestModel()->FindFolderItem("single_item_folder")); | |
320 } | |
321 | |
289 // Test that an interrupted drag while reparenting an item from a folder, when | 322 // Test that an interrupted drag while reparenting an item from a folder, when |
290 // canceled via the root grid, correctly forwards the cancelation to the drag | 323 // canceled via the root grid, correctly forwards the cancelation to the drag |
291 // ocurring from the folder. | 324 // ocurring from the folder. |
292 TEST_F(AppListMainViewTest, MouseDragItemOutOfFolderWithCancel) { | 325 TEST_F(AppListMainViewTest, MouseDragItemOutOfFolderWithCancel) { |
293 CreateAndOpenSingleItemFolder(); | 326 CreateAndOpenSingleItemFolder(); |
294 AppListItemView* dragged = StartDragForReparent(0); | 327 AppListItemView* dragged = StartDragForReparent(0); |
295 | 328 |
296 // Now add an item to the model, not in any folder, e.g., as if by Sync. | 329 // Now add an item to the model, not in any folder, e.g., as if by Sync. |
297 EXPECT_TRUE(RootGridView()->has_dragged_view()); | 330 EXPECT_TRUE(RootGridView()->has_dragged_view()); |
298 EXPECT_TRUE(FolderGridView()->has_dragged_view()); | 331 EXPECT_TRUE(FolderGridView()->has_dragged_view()); |
299 delegate_->GetTestModel()->CreateAndAddItem("Extra"); | 332 delegate_->GetTestModel()->CreateAndAddItem("Extra"); |
300 | 333 |
301 // The drag operation should get canceled. | 334 // The drag operation should get canceled. |
302 EXPECT_FALSE(RootGridView()->has_dragged_view()); | 335 EXPECT_FALSE(RootGridView()->has_dragged_view()); |
303 EXPECT_FALSE(FolderGridView()->has_dragged_view()); | 336 EXPECT_FALSE(FolderGridView()->has_dragged_view()); |
304 | 337 |
305 // Additional mouse move operations should be ignored. | 338 // Additional mouse move operations should be ignored. |
306 gfx::Point point(1, 1); | 339 gfx::Point point(1, 1); |
307 SimulateUpdateDrag(FolderGridView(), AppsGridView::MOUSE, dragged, point); | 340 SimulateUpdateDrag(FolderGridView(), AppsGridView::MOUSE, dragged, point); |
308 EXPECT_FALSE(RootGridView()->has_dragged_view()); | 341 EXPECT_FALSE(RootGridView()->has_dragged_view()); |
309 EXPECT_FALSE(FolderGridView()->has_dragged_view()); | 342 EXPECT_FALSE(FolderGridView()->has_dragged_view()); |
310 } | 343 } |
311 | 344 |
312 } // namespace test | 345 } // namespace test |
313 } // namespace app_list | 346 } // namespace app_list |
OLD | NEW |