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

Side by Side Diff: ui/app_list/cocoa/app_list_view_controller_unittest.mm

Issue 2131463002: Purge the App Launcher code from Mac (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Zap mac-specific icon assets Created 4 years, 5 months 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
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "base/mac/scoped_nsobject.h"
6 #include "base/macros.h"
7 #import "testing/gtest_mac.h"
8 #import "ui/app_list/cocoa/app_list_view_controller.h"
9 #import "ui/app_list/cocoa/apps_grid_controller.h"
10 #import "ui/app_list/cocoa/test/apps_grid_controller_test_helper.h"
11 #include "ui/app_list/test/app_list_test_model.h"
12 #include "ui/app_list/test/app_list_test_view_delegate.h"
13
14 namespace app_list {
15 namespace test {
16
17 class AppListViewControllerTest : public AppsGridControllerTestHelper {
18 public:
19 AppListViewControllerTest() {}
20
21 void SetUp() override {
22 app_list_view_controller_.reset([[AppListViewController alloc] init]);
23 delegate_.reset(new AppListTestViewDelegate);
24 [app_list_view_controller_ setDelegate:delegate_.get()];
25 SetUpWithGridController([app_list_view_controller_ appsGridController]);
26 [[test_window() contentView] addSubview:[app_list_view_controller_ view]];
27 }
28
29 void TearDown() override {
30 [app_list_view_controller_ setDelegate:NULL];
31 app_list_view_controller_.reset();
32 AppsGridControllerTestHelper::TearDown();
33 }
34
35 void ReplaceTestModel(int item_count) {
36 [app_list_view_controller_ setDelegate:NULL];
37 delegate_.reset(new AppListTestViewDelegate);
38 delegate_->ReplaceTestModel(item_count);
39 [app_list_view_controller_ setDelegate:delegate_.get()];
40 }
41
42 AppListTestModel* model() { return delegate_->GetTestModel(); }
43
44 protected:
45 std::unique_ptr<AppListTestViewDelegate> delegate_;
46 base::scoped_nsobject<AppListViewController> app_list_view_controller_;
47
48 private:
49 DISALLOW_COPY_AND_ASSIGN(AppListViewControllerTest);
50 };
51
52 TEST_VIEW(AppListViewControllerTest, [app_list_view_controller_ view]);
53
54 // Test that adding and removing pages updates the pager.
55 TEST_F(AppListViewControllerTest, PagerSegmentCounts) {
56 NSSegmentedControl* pager = [app_list_view_controller_ pagerControl];
57 EXPECT_EQ(1, [pager segmentCount]);
58
59 ReplaceTestModel(kItemsPerPage * 2);
60 EXPECT_EQ(2, [pager segmentCount]);
61 model()->PopulateApps(1);
62 EXPECT_EQ(3, [pager segmentCount]);
63
64 ReplaceTestModel(1);
65 EXPECT_EQ(1, [pager segmentCount]);
66 }
67
68 // Test that clicking the pager changes pages.
69 TEST_F(AppListViewControllerTest, PagerChangingPage) {
70 NSSegmentedControl* pager = [app_list_view_controller_ pagerControl];
71 ReplaceTestModel(kItemsPerPage * 3);
72 EXPECT_EQ(3, [pager segmentCount]);
73
74 EXPECT_EQ(0, [pager selectedSegment]);
75 EXPECT_EQ(0u, [apps_grid_controller_ visiblePage]);
76 EXPECT_EQ(1.0, [apps_grid_controller_ visiblePortionOfPage:0]);
77 EXPECT_EQ(0.0, [apps_grid_controller_ visiblePortionOfPage:1]);
78
79 // Emulate a click on the second segment to navigate to the second page.
80 [pager setSelectedSegment:1];
81 [[pager target] performSelector:[pager action]
82 withObject:pager];
83
84 EXPECT_EQ(1u, [apps_grid_controller_ visiblePage]);
85 EXPECT_EQ(1, [pager selectedSegment]);
86 EXPECT_EQ(0.0, [apps_grid_controller_ visiblePortionOfPage:0]);
87 EXPECT_EQ(1.0, [apps_grid_controller_ visiblePortionOfPage:1]);
88
89 // Replace with a single page model, and ensure we go back to the first page.
90 ReplaceTestModel(1);
91 EXPECT_EQ(0u, [apps_grid_controller_ visiblePage]);
92 EXPECT_EQ(0, [pager selectedSegment]);
93 EXPECT_EQ(1, [pager segmentCount]);
94 EXPECT_EQ(1.0, [apps_grid_controller_ visiblePortionOfPage:0]);
95 }
96
97 } // namespace test
98 } // namespace app_list
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698