OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 #import <Cocoa/Cocoa.h> | 5 #import <Cocoa/Cocoa.h> |
6 | 6 |
7 #include "base/mac/mac_util.h" | 7 #include "base/mac/mac_util.h" |
8 #include "base/mac/scoped_nsobject.h" | 8 #include "base/mac/scoped_nsobject.h" |
9 #include "chrome/app/chrome_command_ids.h" | 9 #include "chrome/app/chrome_command_ids.h" |
10 #import "chrome/browser/ui/cocoa/browser_window_touch_bar.h" | 10 #import "chrome/browser/ui/cocoa/browser_window_touch_bar.h" |
11 #include "chrome/browser/ui/cocoa/test/cocoa_profile_test.h" | 11 #include "chrome/browser/ui/cocoa/test/cocoa_profile_test.h" |
| 12 #include "chrome/common/pref_names.h" |
| 13 #include "components/prefs/pref_service.h" |
12 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
13 | 15 |
14 class BrowserWindowTouchBarUnitTest : public CocoaProfileTest { | 16 class BrowserWindowTouchBarUnitTest : public CocoaProfileTest { |
15 public: | 17 public: |
16 void SetUp() override { | 18 void SetUp() override { |
17 CocoaProfileTest::SetUp(); | 19 CocoaProfileTest::SetUp(); |
18 ASSERT_TRUE(browser()); | 20 ASSERT_TRUE(browser()); |
19 browserWindowTouchBar_.reset( | 21 browserWindowTouchBar_.reset([[BrowserWindowTouchBar alloc] |
20 [[BrowserWindowTouchBar alloc] initWithBrowser:browser()]); | 22 initWithBrowser:browser() |
| 23 browserWindowController:nil]); |
21 } | 24 } |
22 | 25 |
23 void TearDown() override { CocoaProfileTest::TearDown(); } | 26 void TearDown() override { CocoaProfileTest::TearDown(); } |
24 | 27 |
25 base::scoped_nsobject<BrowserWindowTouchBar> browserWindowTouchBar_; | 28 base::scoped_nsobject<BrowserWindowTouchBar> browserWindowTouchBar_; |
26 }; | 29 }; |
27 | 30 |
28 TEST_F(BrowserWindowTouchBarUnitTest, TouchBarItems) { | 31 TEST_F(BrowserWindowTouchBarUnitTest, TouchBarItems) { |
29 if (!base::mac::IsAtLeastOS10_12()) | 32 if (!base::mac::IsAtLeastOS10_12()) |
30 return; | 33 return; |
31 | 34 |
32 NSTouchBar* touchBar = [browserWindowTouchBar_ makeTouchBar]; | 35 PrefService* prefs = profile()->GetPrefs(); |
33 NSArray* touchBarItemIds = [touchBar itemIdentifiers]; | 36 DCHECK(prefs); |
| 37 prefs->SetBoolean(prefs::kShowHomeButton, true); |
| 38 |
| 39 NSArray* touchBarItemIds = |
| 40 [[browserWindowTouchBar_ makeTouchBar] itemIdentifiers]; |
34 EXPECT_TRUE([touchBarItemIds containsObject:@"BackForwardTouchId"]); | 41 EXPECT_TRUE([touchBarItemIds containsObject:@"BackForwardTouchId"]); |
35 EXPECT_TRUE([touchBarItemIds containsObject:@"ReloadOrStopTouchId"]); | 42 EXPECT_TRUE([touchBarItemIds containsObject:@"ReloadOrStopTouchId"]); |
| 43 EXPECT_TRUE([touchBarItemIds containsObject:@"HomeTouchId"]); |
36 EXPECT_TRUE([touchBarItemIds containsObject:@"SearchTouchId"]); | 44 EXPECT_TRUE([touchBarItemIds containsObject:@"SearchTouchId"]); |
37 EXPECT_TRUE([touchBarItemIds containsObject:@"NewTabTouchId"]); | 45 EXPECT_TRUE([touchBarItemIds containsObject:@"NewTabTouchId"]); |
38 EXPECT_TRUE([touchBarItemIds containsObject:@"StarTouchId"]); | 46 EXPECT_TRUE([touchBarItemIds containsObject:@"StarTouchId"]); |
| 47 |
| 48 prefs->SetBoolean(prefs::kShowHomeButton, false); |
| 49 touchBarItemIds = [[browserWindowTouchBar_ makeTouchBar] itemIdentifiers]; |
| 50 EXPECT_TRUE([touchBarItemIds containsObject:@"BackForwardTouchId"]); |
| 51 EXPECT_TRUE([touchBarItemIds containsObject:@"ReloadOrStopTouchId"]); |
| 52 EXPECT_FALSE([touchBarItemIds containsObject:@"HomeTouchId"]); |
| 53 EXPECT_TRUE([touchBarItemIds containsObject:@"SearchTouchId"]); |
| 54 EXPECT_TRUE([touchBarItemIds containsObject:@"NewTabTouchId"]); |
| 55 EXPECT_TRUE([touchBarItemIds containsObject:@"StarTouchId"]); |
39 } | 56 } |
40 | 57 |
41 TEST_F(BrowserWindowTouchBarUnitTest, ReloadOrStopTouchBarItem) { | 58 TEST_F(BrowserWindowTouchBarUnitTest, ReloadOrStopTouchBarItem) { |
42 if (!base::mac::IsAtLeastOS10_12()) | 59 if (!base::mac::IsAtLeastOS10_12()) |
43 return; | 60 return; |
44 | 61 |
45 NSTouchBar* touchBar = [browserWindowTouchBar_ makeTouchBar]; | 62 NSTouchBar* touchBar = [browserWindowTouchBar_ makeTouchBar]; |
46 [browserWindowTouchBar_ setIsPageLoading:NO]; | 63 [browserWindowTouchBar_ setIsPageLoading:NO]; |
47 NSTouchBarItem* item = | 64 NSTouchBarItem* item = |
48 [browserWindowTouchBar_ touchBar:touchBar | 65 [browserWindowTouchBar_ touchBar:touchBar |
49 makeItemForIdentifier:@"ReloadOrStopTouchId"]; | 66 makeItemForIdentifier:@"ReloadOrStopTouchId"]; |
50 | 67 |
51 EXPECT_EQ(IDC_RELOAD, [[item view] tag]); | 68 EXPECT_EQ(IDC_RELOAD, [[item view] tag]); |
52 | 69 |
53 [browserWindowTouchBar_ setIsPageLoading:YES]; | 70 [browserWindowTouchBar_ setIsPageLoading:YES]; |
54 item = [browserWindowTouchBar_ touchBar:touchBar | 71 item = [browserWindowTouchBar_ touchBar:touchBar |
55 makeItemForIdentifier:@"ReloadOrStopTouchId"]; | 72 makeItemForIdentifier:@"ReloadOrStopTouchId"]; |
56 | 73 |
57 EXPECT_EQ(IDC_STOP, [[item view] tag]); | 74 EXPECT_EQ(IDC_STOP, [[item view] tag]); |
58 } | 75 } |
OLD | NEW |