| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ash/shelf/shelf_view.h" | 5 #include "ash/shelf/shelf_view.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "ash/ash_switches.h" | 10 #include "ash/ash_switches.h" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 #include "ash/test/test_shelf_delegate.h" | 30 #include "ash/test/test_shelf_delegate.h" |
| 31 #include "ash/test/test_shelf_item_delegate.h" | 31 #include "ash/test/test_shelf_item_delegate.h" |
| 32 #include "ash/wm/coordinate_conversion.h" | 32 #include "ash/wm/coordinate_conversion.h" |
| 33 #include "base/basictypes.h" | 33 #include "base/basictypes.h" |
| 34 #include "base/command_line.h" | 34 #include "base/command_line.h" |
| 35 #include "base/compiler_specific.h" | 35 #include "base/compiler_specific.h" |
| 36 #include "base/memory/scoped_ptr.h" | 36 #include "base/memory/scoped_ptr.h" |
| 37 #include "base/strings/string_number_conversions.h" | 37 #include "base/strings/string_number_conversions.h" |
| 38 #include "grit/ash_resources.h" | 38 #include "grit/ash_resources.h" |
| 39 #include "ui/aura/test/aura_test_base.h" | 39 #include "ui/aura/test/aura_test_base.h" |
| 40 #include "ui/aura/test/event_generator.h" | |
| 41 #include "ui/aura/window.h" | 40 #include "ui/aura/window.h" |
| 42 #include "ui/aura/window_event_dispatcher.h" | 41 #include "ui/aura/window_event_dispatcher.h" |
| 43 #include "ui/base/l10n/l10n_util.h" | 42 #include "ui/base/l10n/l10n_util.h" |
| 44 #include "ui/compositor/layer.h" | 43 #include "ui/compositor/layer.h" |
| 45 #include "ui/events/event.h" | 44 #include "ui/events/event.h" |
| 46 #include "ui/events/event_constants.h" | 45 #include "ui/events/event_constants.h" |
| 46 #include "ui/events/test/event_generator.h" |
| 47 #include "ui/views/view_model.h" | 47 #include "ui/views/view_model.h" |
| 48 #include "ui/views/widget/widget.h" | 48 #include "ui/views/widget/widget.h" |
| 49 #include "ui/views/widget/widget_delegate.h" | 49 #include "ui/views/widget/widget_delegate.h" |
| 50 | 50 |
| 51 namespace ash { | 51 namespace ash { |
| 52 namespace test { | 52 namespace test { |
| 53 | 53 |
| 54 //////////////////////////////////////////////////////////////////////////////// | 54 //////////////////////////////////////////////////////////////////////////////// |
| 55 // ShelfIconObserver tests. | 55 // ShelfIconObserver tests. |
| 56 | 56 |
| (...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 510 int second_last_visible_item_id_in_overflow = | 510 int second_last_visible_item_id_in_overflow = |
| 511 GetItemId(test_api_for_overflow.GetLastVisibleIndex() - 1); | 511 GetItemId(test_api_for_overflow.GetLastVisibleIndex() - 1); |
| 512 | 512 |
| 513 int drag_item_index = | 513 int drag_item_index = |
| 514 test_api_for_overflow.GetLastVisibleIndex(); | 514 test_api_for_overflow.GetLastVisibleIndex(); |
| 515 ShelfID drag_item_id = GetItemId(drag_item_index); | 515 ShelfID drag_item_id = GetItemId(drag_item_index); |
| 516 ShelfButton* drag_button = test_api_for_overflow.GetButton(drag_item_index); | 516 ShelfButton* drag_button = test_api_for_overflow.GetButton(drag_item_index); |
| 517 gfx::Point center_point_of_drag_item = | 517 gfx::Point center_point_of_drag_item = |
| 518 drag_button->GetBoundsInScreen().CenterPoint(); | 518 drag_button->GetBoundsInScreen().CenterPoint(); |
| 519 | 519 |
| 520 aura::test::EventGenerator generator(ash::Shell::GetPrimaryRootWindow(), | 520 ui::test::EventGenerator generator(ash::Shell::GetPrimaryRootWindow(), |
| 521 center_point_of_drag_item); | 521 center_point_of_drag_item); |
| 522 // Rip an item off to OverflowBubble. | 522 // Rip an item off to OverflowBubble. |
| 523 generator.PressLeftButton(); | 523 generator.PressLeftButton(); |
| 524 gfx::Point rip_off_point(center_point_of_drag_item.x(), 0); | 524 gfx::Point rip_off_point(center_point_of_drag_item.x(), 0); |
| 525 generator.MoveMouseTo(rip_off_point); | 525 generator.MoveMouseTo(rip_off_point); |
| 526 test_api_for_overflow.RunMessageLoopUntilAnimationsDone(); | 526 test_api_for_overflow.RunMessageLoopUntilAnimationsDone(); |
| 527 ASSERT_TRUE(test_api_for_overflow.IsRippedOffFromShelf()); | 527 ASSERT_TRUE(test_api_for_overflow.IsRippedOffFromShelf()); |
| 528 ASSERT_FALSE(test_api_for_overflow.DraggedItemFromOverflowToShelf()); | 528 ASSERT_FALSE(test_api_for_overflow.DraggedItemFromOverflowToShelf()); |
| 529 | 529 |
| 530 // Move a dragged item into Shelf at |drop_index|. | 530 // Move a dragged item into Shelf at |drop_index|. |
| 531 int drop_index = 1; | 531 int drop_index = 1; |
| (...skipping 787 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1319 views::View* app_list_button = shelf_view_->GetAppListButtonView(); | 1319 views::View* app_list_button = shelf_view_->GetAppListButtonView(); |
| 1320 EXPECT_TRUE(shelf_view_->ShouldHideTooltip( | 1320 EXPECT_TRUE(shelf_view_->ShouldHideTooltip( |
| 1321 app_list_button->GetMirroredBounds().CenterPoint())); | 1321 app_list_button->GetMirroredBounds().CenterPoint())); |
| 1322 } | 1322 } |
| 1323 | 1323 |
| 1324 // Test that by moving the mouse cursor off the button onto the bubble it closes | 1324 // Test that by moving the mouse cursor off the button onto the bubble it closes |
| 1325 // the bubble. | 1325 // the bubble. |
| 1326 TEST_F(ShelfViewTest, ShouldHideTooltipWhenHoveringOnTooltip) { | 1326 TEST_F(ShelfViewTest, ShouldHideTooltipWhenHoveringOnTooltip) { |
| 1327 ShelfTooltipManager* tooltip_manager = shelf_view_->tooltip_manager(); | 1327 ShelfTooltipManager* tooltip_manager = shelf_view_->tooltip_manager(); |
| 1328 tooltip_manager->CreateZeroDelayTimerForTest(); | 1328 tooltip_manager->CreateZeroDelayTimerForTest(); |
| 1329 aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow()); | 1329 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow()); |
| 1330 | 1330 |
| 1331 // Move the mouse off any item and check that no tooltip is shown. | 1331 // Move the mouse off any item and check that no tooltip is shown. |
| 1332 generator.MoveMouseTo(gfx::Point(0, 0)); | 1332 generator.MoveMouseTo(gfx::Point(0, 0)); |
| 1333 EXPECT_FALSE(tooltip_manager->IsVisible()); | 1333 EXPECT_FALSE(tooltip_manager->IsVisible()); |
| 1334 | 1334 |
| 1335 // Move the mouse over the button and check that it is visible. | 1335 // Move the mouse over the button and check that it is visible. |
| 1336 views::View* app_list_button = shelf_view_->GetAppListButtonView(); | 1336 views::View* app_list_button = shelf_view_->GetAppListButtonView(); |
| 1337 gfx::Rect bounds = app_list_button->GetBoundsInScreen(); | 1337 gfx::Rect bounds = app_list_button->GetBoundsInScreen(); |
| 1338 generator.MoveMouseTo(bounds.CenterPoint()); | 1338 generator.MoveMouseTo(bounds.CenterPoint()); |
| 1339 // Wait for the timer to go off. | 1339 // Wait for the timer to go off. |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1411 test_api_->overflow_bubble()->IsShowing()); | 1411 test_api_->overflow_bubble()->IsShowing()); |
| 1412 | 1412 |
| 1413 ShelfViewTestAPI test_for_overflow_view( | 1413 ShelfViewTestAPI test_for_overflow_view( |
| 1414 test_api_->overflow_bubble()->shelf_view()); | 1414 test_api_->overflow_bubble()->shelf_view()); |
| 1415 | 1415 |
| 1416 int ripped_index = test_for_overflow_view.GetLastVisibleIndex(); | 1416 int ripped_index = test_for_overflow_view.GetLastVisibleIndex(); |
| 1417 gfx::Size bubble_size = test_for_overflow_view.GetPreferredSize(); | 1417 gfx::Size bubble_size = test_for_overflow_view.GetPreferredSize(); |
| 1418 int item_width = test_for_overflow_view.GetButtonSize() + | 1418 int item_width = test_for_overflow_view.GetButtonSize() + |
| 1419 test_for_overflow_view.GetButtonSpacing(); | 1419 test_for_overflow_view.GetButtonSpacing(); |
| 1420 | 1420 |
| 1421 aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), | 1421 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), |
| 1422 gfx::Point()); | 1422 gfx::Point()); |
| 1423 ShelfButton* button = test_for_overflow_view.GetButton(ripped_index); | 1423 ShelfButton* button = test_for_overflow_view.GetButton(ripped_index); |
| 1424 // Rip off the last visible item. | 1424 // Rip off the last visible item. |
| 1425 gfx::Point start_point = button->GetBoundsInScreen().CenterPoint(); | 1425 gfx::Point start_point = button->GetBoundsInScreen().CenterPoint(); |
| 1426 gfx::Point rip_off_point(start_point.x(), 0); | 1426 gfx::Point rip_off_point(start_point.x(), 0); |
| 1427 generator.MoveMouseTo(start_point.x(), start_point.y()); | 1427 generator.MoveMouseTo(start_point.x(), start_point.y()); |
| 1428 base::MessageLoop::current()->RunUntilIdle(); | 1428 base::MessageLoop::current()->RunUntilIdle(); |
| 1429 generator.PressLeftButton(); | 1429 generator.PressLeftButton(); |
| 1430 base::MessageLoop::current()->RunUntilIdle(); | 1430 base::MessageLoop::current()->RunUntilIdle(); |
| 1431 generator.MoveMouseTo(rip_off_point.x(), rip_off_point.y()); | 1431 generator.MoveMouseTo(rip_off_point.x(), rip_off_point.y()); |
| 1432 base::MessageLoop::current()->RunUntilIdle(); | 1432 base::MessageLoop::current()->RunUntilIdle(); |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1599 ShelfTestAPI(secondary_shelf).shelf_view(); | 1599 ShelfTestAPI(secondary_shelf).shelf_view(); |
| 1600 | 1600 |
| 1601 ShelfViewTestAPI test_api_for_secondary_shelf_view(shelf_view_for_secondary); | 1601 ShelfViewTestAPI test_api_for_secondary_shelf_view(shelf_view_for_secondary); |
| 1602 ShelfButton* button = | 1602 ShelfButton* button = |
| 1603 test_api_for_secondary_shelf_view.GetButton(browser_index); | 1603 test_api_for_secondary_shelf_view.GetButton(browser_index); |
| 1604 | 1604 |
| 1605 // Fetch the start point of dragging. | 1605 // Fetch the start point of dragging. |
| 1606 gfx::Point start_point = button->GetBoundsInScreen().CenterPoint(); | 1606 gfx::Point start_point = button->GetBoundsInScreen().CenterPoint(); |
| 1607 wm::ConvertPointFromScreen(second_root, &start_point); | 1607 wm::ConvertPointFromScreen(second_root, &start_point); |
| 1608 | 1608 |
| 1609 aura::test::EventGenerator generator(second_root, start_point); | 1609 ui::test::EventGenerator generator(second_root, start_point); |
| 1610 | 1610 |
| 1611 // Rip off the browser item. | 1611 // Rip off the browser item. |
| 1612 generator.PressLeftButton(); | 1612 generator.PressLeftButton(); |
| 1613 generator.MoveMouseTo(start_point.x() + 400, start_point.y()); | 1613 generator.MoveMouseTo(start_point.x() + 400, start_point.y()); |
| 1614 test_api_for_secondary_shelf_view.RunMessageLoopUntilAnimationsDone(); | 1614 test_api_for_secondary_shelf_view.RunMessageLoopUntilAnimationsDone(); |
| 1615 EXPECT_TRUE(test_api_for_secondary_shelf_view.IsRippedOffFromShelf()); | 1615 EXPECT_TRUE(test_api_for_secondary_shelf_view.IsRippedOffFromShelf()); |
| 1616 } | 1616 } |
| 1617 | 1617 |
| 1618 // Checks various drag and drop operations from OverflowBubble to Shelf. | 1618 // Checks various drag and drop operations from OverflowBubble to Shelf. |
| 1619 TEST_F(ShelfViewTest, CheckDragAndDropFromOverflowBubbleToShelf) { | 1619 TEST_F(ShelfViewTest, CheckDragAndDropFromOverflowBubbleToShelf) { |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1669 test_api_->RunMessageLoopUntilAnimationsDone(); | 1669 test_api_->RunMessageLoopUntilAnimationsDone(); |
| 1670 CheckAllItemsAreInBounds(); | 1670 CheckAllItemsAreInBounds(); |
| 1671 } | 1671 } |
| 1672 | 1672 |
| 1673 INSTANTIATE_TEST_CASE_P(LtrRtl, ShelfViewTextDirectionTest, testing::Bool()); | 1673 INSTANTIATE_TEST_CASE_P(LtrRtl, ShelfViewTextDirectionTest, testing::Bool()); |
| 1674 INSTANTIATE_TEST_CASE_P(VisibleBounds, ShelfViewVisibleBoundsTest, | 1674 INSTANTIATE_TEST_CASE_P(VisibleBounds, ShelfViewVisibleBoundsTest, |
| 1675 testing::Bool()); | 1675 testing::Bool()); |
| 1676 | 1676 |
| 1677 } // namespace test | 1677 } // namespace test |
| 1678 } // namespace ash | 1678 } // namespace ash |
| OLD | NEW |