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 "base/mac/foundation_util.h" | 5 #include "base/mac/foundation_util.h" |
6 #include "base/memory/scoped_nsobject.h" | 6 #include "base/mac/scoped_nsobject.h" |
7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
8 #include "skia/ext/skia_utils_mac.h" | 8 #include "skia/ext/skia_utils_mac.h" |
9 #import "testing/gtest_mac.h" | 9 #import "testing/gtest_mac.h" |
10 #include "ui/app_list/app_list_constants.h" | 10 #include "ui/app_list/app_list_constants.h" |
11 #include "ui/app_list/app_list_item_model.h" | 11 #include "ui/app_list/app_list_item_model.h" |
12 #import "ui/app_list/cocoa/apps_collection_view_drag_manager.h" | 12 #import "ui/app_list/cocoa/apps_collection_view_drag_manager.h" |
13 #import "ui/app_list/cocoa/apps_grid_controller.h" | 13 #import "ui/app_list/cocoa/apps_grid_controller.h" |
14 #import "ui/app_list/cocoa/apps_grid_view_item.h" | 14 #import "ui/app_list/cocoa/apps_grid_view_item.h" |
15 #import "ui/app_list/cocoa/apps_pagination_model_observer.h" | 15 #import "ui/app_list/cocoa/apps_pagination_model_observer.h" |
16 #import "ui/app_list/cocoa/test/apps_grid_controller_test_helper.h" | 16 #import "ui/app_list/cocoa/test/apps_grid_controller_test_helper.h" |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 [test_window() makePretendKeyWindowAndSetFirstResponder: | 107 [test_window() makePretendKeyWindowAndSetFirstResponder: |
108 [apps_grid_controller_ collectionViewAtPageIndex:0]]; | 108 [apps_grid_controller_ collectionViewAtPageIndex:0]]; |
109 } | 109 } |
110 | 110 |
111 virtual void TearDown() OVERRIDE { | 111 virtual void TearDown() OVERRIDE { |
112 owned_apps_grid_controller_.reset(); | 112 owned_apps_grid_controller_.reset(); |
113 AppsGridControllerTestHelper::TearDown(); | 113 AppsGridControllerTestHelper::TearDown(); |
114 } | 114 } |
115 | 115 |
116 private: | 116 private: |
117 scoped_nsobject<AppsGridController> owned_apps_grid_controller_; | 117 base::scoped_nsobject<AppsGridController> owned_apps_grid_controller_; |
118 scoped_ptr<AppListTestViewDelegate> owned_delegate_; | 118 scoped_ptr<AppListTestViewDelegate> owned_delegate_; |
119 | 119 |
120 DISALLOW_COPY_AND_ASSIGN(AppsGridControllerTest); | 120 DISALLOW_COPY_AND_ASSIGN(AppsGridControllerTest); |
121 }; | 121 }; |
122 | 122 |
123 class AppListItemWithMenu : public AppListItemModel { | 123 class AppListItemWithMenu : public AppListItemModel { |
124 public: | 124 public: |
125 AppListItemWithMenu(const std::string& title) : menu_model_(NULL) { | 125 AppListItemWithMenu(const std::string& title) : menu_model_(NULL) { |
126 SetTitle(title); | 126 SetTitle(title); |
127 menu_model_.AddItem(0, UTF8ToUTF16("Menu For: " + title)); | 127 menu_model_.AddItem(0, UTF8ToUTF16("Menu For: " + title)); |
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
495 SimulateMouseEnterItemAt(1); | 495 SimulateMouseEnterItemAt(1); |
496 EXPECT_EQ(GetItemViewAt(1), GetSelectedView()); | 496 EXPECT_EQ(GetItemViewAt(1), GetSelectedView()); |
497 SimulateMouseExitItemAt(0); | 497 SimulateMouseExitItemAt(0); |
498 EXPECT_EQ(GetItemViewAt(1), GetSelectedView()); | 498 EXPECT_EQ(GetItemViewAt(1), GetSelectedView()); |
499 SimulateMouseExitItemAt(1); | 499 SimulateMouseExitItemAt(1); |
500 EXPECT_EQ(nil, GetSelectedView()); | 500 EXPECT_EQ(nil, GetSelectedView()); |
501 } | 501 } |
502 | 502 |
503 // Test AppsGridPaginationObserver totalPagesChanged(). | 503 // Test AppsGridPaginationObserver totalPagesChanged(). |
504 TEST_F(AppsGridControllerTest, PaginationObserverPagesChanged) { | 504 TEST_F(AppsGridControllerTest, PaginationObserverPagesChanged) { |
505 scoped_nsobject<TestPaginationObserver> observer( | 505 base::scoped_nsobject<TestPaginationObserver> observer( |
506 [[TestPaginationObserver alloc] init]); | 506 [[TestPaginationObserver alloc] init]); |
507 [apps_grid_controller_ setPaginationObserver:observer]; | 507 [apps_grid_controller_ setPaginationObserver:observer]; |
508 | 508 |
509 // Test totalPagesChanged. | 509 // Test totalPagesChanged. |
510 model()->PopulateApps(kItemsPerPage); | 510 model()->PopulateApps(kItemsPerPage); |
511 EXPECT_EQ(0, [observer totalPagesChangedCount]); | 511 EXPECT_EQ(0, [observer totalPagesChangedCount]); |
512 EXPECT_EQ(1u, [apps_grid_controller_ pageCount]); | 512 EXPECT_EQ(1u, [apps_grid_controller_ pageCount]); |
513 model()->PopulateApps(1); | 513 model()->PopulateApps(1); |
514 EXPECT_EQ(1, [observer totalPagesChangedCount]); | 514 EXPECT_EQ(1, [observer totalPagesChangedCount]); |
515 EXPECT_EQ(2u, [apps_grid_controller_ pageCount]); | 515 EXPECT_EQ(2u, [apps_grid_controller_ pageCount]); |
516 ReplaceTestModel(0); | 516 ReplaceTestModel(0); |
517 EXPECT_EQ(2, [observer totalPagesChangedCount]); | 517 EXPECT_EQ(2, [observer totalPagesChangedCount]); |
518 EXPECT_EQ(1u, [apps_grid_controller_ pageCount]); | 518 EXPECT_EQ(1u, [apps_grid_controller_ pageCount]); |
519 ReplaceTestModel(kItemsPerPage * 3 + 1); | 519 ReplaceTestModel(kItemsPerPage * 3 + 1); |
520 EXPECT_EQ(3, [observer totalPagesChangedCount]); | 520 EXPECT_EQ(3, [observer totalPagesChangedCount]); |
521 EXPECT_EQ(4u, [apps_grid_controller_ pageCount]); | 521 EXPECT_EQ(4u, [apps_grid_controller_ pageCount]); |
522 | 522 |
523 EXPECT_FALSE([observer readVisibilityDidChange]); | 523 EXPECT_FALSE([observer readVisibilityDidChange]); |
524 EXPECT_EQ(0, [observer selectedPageChangedCount]); | 524 EXPECT_EQ(0, [observer selectedPageChangedCount]); |
525 | 525 |
526 [apps_grid_controller_ setPaginationObserver:nil]; | 526 [apps_grid_controller_ setPaginationObserver:nil]; |
527 } | 527 } |
528 | 528 |
529 // Test AppsGridPaginationObserver selectedPageChanged(). | 529 // Test AppsGridPaginationObserver selectedPageChanged(). |
530 TEST_F(AppsGridControllerTest, PaginationObserverSelectedPageChanged) { | 530 TEST_F(AppsGridControllerTest, PaginationObserverSelectedPageChanged) { |
531 scoped_nsobject<TestPaginationObserver> observer( | 531 base::scoped_nsobject<TestPaginationObserver> observer( |
532 [[TestPaginationObserver alloc] init]); | 532 [[TestPaginationObserver alloc] init]); |
533 [apps_grid_controller_ setPaginationObserver:observer]; | 533 [apps_grid_controller_ setPaginationObserver:observer]; |
534 EXPECT_EQ(0, [[NSAnimationContext currentContext] duration]); | 534 EXPECT_EQ(0, [[NSAnimationContext currentContext] duration]); |
535 | 535 |
536 ReplaceTestModel(kItemsPerPage * 3 + 1); | 536 ReplaceTestModel(kItemsPerPage * 3 + 1); |
537 EXPECT_EQ(1, [observer totalPagesChangedCount]); | 537 EXPECT_EQ(1, [observer totalPagesChangedCount]); |
538 EXPECT_EQ(4u, [apps_grid_controller_ pageCount]); | 538 EXPECT_EQ(4u, [apps_grid_controller_ pageCount]); |
539 | 539 |
540 EXPECT_FALSE([observer readVisibilityDidChange]); | 540 EXPECT_FALSE([observer readVisibilityDidChange]); |
541 EXPECT_EQ(0, [observer selectedPageChangedCount]); | 541 EXPECT_EQ(0, [observer selectedPageChangedCount]); |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
742 // Scroll to end again, and keep dragging (should be ignored). | 742 // Scroll to end again, and keep dragging (should be ignored). |
743 [apps_grid_controller_ scrollToPage:2]; | 743 [apps_grid_controller_ scrollToPage:2]; |
744 [drag_manager onMouseDragged:mouse_at_cell_0]; | 744 [drag_manager onMouseDragged:mouse_at_cell_0]; |
745 EXPECT_EQ(0u, GetPageIndexForItem(1)); | 745 EXPECT_EQ(0u, GetPageIndexForItem(1)); |
746 [drag_manager onMouseUp:mouse_at_cell_0]; | 746 [drag_manager onMouseUp:mouse_at_cell_0]; |
747 EXPECT_EQ(0u, GetPageIndexForItem(1)); | 747 EXPECT_EQ(0u, GetPageIndexForItem(1)); |
748 } | 748 } |
749 | 749 |
750 // Test scrolling when dragging past edge or over the pager. | 750 // Test scrolling when dragging past edge or over the pager. |
751 TEST_F(AppsGridControllerTest, ScrollingWhileDragging) { | 751 TEST_F(AppsGridControllerTest, ScrollingWhileDragging) { |
752 scoped_nsobject<TestPaginationObserver> observer( | 752 base::scoped_nsobject<TestPaginationObserver> observer( |
753 [[TestPaginationObserver alloc] init]); | 753 [[TestPaginationObserver alloc] init]); |
754 [apps_grid_controller_ setPaginationObserver:observer]; | 754 [apps_grid_controller_ setPaginationObserver:observer]; |
755 | 755 |
756 ReplaceTestModel(kItemsPerPage * 3); | 756 ReplaceTestModel(kItemsPerPage * 3); |
757 // Start on the middle page. | 757 // Start on the middle page. |
758 [apps_grid_controller_ scrollToPage:1]; | 758 [apps_grid_controller_ scrollToPage:1]; |
759 NSCollectionView* page = [apps_grid_controller_ collectionViewAtPageIndex:1]; | 759 NSCollectionView* page = [apps_grid_controller_ collectionViewAtPageIndex:1]; |
760 NSEvent* mouse_at_cell_0 = MouseEventInCell(page, 0); | 760 NSEvent* mouse_at_cell_0 = MouseEventInCell(page, 0); |
761 | 761 |
762 NSEvent* at_center = MouseEventForScroll([apps_grid_controller_ view], 0.0); | 762 NSEvent* at_center = MouseEventForScroll([apps_grid_controller_ view], 0.0); |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
832 EXPECT_EQ(1, [menu numberOfItems]); | 832 EXPECT_EQ(1, [menu numberOfItems]); |
833 EXPECT_NSEQ(@"Menu For: Item One", [[menu itemAtIndex:0] title]); | 833 EXPECT_NSEQ(@"Menu For: Item One", [[menu itemAtIndex:0] title]); |
834 | 834 |
835 menu = [page menuForEvent:mouse_at_cell_1]; | 835 menu = [page menuForEvent:mouse_at_cell_1]; |
836 EXPECT_EQ(1, [menu numberOfItems]); | 836 EXPECT_EQ(1, [menu numberOfItems]); |
837 EXPECT_NSEQ(@"Menu For: Item Two", [[menu itemAtIndex:0] title]); | 837 EXPECT_NSEQ(@"Menu For: Item Two", [[menu itemAtIndex:0] title]); |
838 } | 838 } |
839 | 839 |
840 } // namespace test | 840 } // namespace test |
841 } // namespace app_list | 841 } // namespace app_list |
OLD | NEW |