| 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 |