| Index: chrome/browser/ui/cocoa/browser_window_touch_bar_unittest.mm
|
| diff --git a/chrome/browser/ui/cocoa/browser_window_touch_bar_unittest.mm b/chrome/browser/ui/cocoa/browser_window_touch_bar_unittest.mm
|
| index fa9cdff2391c1fd55117803265d8916ceeaaa98a..94b131aca749137e2aa705031cef26543f85549a 100644
|
| --- a/chrome/browser/ui/cocoa/browser_window_touch_bar_unittest.mm
|
| +++ b/chrome/browser/ui/cocoa/browser_window_touch_bar_unittest.mm
|
| @@ -4,72 +4,131 @@
|
|
|
| #import <Cocoa/Cocoa.h>
|
|
|
| +#include "base/mac/foundation_util.h"
|
| #include "base/mac/mac_util.h"
|
| #include "base/mac/scoped_nsobject.h"
|
| +#include "base/strings/sys_string_conversions.h"
|
| +#include "base/test/scoped_feature_list.h"
|
| #include "chrome/app/chrome_command_ids.h"
|
| +#import "chrome/browser/ui/cocoa/browser_window_controller.h"
|
| #import "chrome/browser/ui/cocoa/browser_window_touch_bar.h"
|
| #include "chrome/browser/ui/cocoa/test/cocoa_profile_test.h"
|
| +#include "chrome/common/chrome_features.h"
|
| #include "chrome/common/pref_names.h"
|
| #include "components/prefs/pref_service.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| +#import "third_party/ocmock/OCMock/OCMock.h"
|
|
|
| class BrowserWindowTouchBarUnitTest : public CocoaProfileTest {
|
| public:
|
| void SetUp() override {
|
| CocoaProfileTest::SetUp();
|
| ASSERT_TRUE(browser());
|
| - browserWindowTouchBar_.reset([[BrowserWindowTouchBar alloc]
|
| - initWithBrowser:browser()
|
| - browserWindowController:nil]);
|
| +
|
| + feature_list.InitAndEnableFeature(features::kBrowserTouchBar);
|
| +
|
| + BOOL yes = YES;
|
| + bwc_ = [OCMockObject mockForClass:[BrowserWindowController class]];
|
| + [[[bwc_ stub] andReturnValue:OCMOCK_VALUE(yes)]
|
| + isKindOfClass:[BrowserWindowController class]];
|
| + [[bwc_ stub] invalidateTouchBar];
|
| +
|
| + touch_bar_.reset([[BrowserWindowTouchBar alloc] initWithBrowser:browser()
|
| + browserWindowController:bwc_]);
|
| }
|
|
|
| + id bwc() const { return bwc_; }
|
| +
|
| void TearDown() override { CocoaProfileTest::TearDown(); }
|
|
|
| - base::scoped_nsobject<BrowserWindowTouchBar> browserWindowTouchBar_;
|
| + // A mock BrowserWindowController object.
|
| + id bwc_;
|
| +
|
| + // Used to enable the the browser window touch bar.
|
| + base::test::ScopedFeatureList feature_list;
|
| +
|
| + base::scoped_nsobject<BrowserWindowTouchBar> touch_bar_;
|
| };
|
|
|
| +// Tests to check if the touch bar contains the correct items.
|
| TEST_F(BrowserWindowTouchBarUnitTest, TouchBarItems) {
|
| if (!base::mac::IsAtLeastOS10_12())
|
| return;
|
|
|
| + BOOL yes = YES;
|
| + [[[bwc() expect] andReturnValue:OCMOCK_VALUE(yes)]
|
| + isFullscreenForTabContentOrExtension];
|
| +
|
| PrefService* prefs = profile()->GetPrefs();
|
| DCHECK(prefs);
|
| prefs->SetBoolean(prefs::kShowHomeButton, true);
|
|
|
| - NSArray* touchBarItemIds =
|
| - [[browserWindowTouchBar_ makeTouchBar] itemIdentifiers];
|
| - EXPECT_TRUE([touchBarItemIds containsObject:@"BackForwardTouchId"]);
|
| - EXPECT_TRUE([touchBarItemIds containsObject:@"ReloadOrStopTouchId"]);
|
| - EXPECT_TRUE([touchBarItemIds containsObject:@"HomeTouchId"]);
|
| - EXPECT_TRUE([touchBarItemIds containsObject:@"SearchTouchId"]);
|
| - EXPECT_TRUE([touchBarItemIds containsObject:@"NewTabTouchId"]);
|
| - EXPECT_TRUE([touchBarItemIds containsObject:@"StarTouchId"]);
|
| + // The touch bar should be empty since the toolbar is hidden when the browser
|
| + // is in tab fullscreen.
|
| + NSTouchBar* touch_bar = [touch_bar_ makeTouchBar];
|
| + NSArray* touch_bar_items = [touch_bar itemIdentifiers];
|
| + EXPECT_TRUE([touch_bar_items
|
| + containsObject:[BrowserWindowTouchBar
|
| + touchBarIdForItemId:@"FULLSCREEN-ORIGIN-LABEL"]]);
|
| + EXPECT_TRUE([[touch_bar escapeKeyReplacementItemIdentifier]
|
| + isEqualToString:[BrowserWindowTouchBar
|
| + touchBarIdForItemId:@"EXIT-FULLSCREEN"]]);
|
| +
|
| + BOOL no = NO;
|
| + [[[bwc() stub] andReturnValue:OCMOCK_VALUE(no)]
|
| + isFullscreenForTabContentOrExtension];
|
| +
|
| + touch_bar_items = [[touch_bar_ makeTouchBar] itemIdentifiers];
|
| + EXPECT_TRUE([touch_bar_items
|
| + containsObject:[BrowserWindowTouchBar touchBarIdForItemId:@"BACK-FWD"]]);
|
| + EXPECT_TRUE(
|
| + [touch_bar_items containsObject:[BrowserWindowTouchBar
|
| + touchBarIdForItemId:@"RELOAD-STOP"]]);
|
| + EXPECT_TRUE([touch_bar_items
|
| + containsObject:[BrowserWindowTouchBar touchBarIdForItemId:@"HOME"]]);
|
| + EXPECT_TRUE([touch_bar_items
|
| + containsObject:[BrowserWindowTouchBar touchBarIdForItemId:@"SEARCH"]]);
|
| + EXPECT_TRUE([touch_bar_items
|
| + containsObject:[BrowserWindowTouchBar touchBarIdForItemId:@"BOOKMARK"]]);
|
| + EXPECT_TRUE([touch_bar_items
|
| + containsObject:[BrowserWindowTouchBar touchBarIdForItemId:@"NEW-TAB"]]);
|
|
|
| prefs->SetBoolean(prefs::kShowHomeButton, false);
|
| - touchBarItemIds = [[browserWindowTouchBar_ makeTouchBar] itemIdentifiers];
|
| - EXPECT_TRUE([touchBarItemIds containsObject:@"BackForwardTouchId"]);
|
| - EXPECT_TRUE([touchBarItemIds containsObject:@"ReloadOrStopTouchId"]);
|
| - EXPECT_FALSE([touchBarItemIds containsObject:@"HomeTouchId"]);
|
| - EXPECT_TRUE([touchBarItemIds containsObject:@"SearchTouchId"]);
|
| - EXPECT_TRUE([touchBarItemIds containsObject:@"NewTabTouchId"]);
|
| - EXPECT_TRUE([touchBarItemIds containsObject:@"StarTouchId"]);
|
| + touch_bar_items = [[touch_bar_ makeTouchBar] itemIdentifiers];
|
| + EXPECT_TRUE([touch_bar_items
|
| + containsObject:[BrowserWindowTouchBar touchBarIdForItemId:@"BACK-FWD"]]);
|
| + EXPECT_TRUE(
|
| + [touch_bar_items containsObject:[BrowserWindowTouchBar
|
| + touchBarIdForItemId:@"RELOAD-STOP"]]);
|
| + EXPECT_TRUE([touch_bar_items
|
| + containsObject:[BrowserWindowTouchBar touchBarIdForItemId:@"SEARCH"]]);
|
| + EXPECT_TRUE([touch_bar_items
|
| + containsObject:[BrowserWindowTouchBar touchBarIdForItemId:@"BOOKMARK"]]);
|
| + EXPECT_TRUE([touch_bar_items
|
| + containsObject:[BrowserWindowTouchBar touchBarIdForItemId:@"NEW-TAB"]]);
|
| }
|
|
|
| +// Tests the reload or stop touch bar item.
|
| TEST_F(BrowserWindowTouchBarUnitTest, ReloadOrStopTouchBarItem) {
|
| if (!base::mac::IsAtLeastOS10_12())
|
| return;
|
|
|
| - NSTouchBar* touchBar = [browserWindowTouchBar_ makeTouchBar];
|
| - [browserWindowTouchBar_ setIsPageLoading:NO];
|
| - NSTouchBarItem* item =
|
| - [browserWindowTouchBar_ touchBar:touchBar
|
| - makeItemForIdentifier:@"ReloadOrStopTouchId"];
|
| + BOOL no = NO;
|
| + [[[bwc() stub] andReturnValue:OCMOCK_VALUE(no)]
|
| + isFullscreenForTabContentOrExtension];
|
|
|
| - EXPECT_EQ(IDC_RELOAD, [[item view] tag]);
|
| + NSTouchBar* touch_bar = [touch_bar_ makeTouchBar];
|
| + [touch_bar_ setIsPageLoading:NO];
|
|
|
| - [browserWindowTouchBar_ setIsPageLoading:YES];
|
| - item = [browserWindowTouchBar_ touchBar:touchBar
|
| - makeItemForIdentifier:@"ReloadOrStopTouchId"];
|
| + NSTouchBarItem* item =
|
| + [touch_bar_ touchBar:touch_bar
|
| + makeItemForIdentifier:[BrowserWindowTouchBar
|
| + touchBarIdForItemId:@"RELOAD-STOP"]];
|
| + EXPECT_EQ(IDC_RELOAD, [[item view] tag]);
|
|
|
| + [touch_bar_ setIsPageLoading:YES];
|
| + item = [touch_bar_ touchBar:touch_bar
|
| + makeItemForIdentifier:[BrowserWindowTouchBar
|
| + touchBarIdForItemId:@"RELOAD-STOP"]];
|
| EXPECT_EQ(IDC_STOP, [[item view] tag]);
|
| }
|
|
|