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 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
263 virtual ~ShelfViewTest() {} | 263 virtual ~ShelfViewTest() {} |
264 | 264 |
265 virtual void SetUp() OVERRIDE { | 265 virtual void SetUp() OVERRIDE { |
266 AshTestBase::SetUp(); | 266 AshTestBase::SetUp(); |
267 test::ShellTestApi test_api(Shell::GetInstance()); | 267 test::ShellTestApi test_api(Shell::GetInstance()); |
268 model_ = test_api.shelf_model(); | 268 model_ = test_api.shelf_model(); |
269 Shelf* shelf = Shelf::ForPrimaryDisplay(); | 269 Shelf* shelf = Shelf::ForPrimaryDisplay(); |
270 shelf_view_ = ShelfTestAPI(shelf).shelf_view(); | 270 shelf_view_ = ShelfTestAPI(shelf).shelf_view(); |
271 | 271 |
272 // The bounds should be big enough for 4 buttons + overflow chevron. | 272 // The bounds should be big enough for 4 buttons + overflow chevron. |
273 shelf_view_->SetBounds( | 273 shelf_view_->SetBounds(0, 0, 500, kShelfSize); |
274 0, 0, 500, ShelfLayoutManager::GetPreferredShelfSize()); | |
275 | 274 |
276 test_api_.reset(new ShelfViewTestAPI(shelf_view_)); | 275 test_api_.reset(new ShelfViewTestAPI(shelf_view_)); |
277 test_api_->SetAnimationDuration(1); // Speeds up animation for test. | 276 test_api_->SetAnimationDuration(1); // Speeds up animation for test. |
278 | 277 |
279 item_manager_ = Shell::GetInstance()->shelf_item_delegate_manager(); | 278 item_manager_ = Shell::GetInstance()->shelf_item_delegate_manager(); |
280 DCHECK(item_manager_); | 279 DCHECK(item_manager_); |
281 | 280 |
282 // Add browser shortcut shelf item at index 0 for test. | 281 // Add browser shortcut shelf item at index 0 for test. |
283 AddBrowserShortcut(); | 282 AddBrowserShortcut(); |
284 } | 283 } |
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
571 ShelfView* shelf_view_; | 570 ShelfView* shelf_view_; |
572 int browser_index_; | 571 int browser_index_; |
573 ShelfItemDelegateManager* item_manager_; | 572 ShelfItemDelegateManager* item_manager_; |
574 | 573 |
575 scoped_ptr<ShelfViewTestAPI> test_api_; | 574 scoped_ptr<ShelfViewTestAPI> test_api_; |
576 | 575 |
577 private: | 576 private: |
578 DISALLOW_COPY_AND_ASSIGN(ShelfViewTest); | 577 DISALLOW_COPY_AND_ASSIGN(ShelfViewTest); |
579 }; | 578 }; |
580 | 579 |
581 class ShelfViewLegacyShelfLayoutTest : public ShelfViewTest { | |
582 public: | |
583 ShelfViewLegacyShelfLayoutTest() : ShelfViewTest() { | |
584 browser_index_ = 0; | |
585 } | |
586 | |
587 virtual ~ShelfViewLegacyShelfLayoutTest() {} | |
588 | |
589 virtual void SetUp() OVERRIDE { | |
590 CommandLine::ForCurrentProcess()->AppendSwitch( | |
591 ash::switches::kAshDisableAlternateShelfLayout); | |
592 ShelfViewTest::SetUp(); | |
593 } | |
594 | |
595 private: | |
596 DISALLOW_COPY_AND_ASSIGN(ShelfViewLegacyShelfLayoutTest); | |
597 }; | |
598 | |
599 class ScopedTextDirectionChange { | 580 class ScopedTextDirectionChange { |
600 public: | 581 public: |
601 ScopedTextDirectionChange(bool is_rtl) | 582 ScopedTextDirectionChange(bool is_rtl) |
602 : is_rtl_(is_rtl) { | 583 : is_rtl_(is_rtl) { |
603 original_locale_ = l10n_util::GetApplicationLocale(std::string()); | 584 original_locale_ = l10n_util::GetApplicationLocale(std::string()); |
604 if (is_rtl_) | 585 if (is_rtl_) |
605 base::i18n::SetICUDefaultLocale("he"); | 586 base::i18n::SetICUDefaultLocale("he"); |
606 CheckTextDirectionIsCorrect(); | 587 CheckTextDirectionIsCorrect(); |
607 } | 588 } |
608 | 589 |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
734 | 715 |
735 last_added = AddAppShortcut(); | 716 last_added = AddAppShortcut(); |
736 ++items_added; | 717 ++items_added; |
737 ASSERT_LT(items_added, 10000); | 718 ASSERT_LT(items_added, 10000); |
738 } | 719 } |
739 | 720 |
740 // And the platform app button is invisible. | 721 // And the platform app button is invisible. |
741 EXPECT_FALSE(GetButtonByID(browser_button_id)->visible()); | 722 EXPECT_FALSE(GetButtonByID(browser_button_id)->visible()); |
742 } | 723 } |
743 | 724 |
744 TEST_F(ShelfViewLegacyShelfLayoutTest, | |
745 AddAppShortcutWithBrowserButtonUntilOverflow) { | |
746 // All buttons should be visible. | |
747 ASSERT_EQ(test_api_->GetButtonCount(), | |
748 test_api_->GetLastVisibleIndex() + 1); | |
749 | |
750 | |
751 ShelfID browser_button_id = AddPlatformApp(); | |
752 | |
753 // Add app shortcut until overflow. | |
754 int items_added = 0; | |
755 ShelfID last_added = AddAppShortcut(); | |
756 while (!test_api_->IsOverflowButtonVisible()) { | |
757 // Added button is visible after animation while in this loop. | |
758 EXPECT_TRUE(GetButtonByID(last_added)->visible()); | |
759 | |
760 last_added = AddAppShortcut(); | |
761 ++items_added; | |
762 ASSERT_LT(items_added, 10000); | |
763 } | |
764 | |
765 // The last added app short button should be visible. | |
766 EXPECT_TRUE(GetButtonByID(last_added)->visible()); | |
767 // And the platform app button is invisible. | |
768 EXPECT_FALSE(GetButtonByID(browser_button_id)->visible()); | |
769 } | |
770 | |
771 TEST_F(ShelfViewTest, AddPanelHidesPlatformAppButton) { | 725 TEST_F(ShelfViewTest, AddPanelHidesPlatformAppButton) { |
772 // All buttons should be visible. | 726 // All buttons should be visible. |
773 ASSERT_EQ(test_api_->GetButtonCount(), | 727 ASSERT_EQ(test_api_->GetButtonCount(), |
774 test_api_->GetLastVisibleIndex() + 1); | 728 test_api_->GetLastVisibleIndex() + 1); |
775 | 729 |
776 // Add platform app button until overflow, remember last visible platform app | 730 // Add platform app button until overflow, remember last visible platform app |
777 // button. | 731 // button. |
778 int items_added = 0; | 732 int items_added = 0; |
779 ShelfID first_added = AddPlatformApp(); | 733 ShelfID first_added = AddPlatformApp(); |
780 EXPECT_TRUE(GetButtonByID(first_added)->visible()); | 734 EXPECT_TRUE(GetButtonByID(first_added)->visible()); |
781 while (true) { | 735 while (true) { |
782 ShelfID added = AddPlatformApp(); | 736 ShelfID added = AddPlatformApp(); |
783 if (test_api_->IsOverflowButtonVisible()) { | 737 if (test_api_->IsOverflowButtonVisible()) { |
784 EXPECT_FALSE(GetButtonByID(added)->visible()); | 738 EXPECT_FALSE(GetButtonByID(added)->visible()); |
785 RemoveByID(added); | 739 RemoveByID(added); |
786 break; | 740 break; |
787 } | 741 } |
788 ++items_added; | 742 ++items_added; |
789 ASSERT_LT(items_added, 10000); | 743 ASSERT_LT(items_added, 10000); |
790 } | 744 } |
791 | 745 |
792 ShelfID panel = AddPanel(); | 746 ShelfID panel = AddPanel(); |
793 EXPECT_TRUE(test_api_->IsOverflowButtonVisible()); | 747 EXPECT_TRUE(test_api_->IsOverflowButtonVisible()); |
794 | 748 |
795 RemoveByID(panel); | 749 RemoveByID(panel); |
796 EXPECT_FALSE(test_api_->IsOverflowButtonVisible()); | 750 EXPECT_FALSE(test_api_->IsOverflowButtonVisible()); |
797 } | 751 } |
798 | 752 |
799 TEST_F(ShelfViewLegacyShelfLayoutTest, AddPanelHidesPlatformAppButton) { | |
800 // All buttons should be visible. | |
801 ASSERT_EQ(test_api_->GetButtonCount(), | |
802 test_api_->GetLastVisibleIndex() + 1); | |
803 | |
804 // Add platform app button until overflow, remember last visible platform app | |
805 // button. | |
806 int items_added = 0; | |
807 ShelfID first_added = AddPlatformApp(); | |
808 EXPECT_TRUE(GetButtonByID(first_added)->visible()); | |
809 ShelfID last_visible = first_added; | |
810 while (true) { | |
811 ShelfID added = AddPlatformApp(); | |
812 if (test_api_->IsOverflowButtonVisible()) { | |
813 EXPECT_FALSE(GetButtonByID(added)->visible()); | |
814 break; | |
815 } | |
816 last_visible = added; | |
817 ++items_added; | |
818 ASSERT_LT(items_added, 10000); | |
819 } | |
820 | |
821 ShelfID panel = AddPanel(); | |
822 EXPECT_TRUE(GetButtonByID(panel)->visible()); | |
823 EXPECT_FALSE(GetButtonByID(last_visible)->visible()); | |
824 | |
825 RemoveByID(panel); | |
826 EXPECT_TRUE(GetButtonByID(last_visible)->visible()); | |
827 } | |
828 | |
829 // When there are more panels then platform app buttons we should hide panels | 753 // When there are more panels then platform app buttons we should hide panels |
830 // rather than platform apps. | 754 // rather than platform apps. |
831 TEST_F(ShelfViewTest, PlatformAppHidesExcessPanels) { | 755 TEST_F(ShelfViewTest, PlatformAppHidesExcessPanels) { |
832 // All buttons should be visible. | 756 // All buttons should be visible. |
833 ASSERT_EQ(test_api_->GetButtonCount(), | 757 ASSERT_EQ(test_api_->GetButtonCount(), |
834 test_api_->GetLastVisibleIndex() + 1); | 758 test_api_->GetLastVisibleIndex() + 1); |
835 | 759 |
836 // Add platform app button. | 760 // Add platform app button. |
837 ShelfID platform_app = AddPlatformApp(); | 761 ShelfID platform_app = AddPlatformApp(); |
838 ShelfID first_panel = AddPanel(); | 762 ShelfID first_panel = AddPanel(); |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1005 // the order. | 929 // the order. |
1006 dragged_button = SimulateDrag(ShelfButtonHost::MOUSE, 1, 3); | 930 dragged_button = SimulateDrag(ShelfButtonHost::MOUSE, 1, 3); |
1007 new_id = AddPanel(); | 931 new_id = AddPanel(); |
1008 id_map.insert(id_map.begin() + 7, | 932 id_map.insert(id_map.begin() + 7, |
1009 std::make_pair(new_id, GetButtonByID(new_id))); | 933 std::make_pair(new_id, GetButtonByID(new_id))); |
1010 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); | 934 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); |
1011 button_host->PointerReleasedOnButton( | 935 button_host->PointerReleasedOnButton( |
1012 dragged_button, ShelfButtonHost::MOUSE, false); | 936 dragged_button, ShelfButtonHost::MOUSE, false); |
1013 } | 937 } |
1014 | 938 |
1015 TEST_F(ShelfViewLegacyShelfLayoutTest, ModelChangesWhileDragging) { | |
1016 ShelfButtonHost* button_host = shelf_view_; | |
1017 | |
1018 std::vector<std::pair<ShelfID, views::View*> > id_map; | |
1019 SetupForDragTest(&id_map); | |
1020 | |
1021 // Dragging browser shortcut at index 0. | |
1022 EXPECT_TRUE(model_->items()[0].type == TYPE_BROWSER_SHORTCUT); | |
1023 views::View* dragged_button = SimulateDrag(ShelfButtonHost::MOUSE, 0, 2); | |
1024 std::rotate(id_map.begin(), | |
1025 id_map.begin() + 1, | |
1026 id_map.begin() + 3); | |
1027 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); | |
1028 button_host->PointerReleasedOnButton( | |
1029 dragged_button, ShelfButtonHost::MOUSE, false); | |
1030 EXPECT_TRUE(model_->items()[2].type == TYPE_BROWSER_SHORTCUT); | |
1031 | |
1032 // Dragging changes model order. | |
1033 dragged_button = SimulateDrag(ShelfButtonHost::MOUSE, 0, 2); | |
1034 std::rotate(id_map.begin(), | |
1035 id_map.begin() + 1, | |
1036 id_map.begin() + 3); | |
1037 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); | |
1038 | |
1039 // Cancelling the drag operation restores previous order. | |
1040 button_host->PointerReleasedOnButton( | |
1041 dragged_button, ShelfButtonHost::MOUSE, true); | |
1042 std::rotate(id_map.begin(), | |
1043 id_map.begin() + 2, | |
1044 id_map.begin() + 3); | |
1045 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); | |
1046 | |
1047 // Deleting an item keeps the remaining intact. | |
1048 dragged_button = SimulateDrag(ShelfButtonHost::MOUSE, 0, 2); | |
1049 model_->RemoveItemAt(1); | |
1050 id_map.erase(id_map.begin() + 1); | |
1051 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); | |
1052 button_host->PointerReleasedOnButton( | |
1053 dragged_button, ShelfButtonHost::MOUSE, false); | |
1054 | |
1055 // Adding a shelf item cancels the drag and respects the order. | |
1056 dragged_button = SimulateDrag(ShelfButtonHost::MOUSE, 0, 2); | |
1057 ShelfID new_id = AddAppShortcut(); | |
1058 id_map.insert(id_map.begin() + 5, | |
1059 std::make_pair(new_id, GetButtonByID(new_id))); | |
1060 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); | |
1061 button_host->PointerReleasedOnButton( | |
1062 dragged_button, ShelfButtonHost::MOUSE, false); | |
1063 | |
1064 // Adding a shelf item at the end (i.e. a panel) canels drag and respects | |
1065 // the order. | |
1066 dragged_button = SimulateDrag(ShelfButtonHost::MOUSE, 0, 2); | |
1067 new_id = AddPanel(); | |
1068 id_map.insert(id_map.begin() + 7, | |
1069 std::make_pair(new_id, GetButtonByID(new_id))); | |
1070 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); | |
1071 button_host->PointerReleasedOnButton( | |
1072 dragged_button, ShelfButtonHost::MOUSE, false); | |
1073 } | |
1074 | |
1075 // Check that 2nd drag from the other pointer would be ignored. | 939 // Check that 2nd drag from the other pointer would be ignored. |
1076 TEST_F(ShelfViewTest, SimultaneousDrag) { | 940 TEST_F(ShelfViewTest, SimultaneousDrag) { |
1077 ShelfButtonHost* button_host = shelf_view_; | 941 ShelfButtonHost* button_host = shelf_view_; |
1078 | 942 |
1079 std::vector<std::pair<ShelfID, views::View*> > id_map; | 943 std::vector<std::pair<ShelfID, views::View*> > id_map; |
1080 SetupForDragTest(&id_map); | 944 SetupForDragTest(&id_map); |
1081 | 945 |
1082 // Start a mouse drag. | 946 // Start a mouse drag. |
1083 views::View* dragged_button_mouse = | 947 views::View* dragged_button_mouse = |
1084 SimulateDrag(ShelfButtonHost::MOUSE, 1, 3); | 948 SimulateDrag(ShelfButtonHost::MOUSE, 1, 3); |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1152 ShelfButton* button = GetButtonByID(last_added); | 1016 ShelfButton* button = GetButtonByID(last_added); |
1153 ASSERT_EQ(ShelfButton::STATE_RUNNING, button->state()); | 1017 ASSERT_EQ(ShelfButton::STATE_RUNNING, button->state()); |
1154 item.status = STATUS_ACTIVE; | 1018 item.status = STATUS_ACTIVE; |
1155 model_->Set(index, item); | 1019 model_->Set(index, item); |
1156 ASSERT_EQ(ShelfButton::STATE_ACTIVE, button->state()); | 1020 ASSERT_EQ(ShelfButton::STATE_ACTIVE, button->state()); |
1157 item.status = STATUS_ATTENTION; | 1021 item.status = STATUS_ATTENTION; |
1158 model_->Set(index, item); | 1022 model_->Set(index, item); |
1159 ASSERT_EQ(ShelfButton::STATE_ATTENTION, button->state()); | 1023 ASSERT_EQ(ShelfButton::STATE_ATTENTION, button->state()); |
1160 } | 1024 } |
1161 | 1025 |
1162 TEST_F(ShelfViewLegacyShelfLayoutTest, | |
1163 ShelfItemPositionReflectedOnStateChanged) { | |
1164 // All buttons should be visible. | |
1165 ASSERT_EQ(test_api_->GetButtonCount(), | |
1166 test_api_->GetLastVisibleIndex() + 1); | |
1167 | |
1168 // Add 2 items to the shelf. | |
1169 ShelfID item1_id = AddPlatformApp(); | |
1170 ShelfID item2_id = AddPlatformAppNoWait(); | |
1171 ShelfButton* item1_button = GetButtonByID(item1_id); | |
1172 ShelfButton* item2_button = GetButtonByID(item2_id); | |
1173 | |
1174 ShelfButton::State state_mask = static_cast<ShelfButton::State>( | |
1175 ShelfButton::STATE_NORMAL | ShelfButton::STATE_HOVERED | | |
1176 ShelfButton::STATE_RUNNING | ShelfButton::STATE_ACTIVE | | |
1177 ShelfButton::STATE_ATTENTION | ShelfButton::STATE_FOCUSED); | |
1178 | |
1179 // Clear the button states. | |
1180 item1_button->ClearState(state_mask); | |
1181 item2_button->ClearState(state_mask); | |
1182 | |
1183 // Since default alignment in tests is bottom, state is reflected in y-axis. | |
1184 ASSERT_EQ(item1_button->GetIconBounds().y(), | |
1185 item2_button->GetIconBounds().y()); | |
1186 item1_button->AddState(ShelfButton::STATE_HOVERED); | |
1187 ASSERT_NE(item1_button->GetIconBounds().y(), | |
1188 item2_button->GetIconBounds().y()); | |
1189 item1_button->ClearState(ShelfButton::STATE_HOVERED); | |
1190 } | |
1191 | |
1192 // Confirm that item status changes are reflected in the buttons | 1026 // Confirm that item status changes are reflected in the buttons |
1193 // for platform apps. | 1027 // for platform apps. |
1194 TEST_F(ShelfViewTest, ShelfItemStatusPlatformApp) { | 1028 TEST_F(ShelfViewTest, ShelfItemStatusPlatformApp) { |
1195 // All buttons should be visible. | 1029 // All buttons should be visible. |
1196 ASSERT_EQ(test_api_->GetButtonCount(), | 1030 ASSERT_EQ(test_api_->GetButtonCount(), |
1197 test_api_->GetLastVisibleIndex() + 1); | 1031 test_api_->GetLastVisibleIndex() + 1); |
1198 | 1032 |
1199 // Add platform app button. | 1033 // Add platform app button. |
1200 ShelfID last_added = AddPlatformApp(); | 1034 ShelfID last_added = AddPlatformApp(); |
1201 ShelfItem item = GetItemByID(last_added); | 1035 ShelfItem item = GetItemByID(last_added); |
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1439 AddPlatformAppNoWait(); | 1273 AddPlatformAppNoWait(); |
1440 while (!test_api_->IsOverflowButtonVisible()) { | 1274 while (!test_api_->IsOverflowButtonVisible()) { |
1441 test_api_->RunMessageLoopUntilAnimationsDone(); | 1275 test_api_->RunMessageLoopUntilAnimationsDone(); |
1442 AddPlatformAppNoWait(); | 1276 AddPlatformAppNoWait(); |
1443 ++items_added; | 1277 ++items_added; |
1444 ASSERT_LT(items_added, 10000); | 1278 ASSERT_LT(items_added, 10000); |
1445 } | 1279 } |
1446 | 1280 |
1447 // Resize shelf view with that animation running and stay overflown. | 1281 // Resize shelf view with that animation running and stay overflown. |
1448 gfx::Rect bounds = shelf_view_->bounds(); | 1282 gfx::Rect bounds = shelf_view_->bounds(); |
1449 bounds.set_width(bounds.width() - kShelfPreferredSize); | 1283 bounds.set_width(bounds.width() - kShelfSize); |
1450 shelf_view_->SetBoundsRect(bounds); | 1284 shelf_view_->SetBoundsRect(bounds); |
1451 ASSERT_TRUE(test_api_->IsOverflowButtonVisible()); | 1285 ASSERT_TRUE(test_api_->IsOverflowButtonVisible()); |
1452 | 1286 |
1453 // Finish the animation. | 1287 // Finish the animation. |
1454 test_api_->RunMessageLoopUntilAnimationsDone(); | 1288 test_api_->RunMessageLoopUntilAnimationsDone(); |
1455 | 1289 |
1456 // App list button should ends up in its new ideal bounds. | 1290 // App list button should ends up in its new ideal bounds. |
1457 const int app_list_button_index = test_api_->GetButtonCount() - 1; | 1291 const int app_list_button_index = test_api_->GetButtonCount() - 1; |
1458 const gfx::Rect& app_list_ideal_bounds = | 1292 const gfx::Rect& app_list_ideal_bounds = |
1459 test_api_->GetIdealBoundsByIndex(app_list_button_index); | 1293 test_api_->GetIdealBoundsByIndex(app_list_button_index); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1511 test_for_overflow_view.RunMessageLoopUntilAnimationsDone(); | 1345 test_for_overflow_view.RunMessageLoopUntilAnimationsDone(); |
1512 EXPECT_EQ(bubble_size.width(), | 1346 EXPECT_EQ(bubble_size.width(), |
1513 test_for_overflow_view.GetPreferredSize().width()); | 1347 test_for_overflow_view.GetPreferredSize().width()); |
1514 | 1348 |
1515 generator.ReleaseLeftButton(); | 1349 generator.ReleaseLeftButton(); |
1516 test_for_overflow_view.RunMessageLoopUntilAnimationsDone(); | 1350 test_for_overflow_view.RunMessageLoopUntilAnimationsDone(); |
1517 EXPECT_EQ(bubble_size.width(), | 1351 EXPECT_EQ(bubble_size.width(), |
1518 test_for_overflow_view.GetPreferredSize().width()); | 1352 test_for_overflow_view.GetPreferredSize().width()); |
1519 } | 1353 } |
1520 | 1354 |
1521 // Check that the first item in the list follows Fitt's law by including the | |
1522 // first pixel and being therefore bigger then the others. | |
1523 TEST_F(ShelfViewLegacyShelfLayoutTest, CheckFittsLaw) { | |
1524 // All buttons should be visible. | |
1525 ASSERT_EQ(test_api_->GetButtonCount(), | |
1526 test_api_->GetLastVisibleIndex() + 1); | |
1527 gfx::Rect ideal_bounds_0 = test_api_->GetIdealBoundsByIndex(0); | |
1528 gfx::Rect ideal_bounds_1 = test_api_->GetIdealBoundsByIndex(1); | |
1529 EXPECT_GT(ideal_bounds_0.width(), ideal_bounds_1.width()); | |
1530 } | |
1531 | |
1532 // Check the drag insertion bounds of scrolled overflow bubble. | 1355 // Check the drag insertion bounds of scrolled overflow bubble. |
1533 TEST_F(ShelfViewTest, CheckDragInsertBoundsOfScrolledOverflowBubble) { | 1356 TEST_F(ShelfViewTest, CheckDragInsertBoundsOfScrolledOverflowBubble) { |
1534 UpdateDisplay("400x300"); | 1357 UpdateDisplay("400x300"); |
1535 | 1358 |
1536 EXPECT_EQ(2, model_->item_count()); | 1359 EXPECT_EQ(2, model_->item_count()); |
1537 | 1360 |
1538 AddButtonsUntilOverflow(); | 1361 AddButtonsUntilOverflow(); |
1539 | 1362 |
1540 // Show overflow bubble. | 1363 // Show overflow bubble. |
1541 test_api_->ShowOverflowBubble(); | 1364 test_api_->ShowOverflowBubble(); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1585 // win8-aura doesn't support multiple display. | 1408 // win8-aura doesn't support multiple display. |
1586 if (!SupportsMultipleDisplays()) | 1409 if (!SupportsMultipleDisplays()) |
1587 return; | 1410 return; |
1588 | 1411 |
1589 UpdateDisplay("800x600,800x600"); | 1412 UpdateDisplay("800x600,800x600"); |
1590 Shelf* secondary_shelf = Shelf::ForWindow(Shell::GetAllRootWindows()[1]); | 1413 Shelf* secondary_shelf = Shelf::ForWindow(Shell::GetAllRootWindows()[1]); |
1591 ShelfView* shelf_view_for_secondary = | 1414 ShelfView* shelf_view_for_secondary = |
1592 ShelfTestAPI(secondary_shelf).shelf_view(); | 1415 ShelfTestAPI(secondary_shelf).shelf_view(); |
1593 | 1416 |
1594 // The bounds should be big enough for 4 buttons + overflow chevron. | 1417 // The bounds should be big enough for 4 buttons + overflow chevron. |
1595 shelf_view_for_secondary->SetBounds( | 1418 shelf_view_for_secondary->SetBounds(0, 0, 500, kShelfSize); |
1596 0, 0, 500, ShelfLayoutManager::GetPreferredShelfSize()); | |
1597 | 1419 |
1598 ShelfViewTestAPI test_api_for_secondary(shelf_view_for_secondary); | 1420 ShelfViewTestAPI test_api_for_secondary(shelf_view_for_secondary); |
1599 // Speeds up animation for test. | 1421 // Speeds up animation for test. |
1600 test_api_for_secondary.SetAnimationDuration(1); | 1422 test_api_for_secondary.SetAnimationDuration(1); |
1601 | 1423 |
1602 AddButtonsUntilOverflow(); | 1424 AddButtonsUntilOverflow(); |
1603 | 1425 |
1604 // Test #1: Test drag insertion bounds of primary shelf. | 1426 // Test #1: Test drag insertion bounds of primary shelf. |
1605 // Show overflow bubble. | 1427 // Show overflow bubble. |
1606 test_api_->ShowOverflowBubble(); | 1428 test_api_->ShowOverflowBubble(); |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1745 test_api_->RunMessageLoopUntilAnimationsDone(); | 1567 test_api_->RunMessageLoopUntilAnimationsDone(); |
1746 CheckAllItemsAreInBounds(); | 1568 CheckAllItemsAreInBounds(); |
1747 } | 1569 } |
1748 | 1570 |
1749 INSTANTIATE_TEST_CASE_P(LtrRtl, ShelfViewTextDirectionTest, testing::Bool()); | 1571 INSTANTIATE_TEST_CASE_P(LtrRtl, ShelfViewTextDirectionTest, testing::Bool()); |
1750 INSTANTIATE_TEST_CASE_P(VisibleBounds, ShelfViewVisibleBoundsTest, | 1572 INSTANTIATE_TEST_CASE_P(VisibleBounds, ShelfViewVisibleBoundsTest, |
1751 testing::Bool()); | 1573 testing::Bool()); |
1752 | 1574 |
1753 } // namespace test | 1575 } // namespace test |
1754 } // namespace ash | 1576 } // namespace ash |
OLD | NEW |