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

Unified Diff: chrome/browser/ui/cocoa/browser_window_touch_bar_unittest.mm

Issue 2816743006: [Mac] Fullscreen Touch Bar Support (Closed)
Patch Set: Moved ScopedFeatureList Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/cocoa/browser_window_touch_bar.mm ('k') | ui/base/cocoa/touch_bar_forward_declarations.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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]);
}
« no previous file with comments | « chrome/browser/ui/cocoa/browser_window_touch_bar.mm ('k') | ui/base/cocoa/touch_bar_forward_declarations.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698