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

Side by Side Diff: ash/shelf/shelf_view_unittest.cc

Issue 57453002: ash: Rename LauncherButtonHost to ShelfButtonHost. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ash/shelf/shelf_view.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 318 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 gfx::Rect item_bounds = test_api_->GetBoundsByIndex(i); 329 gfx::Rect item_bounds = test_api_->GetBoundsByIndex(i);
330 EXPECT_TRUE(item_bounds.x() >= 0); 330 EXPECT_TRUE(item_bounds.x() >= 0);
331 EXPECT_TRUE(item_bounds.y() >= 0); 331 EXPECT_TRUE(item_bounds.y() >= 0);
332 EXPECT_TRUE(item_bounds.right() <= shelf_view_bounds.width()); 332 EXPECT_TRUE(item_bounds.right() <= shelf_view_bounds.width());
333 EXPECT_TRUE(item_bounds.bottom() <= shelf_view_bounds.height()); 333 EXPECT_TRUE(item_bounds.bottom() <= shelf_view_bounds.height());
334 } 334 }
335 } 335 }
336 } 336 }
337 337
338 views::View* SimulateButtonPressed( 338 views::View* SimulateButtonPressed(
339 internal::LauncherButtonHost::Pointer pointer, 339 internal::ShelfButtonHost::Pointer pointer,
340 int button_index) { 340 int button_index) {
341 internal::LauncherButtonHost* button_host = shelf_view_; 341 internal::ShelfButtonHost* button_host = shelf_view_;
342 views::View* button = test_api_->GetButton(button_index); 342 views::View* button = test_api_->GetButton(button_index);
343 ui::MouseEvent click_event(ui::ET_MOUSE_PRESSED, 343 ui::MouseEvent click_event(ui::ET_MOUSE_PRESSED,
344 button->bounds().origin(), 344 button->bounds().origin(),
345 button->GetBoundsInScreen().origin(), 0); 345 button->GetBoundsInScreen().origin(), 0);
346 button_host->PointerPressedOnButton(button, pointer, click_event); 346 button_host->PointerPressedOnButton(button, pointer, click_event);
347 return button; 347 return button;
348 } 348 }
349 349
350 views::View* SimulateClick(internal::LauncherButtonHost::Pointer pointer, 350 views::View* SimulateClick(internal::ShelfButtonHost::Pointer pointer,
351 int button_index) { 351 int button_index) {
352 internal::LauncherButtonHost* button_host = shelf_view_; 352 internal::ShelfButtonHost* button_host = shelf_view_;
353 views::View* button = SimulateButtonPressed(pointer, button_index); 353 views::View* button = SimulateButtonPressed(pointer, button_index);
354 button_host->PointerReleasedOnButton(button, 354 button_host->PointerReleasedOnButton(button,
355 internal::LauncherButtonHost::MOUSE, 355 internal::ShelfButtonHost::MOUSE,
356 false); 356 false);
357 return button; 357 return button;
358 } 358 }
359 359
360 views::View* SimulateDrag(internal::LauncherButtonHost::Pointer pointer, 360 views::View* SimulateDrag(internal::ShelfButtonHost::Pointer pointer,
361 int button_index, 361 int button_index,
362 int destination_index) { 362 int destination_index) {
363 internal::LauncherButtonHost* button_host = shelf_view_; 363 internal::ShelfButtonHost* button_host = shelf_view_;
364 views::View* button = SimulateButtonPressed(pointer, button_index); 364 views::View* button = SimulateButtonPressed(pointer, button_index);
365 365
366 // Drag. 366 // Drag.
367 views::View* destination = test_api_->GetButton(destination_index); 367 views::View* destination = test_api_->GetButton(destination_index);
368 ui::MouseEvent drag_event(ui::ET_MOUSE_DRAGGED, 368 ui::MouseEvent drag_event(ui::ET_MOUSE_DRAGGED,
369 destination->bounds().origin(), 369 destination->bounds().origin(),
370 destination->GetBoundsInScreen().origin(), 0); 370 destination->GetBoundsInScreen().origin(), 0);
371 button_host->PointerDraggedOnButton(button, pointer, drag_event); 371 button_host->PointerDraggedOnButton(button, pointer, drag_event);
372 return button; 372 return button;
373 } 373 }
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
775 if (button) { 775 if (button) {
776 EXPECT_TRUE(button->visible()) << "button index=" << i; 776 EXPECT_TRUE(button->visible()) << "button index=" << i;
777 EXPECT_EQ(1.0f, button->layer()->opacity()) << "button index=" << i; 777 EXPECT_EQ(1.0f, button->layer()->opacity()) << "button index=" << i;
778 } 778 }
779 } 779 }
780 } 780 }
781 781
782 // Check that model changes are handled correctly while a launcher icon is being 782 // Check that model changes are handled correctly while a launcher icon is being
783 // dragged. 783 // dragged.
784 TEST_F(ShelfViewTest, ModelChangesWhileDragging) { 784 TEST_F(ShelfViewTest, ModelChangesWhileDragging) {
785 internal::LauncherButtonHost* button_host = shelf_view_; 785 internal::ShelfButtonHost* button_host = shelf_view_;
786 786
787 std::vector<std::pair<LauncherID, views::View*> > id_map; 787 std::vector<std::pair<LauncherID, views::View*> > id_map;
788 SetupForDragTest(&id_map); 788 SetupForDragTest(&id_map);
789 789
790 // Dragging browser shortcut at index 1. 790 // Dragging browser shortcut at index 1.
791 EXPECT_TRUE(model_->items()[1].type == TYPE_BROWSER_SHORTCUT); 791 EXPECT_TRUE(model_->items()[1].type == TYPE_BROWSER_SHORTCUT);
792 views::View* dragged_button = SimulateDrag( 792 views::View* dragged_button = SimulateDrag(
793 internal::LauncherButtonHost::MOUSE, 1, 3); 793 internal::ShelfButtonHost::MOUSE, 1, 3);
794 std::rotate(id_map.begin() + 1, 794 std::rotate(id_map.begin() + 1,
795 id_map.begin() + 2, 795 id_map.begin() + 2,
796 id_map.begin() + 4); 796 id_map.begin() + 4);
797 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 797 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
798 button_host->PointerReleasedOnButton(dragged_button, 798 button_host->PointerReleasedOnButton(dragged_button,
799 internal::LauncherButtonHost::MOUSE, 799 internal::ShelfButtonHost::MOUSE,
800 false); 800 false);
801 EXPECT_TRUE(model_->items()[3].type == TYPE_BROWSER_SHORTCUT); 801 EXPECT_TRUE(model_->items()[3].type == TYPE_BROWSER_SHORTCUT);
802 802
803 // Dragging changes model order. 803 // Dragging changes model order.
804 dragged_button = SimulateDrag( 804 dragged_button = SimulateDrag(internal::ShelfButtonHost::MOUSE, 1, 3);
805 internal::LauncherButtonHost::MOUSE, 1, 3);
806 std::rotate(id_map.begin() + 1, 805 std::rotate(id_map.begin() + 1,
807 id_map.begin() + 2, 806 id_map.begin() + 2,
808 id_map.begin() + 4); 807 id_map.begin() + 4);
809 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 808 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
810 809
811 // Cancelling the drag operation restores previous order. 810 // Cancelling the drag operation restores previous order.
812 button_host->PointerReleasedOnButton(dragged_button, 811 button_host->PointerReleasedOnButton(dragged_button,
813 internal::LauncherButtonHost::MOUSE, 812 internal::ShelfButtonHost::MOUSE,
814 true); 813 true);
815 std::rotate(id_map.begin() + 1, 814 std::rotate(id_map.begin() + 1,
816 id_map.begin() + 3, 815 id_map.begin() + 3,
817 id_map.begin() + 4); 816 id_map.begin() + 4);
818 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 817 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
819 818
820 // Deleting an item keeps the remaining intact. 819 // Deleting an item keeps the remaining intact.
821 dragged_button = SimulateDrag(internal::LauncherButtonHost::MOUSE, 1, 3); 820 dragged_button = SimulateDrag(internal::ShelfButtonHost::MOUSE, 1, 3);
822 model_->RemoveItemAt(1); 821 model_->RemoveItemAt(1);
823 id_map.erase(id_map.begin() + 1); 822 id_map.erase(id_map.begin() + 1);
824 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 823 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
825 button_host->PointerReleasedOnButton(dragged_button, 824 button_host->PointerReleasedOnButton(dragged_button,
826 internal::LauncherButtonHost::MOUSE, 825 internal::ShelfButtonHost::MOUSE,
827 false); 826 false);
828 827
829 // Adding a launcher item cancels the drag and respects the order. 828 // Adding a launcher item cancels the drag and respects the order.
830 dragged_button = SimulateDrag(internal::LauncherButtonHost::MOUSE, 1, 3); 829 dragged_button = SimulateDrag(internal::ShelfButtonHost::MOUSE, 1, 3);
831 LauncherID new_id = AddAppShortcut(); 830 LauncherID new_id = AddAppShortcut();
832 id_map.insert(id_map.begin() + 6, 831 id_map.insert(id_map.begin() + 6,
833 std::make_pair(new_id, GetButtonByID(new_id))); 832 std::make_pair(new_id, GetButtonByID(new_id)));
834 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 833 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
835 button_host->PointerReleasedOnButton(dragged_button, 834 button_host->PointerReleasedOnButton(dragged_button,
836 internal::LauncherButtonHost::MOUSE, 835 internal::ShelfButtonHost::MOUSE,
837 false); 836 false);
838 837
839 // Adding a launcher item at the end (i.e. a panel) canels drag and respects 838 // Adding a launcher item at the end (i.e. a panel) canels drag and respects
840 // the order. 839 // the order.
841 dragged_button = SimulateDrag(internal::LauncherButtonHost::MOUSE, 1, 3); 840 dragged_button = SimulateDrag(internal::ShelfButtonHost::MOUSE, 1, 3);
842 new_id = AddPanel(); 841 new_id = AddPanel();
843 id_map.insert(id_map.begin() + 7, 842 id_map.insert(id_map.begin() + 7,
844 std::make_pair(new_id, GetButtonByID(new_id))); 843 std::make_pair(new_id, GetButtonByID(new_id)));
845 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 844 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
846 button_host->PointerReleasedOnButton(dragged_button, 845 button_host->PointerReleasedOnButton(dragged_button,
847 internal::LauncherButtonHost::MOUSE, 846 internal::ShelfButtonHost::MOUSE,
848 false); 847 false);
849 } 848 }
850 849
851 TEST_F(ShelfViewLegacyShelfLayoutTest, ModelChangesWhileDragging) { 850 TEST_F(ShelfViewLegacyShelfLayoutTest, ModelChangesWhileDragging) {
852 internal::LauncherButtonHost* button_host = shelf_view_; 851 internal::ShelfButtonHost* button_host = shelf_view_;
853 852
854 std::vector<std::pair<LauncherID, views::View*> > id_map; 853 std::vector<std::pair<LauncherID, views::View*> > id_map;
855 SetupForDragTest(&id_map); 854 SetupForDragTest(&id_map);
856 855
857 // Dragging browser shortcut at index 0. 856 // Dragging browser shortcut at index 0.
858 EXPECT_TRUE(model_->items()[0].type == TYPE_BROWSER_SHORTCUT); 857 EXPECT_TRUE(model_->items()[0].type == TYPE_BROWSER_SHORTCUT);
859 views::View* dragged_button = SimulateDrag( 858 views::View* dragged_button = SimulateDrag(
860 internal::LauncherButtonHost::MOUSE, 0, 2); 859 internal::ShelfButtonHost::MOUSE, 0, 2);
861 std::rotate(id_map.begin(), 860 std::rotate(id_map.begin(),
862 id_map.begin() + 1, 861 id_map.begin() + 1,
863 id_map.begin() + 3); 862 id_map.begin() + 3);
864 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 863 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
865 button_host->PointerReleasedOnButton(dragged_button, 864 button_host->PointerReleasedOnButton(dragged_button,
866 internal::LauncherButtonHost::MOUSE, 865 internal::ShelfButtonHost::MOUSE,
867 false); 866 false);
868 EXPECT_TRUE(model_->items()[2].type == TYPE_BROWSER_SHORTCUT); 867 EXPECT_TRUE(model_->items()[2].type == TYPE_BROWSER_SHORTCUT);
869 868
870 // Dragging changes model order. 869 // Dragging changes model order.
871 dragged_button = SimulateDrag( 870 dragged_button = SimulateDrag(internal::ShelfButtonHost::MOUSE, 0, 2);
872 internal::LauncherButtonHost::MOUSE, 0, 2);
873 std::rotate(id_map.begin(), 871 std::rotate(id_map.begin(),
874 id_map.begin() + 1, 872 id_map.begin() + 1,
875 id_map.begin() + 3); 873 id_map.begin() + 3);
876 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 874 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
877 875
878 // Cancelling the drag operation restores previous order. 876 // Cancelling the drag operation restores previous order.
879 button_host->PointerReleasedOnButton(dragged_button, 877 button_host->PointerReleasedOnButton(dragged_button,
880 internal::LauncherButtonHost::MOUSE, 878 internal::ShelfButtonHost::MOUSE,
881 true); 879 true);
882 std::rotate(id_map.begin(), 880 std::rotate(id_map.begin(),
883 id_map.begin() + 2, 881 id_map.begin() + 2,
884 id_map.begin() + 3); 882 id_map.begin() + 3);
885 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 883 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
886 884
887 // Deleting an item keeps the remaining intact. 885 // Deleting an item keeps the remaining intact.
888 dragged_button = SimulateDrag(internal::LauncherButtonHost::MOUSE, 0, 2); 886 dragged_button = SimulateDrag(internal::ShelfButtonHost::MOUSE, 0, 2);
889 model_->RemoveItemAt(1); 887 model_->RemoveItemAt(1);
890 id_map.erase(id_map.begin() + 1); 888 id_map.erase(id_map.begin() + 1);
891 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 889 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
892 button_host->PointerReleasedOnButton(dragged_button, 890 button_host->PointerReleasedOnButton(dragged_button,
893 internal::LauncherButtonHost::MOUSE, 891 internal::ShelfButtonHost::MOUSE,
894 false); 892 false);
895 893
896 // Adding a launcher item cancels the drag and respects the order. 894 // Adding a launcher item cancels the drag and respects the order.
897 dragged_button = SimulateDrag(internal::LauncherButtonHost::MOUSE, 0, 2); 895 dragged_button = SimulateDrag(internal::ShelfButtonHost::MOUSE, 0, 2);
898 LauncherID new_id = AddAppShortcut(); 896 LauncherID new_id = AddAppShortcut();
899 id_map.insert(id_map.begin() + 5, 897 id_map.insert(id_map.begin() + 5,
900 std::make_pair(new_id, GetButtonByID(new_id))); 898 std::make_pair(new_id, GetButtonByID(new_id)));
901 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 899 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
902 button_host->PointerReleasedOnButton(dragged_button, 900 button_host->PointerReleasedOnButton(dragged_button,
903 internal::LauncherButtonHost::MOUSE, 901 internal::ShelfButtonHost::MOUSE,
904 false); 902 false);
905 903
906 // Adding a launcher item at the end (i.e. a panel) canels drag and respects 904 // Adding a launcher item at the end (i.e. a panel) canels drag and respects
907 // the order. 905 // the order.
908 dragged_button = SimulateDrag(internal::LauncherButtonHost::MOUSE, 0, 2); 906 dragged_button = SimulateDrag(internal::ShelfButtonHost::MOUSE, 0, 2);
909 new_id = AddPanel(); 907 new_id = AddPanel();
910 id_map.insert(id_map.begin() + 7, 908 id_map.insert(id_map.begin() + 7,
911 std::make_pair(new_id, GetButtonByID(new_id))); 909 std::make_pair(new_id, GetButtonByID(new_id)));
912 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 910 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
913 button_host->PointerReleasedOnButton(dragged_button, 911 button_host->PointerReleasedOnButton(dragged_button,
914 internal::LauncherButtonHost::MOUSE, 912 internal::ShelfButtonHost::MOUSE,
915 false); 913 false);
916 } 914 }
917 915
918 // Check that 2nd drag from the other pointer would be ignored. 916 // Check that 2nd drag from the other pointer would be ignored.
919 TEST_F(ShelfViewTest, SimultaneousDrag) { 917 TEST_F(ShelfViewTest, SimultaneousDrag) {
920 internal::LauncherButtonHost* button_host = shelf_view_; 918 internal::ShelfButtonHost* button_host = shelf_view_;
921 919
922 std::vector<std::pair<LauncherID, views::View*> > id_map; 920 std::vector<std::pair<LauncherID, views::View*> > id_map;
923 SetupForDragTest(&id_map); 921 SetupForDragTest(&id_map);
924 922
925 // Start a mouse drag. 923 // Start a mouse drag.
926 views::View* dragged_button_mouse = SimulateDrag( 924 views::View* dragged_button_mouse = SimulateDrag(
927 internal::LauncherButtonHost::MOUSE, 1, 3); 925 internal::ShelfButtonHost::MOUSE, 1, 3);
928 std::rotate(id_map.begin() + 1, 926 std::rotate(id_map.begin() + 1,
929 id_map.begin() + 2, 927 id_map.begin() + 2,
930 id_map.begin() + 4); 928 id_map.begin() + 4);
931 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 929 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
932 // Attempt a touch drag before the mouse drag finishes. 930 // Attempt a touch drag before the mouse drag finishes.
933 views::View* dragged_button_touch = SimulateDrag( 931 views::View* dragged_button_touch = SimulateDrag(
934 internal::LauncherButtonHost::TOUCH, 4, 2); 932 internal::ShelfButtonHost::TOUCH, 4, 2);
935 933
936 // Nothing changes since 2nd drag is ignored. 934 // Nothing changes since 2nd drag is ignored.
937 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 935 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
938 936
939 // Finish the mouse drag. 937 // Finish the mouse drag.
940 button_host->PointerReleasedOnButton(dragged_button_mouse, 938 button_host->PointerReleasedOnButton(dragged_button_mouse,
941 internal::LauncherButtonHost::MOUSE, 939 internal::ShelfButtonHost::MOUSE,
942 false); 940 false);
943 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 941 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
944 942
945 // Now start a touch drag. 943 // Now start a touch drag.
946 dragged_button_touch = SimulateDrag( 944 dragged_button_touch = SimulateDrag(internal::ShelfButtonHost::TOUCH, 4, 2);
947 internal::LauncherButtonHost::TOUCH, 4, 2);
948 std::rotate(id_map.begin() + 3, 945 std::rotate(id_map.begin() + 3,
949 id_map.begin() + 4, 946 id_map.begin() + 4,
950 id_map.begin() + 5); 947 id_map.begin() + 5);
951 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 948 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
952 949
953 // And attempt a mouse drag before the touch drag finishes. 950 // And attempt a mouse drag before the touch drag finishes.
954 dragged_button_mouse = SimulateDrag( 951 dragged_button_mouse = SimulateDrag(internal::ShelfButtonHost::MOUSE, 1, 2);
955 internal::LauncherButtonHost::MOUSE, 1, 2);
956 952
957 // Nothing changes since 2nd drag is ignored. 953 // Nothing changes since 2nd drag is ignored.
958 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 954 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
959 955
960 button_host->PointerReleasedOnButton(dragged_button_touch, 956 button_host->PointerReleasedOnButton(dragged_button_touch,
961 internal::LauncherButtonHost::TOUCH, 957 internal::ShelfButtonHost::TOUCH,
962 false); 958 false);
963 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 959 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
964 } 960 }
965 961
966 // Check that clicking first on one item and then dragging another works as 962 // Check that clicking first on one item and then dragging another works as
967 // expected. 963 // expected.
968 TEST_F(ShelfViewTest, ClickOneDragAnother) { 964 TEST_F(ShelfViewTest, ClickOneDragAnother) {
969 internal::LauncherButtonHost* button_host = shelf_view_; 965 internal::ShelfButtonHost* button_host = shelf_view_;
970 966
971 std::vector<std::pair<LauncherID, views::View*> > id_map; 967 std::vector<std::pair<LauncherID, views::View*> > id_map;
972 SetupForDragTest(&id_map); 968 SetupForDragTest(&id_map);
973 969
974 // A click on item 1 is simulated. 970 // A click on item 1 is simulated.
975 SimulateClick(internal::LauncherButtonHost::MOUSE, 1); 971 SimulateClick(internal::ShelfButtonHost::MOUSE, 1);
976 972
977 // Dragging browser index at 0 should change the model order correctly. 973 // Dragging browser index at 0 should change the model order correctly.
978 EXPECT_TRUE(model_->items()[1].type == TYPE_BROWSER_SHORTCUT); 974 EXPECT_TRUE(model_->items()[1].type == TYPE_BROWSER_SHORTCUT);
979 views::View* dragged_button = SimulateDrag( 975 views::View* dragged_button = SimulateDrag(
980 internal::LauncherButtonHost::MOUSE, 1, 3); 976 internal::ShelfButtonHost::MOUSE, 1, 3);
981 std::rotate(id_map.begin() + 1, 977 std::rotate(id_map.begin() + 1,
982 id_map.begin() + 2, 978 id_map.begin() + 2,
983 id_map.begin() + 4); 979 id_map.begin() + 4);
984 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map)); 980 ASSERT_NO_FATAL_FAILURE(CheckModelIDs(id_map));
985 button_host->PointerReleasedOnButton(dragged_button, 981 button_host->PointerReleasedOnButton(dragged_button,
986 internal::LauncherButtonHost::MOUSE, 982 internal::ShelfButtonHost::MOUSE,
987 false); 983 false);
988 EXPECT_TRUE(model_->items()[3].type == TYPE_BROWSER_SHORTCUT); 984 EXPECT_TRUE(model_->items()[3].type == TYPE_BROWSER_SHORTCUT);
989 } 985 }
990 986
991 // Confirm that item status changes are reflected in the buttons. 987 // Confirm that item status changes are reflected in the buttons.
992 TEST_F(ShelfViewTest, LauncherItemStatus) { 988 TEST_F(ShelfViewTest, LauncherItemStatus) {
993 ASSERT_EQ(test_api_->GetLastVisibleIndex() + 1, 989 ASSERT_EQ(test_api_->GetLastVisibleIndex() + 1,
994 test_api_->GetButtonCount()); 990 test_api_->GetButtonCount());
995 991
996 // Add platform app button. 992 // Add platform app button.
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
1077 ASSERT_EQ(test_api_->GetLastVisibleIndex() + 1, 1073 ASSERT_EQ(test_api_->GetLastVisibleIndex() + 1,
1078 test_api_->GetButtonCount()); 1074 test_api_->GetButtonCount());
1079 1075
1080 // Prepare some items to the launcher. 1076 // Prepare some items to the launcher.
1081 LauncherID app_button_id = AddAppShortcut(); 1077 LauncherID app_button_id = AddAppShortcut();
1082 LauncherID platform_button_id = AddPlatformApp(); 1078 LauncherID platform_button_id = AddPlatformApp();
1083 1079
1084 internal::LauncherButton* app_button = GetButtonByID(app_button_id); 1080 internal::LauncherButton* app_button = GetButtonByID(app_button_id);
1085 internal::LauncherButton* platform_button = GetButtonByID(platform_button_id); 1081 internal::LauncherButton* platform_button = GetButtonByID(platform_button_id);
1086 1082
1087 internal::LauncherButtonHost* button_host = shelf_view_; 1083 internal::ShelfButtonHost* button_host = shelf_view_;
1088 internal::ShelfTooltipManager* tooltip_manager = 1084 internal::ShelfTooltipManager* tooltip_manager =
1089 shelf_view_->tooltip_manager(); 1085 shelf_view_->tooltip_manager();
1090 1086
1091 button_host->MouseEnteredButton(app_button); 1087 button_host->MouseEnteredButton(app_button);
1092 // There's a delay to show the tooltip, so it's not visible yet. 1088 // There's a delay to show the tooltip, so it's not visible yet.
1093 EXPECT_FALSE(tooltip_manager->IsVisible()); 1089 EXPECT_FALSE(tooltip_manager->IsVisible());
1094 EXPECT_EQ(app_button, GetTooltipAnchorView()); 1090 EXPECT_EQ(app_button, GetTooltipAnchorView());
1095 1091
1096 ShowTooltip(); 1092 ShowTooltip();
1097 EXPECT_TRUE(tooltip_manager->IsVisible()); 1093 EXPECT_TRUE(tooltip_manager->IsVisible());
(...skipping 17 matching lines...) Expand all
1115 button_host->MouseEnteredButton(app_button); 1111 button_host->MouseEnteredButton(app_button);
1116 button_host->MouseExitedButton(app_button); 1112 button_host->MouseExitedButton(app_button);
1117 button_host->MouseEnteredButton(platform_button); 1113 button_host->MouseEnteredButton(platform_button);
1118 EXPECT_FALSE(tooltip_manager->IsVisible()); 1114 EXPECT_FALSE(tooltip_manager->IsVisible());
1119 EXPECT_EQ(platform_button, GetTooltipAnchorView()); 1115 EXPECT_EQ(platform_button, GetTooltipAnchorView());
1120 } 1116 }
1121 1117
1122 // Verify a fix for crash caused by a tooltip update for a deleted launcher 1118 // Verify a fix for crash caused by a tooltip update for a deleted launcher
1123 // button, see crbug.com/288838. 1119 // button, see crbug.com/288838.
1124 TEST_F(ShelfViewTest, RemovingItemClosesTooltip) { 1120 TEST_F(ShelfViewTest, RemovingItemClosesTooltip) {
1125 internal::LauncherButtonHost* button_host = shelf_view_; 1121 internal::ShelfButtonHost* button_host = shelf_view_;
1126 internal::ShelfTooltipManager* tooltip_manager = 1122 internal::ShelfTooltipManager* tooltip_manager =
1127 shelf_view_->tooltip_manager(); 1123 shelf_view_->tooltip_manager();
1128 1124
1129 // Add an item to the launcher. 1125 // Add an item to the launcher.
1130 LauncherID app_button_id = AddAppShortcut(); 1126 LauncherID app_button_id = AddAppShortcut();
1131 internal::LauncherButton* app_button = GetButtonByID(app_button_id); 1127 internal::LauncherButton* app_button = GetButtonByID(app_button_id);
1132 1128
1133 // Spawn a tooltip on that item. 1129 // Spawn a tooltip on that item.
1134 button_host->MouseEnteredButton(app_button); 1130 button_host->MouseEnteredButton(app_button);
1135 ShowTooltip(); 1131 ShowTooltip();
1136 EXPECT_TRUE(tooltip_manager->IsVisible()); 1132 EXPECT_TRUE(tooltip_manager->IsVisible());
1137 1133
1138 // Remove the app shortcut while the tooltip is open. The tooltip should be 1134 // Remove the app shortcut while the tooltip is open. The tooltip should be
1139 // closed. 1135 // closed.
1140 RemoveByID(app_button_id); 1136 RemoveByID(app_button_id);
1141 EXPECT_FALSE(tooltip_manager->IsVisible()); 1137 EXPECT_FALSE(tooltip_manager->IsVisible());
1142 1138
1143 // Change the shelf layout. This should not crash. 1139 // Change the shelf layout. This should not crash.
1144 ash::Shell::GetInstance()->SetShelfAlignment( 1140 ash::Shell::GetInstance()->SetShelfAlignment(
1145 ash::SHELF_ALIGNMENT_LEFT, 1141 ash::SHELF_ALIGNMENT_LEFT,
1146 ash::Shell::GetPrimaryRootWindow()); 1142 ash::Shell::GetPrimaryRootWindow());
1147 } 1143 }
1148 1144
1149 // Changing the shelf alignment closes any open tooltip. 1145 // Changing the shelf alignment closes any open tooltip.
1150 TEST_F(ShelfViewTest, ShelfAlignmentClosesTooltip) { 1146 TEST_F(ShelfViewTest, ShelfAlignmentClosesTooltip) {
1151 internal::LauncherButtonHost* button_host = shelf_view_; 1147 internal::ShelfButtonHost* button_host = shelf_view_;
1152 internal::ShelfTooltipManager* tooltip_manager = 1148 internal::ShelfTooltipManager* tooltip_manager =
1153 shelf_view_->tooltip_manager(); 1149 shelf_view_->tooltip_manager();
1154 1150
1155 // Add an item to the launcher. 1151 // Add an item to the launcher.
1156 LauncherID app_button_id = AddAppShortcut(); 1152 LauncherID app_button_id = AddAppShortcut();
1157 internal::LauncherButton* app_button = GetButtonByID(app_button_id); 1153 internal::LauncherButton* app_button = GetButtonByID(app_button_id);
1158 1154
1159 // Spawn a tooltip on the item. 1155 // Spawn a tooltip on the item.
1160 button_host->MouseEnteredButton(app_button); 1156 button_host->MouseEnteredButton(app_button);
1161 ShowTooltip(); 1157 ShowTooltip();
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
1372 test_api_->RunMessageLoopUntilAnimationsDone(); 1368 test_api_->RunMessageLoopUntilAnimationsDone();
1373 CheckAllItemsAreInBounds(); 1369 CheckAllItemsAreInBounds();
1374 } 1370 }
1375 1371
1376 INSTANTIATE_TEST_CASE_P(LtrRtl, ShelfViewTextDirectionTest, testing::Bool()); 1372 INSTANTIATE_TEST_CASE_P(LtrRtl, ShelfViewTextDirectionTest, testing::Bool());
1377 INSTANTIATE_TEST_CASE_P(VisibleBounds, ShelfViewVisibleBoundsTest, 1373 INSTANTIATE_TEST_CASE_P(VisibleBounds, ShelfViewVisibleBoundsTest,
1378 testing::Bool()); 1374 testing::Bool());
1379 1375
1380 } // namespace test 1376 } // namespace test
1381 } // namespace ash 1377 } // namespace ash
OLDNEW
« no previous file with comments | « ash/shelf/shelf_view.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698