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