| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "base/macros.h" | 9 #include "base/macros.h" |
| 10 #import "chrome/browser/ui/cocoa/browser_window_controller.h" | 10 #import "chrome/browser/ui/cocoa/browser_window_controller.h" |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 @end | 86 @end |
| 87 | 87 |
| 88 namespace { | 88 namespace { |
| 89 | 89 |
| 90 class FullscreenToolbarControllerTest : public testing::Test { | 90 class FullscreenToolbarControllerTest : public testing::Test { |
| 91 public: | 91 public: |
| 92 FullscreenToolbarControllerTest() {} | 92 FullscreenToolbarControllerTest() {} |
| 93 void SetUp() override { | 93 void SetUp() override { |
| 94 BOOL yes = YES; | 94 BOOL yes = YES; |
| 95 BOOL no = NO; | 95 BOOL no = NO; |
| 96 CGFloat menubarHeight = 22; |
| 96 | 97 |
| 97 bwc_ = [OCMockObject mockForClass:[BrowserWindowController class]]; | 98 bwc_ = [OCMockObject mockForClass:[BrowserWindowController class]]; |
| 98 [[[bwc_ stub] andReturnValue:OCMOCK_VALUE(yes)] | 99 [[[bwc_ stub] andReturnValue:OCMOCK_VALUE(yes)] |
| 99 isKindOfClass:[BrowserWindowController class]]; | 100 isKindOfClass:[BrowserWindowController class]]; |
| 100 [[[bwc_ stub] andReturnValue:OCMOCK_VALUE(yes)] isInAppKitFullscreen]; | 101 [[[bwc_ stub] andReturnValue:OCMOCK_VALUE(yes)] isInAppKitFullscreen]; |
| 101 [[[bwc_ stub] andReturnValue:OCMOCK_VALUE(no)] isInImmersiveFullscreen]; | 102 [[[bwc_ stub] andReturnValue:OCMOCK_VALUE(no)] isInImmersiveFullscreen]; |
| 103 [[[bwc_ stub] andReturnValue:OCMOCK_VALUE(menubarHeight)] menubarHeight]; |
| 102 [[bwc_ stub] layoutSubviews]; | 104 [[bwc_ stub] layoutSubviews]; |
| 103 | 105 |
| 104 controller_.reset( | 106 controller_.reset( |
| 105 [[FullscreenToolbarController alloc] initWithBrowserController:bwc_]); | 107 [[FullscreenToolbarController alloc] initWithBrowserController:bwc_]); |
| 106 SetToolbarStyle(FullscreenToolbarStyle::TOOLBAR_HIDDEN); | 108 SetToolbarStyle(FullscreenToolbarStyle::TOOLBAR_HIDDEN); |
| 107 | 109 |
| 108 menubar_tracker_.reset([[MockFullscreenMenubarTracker alloc] | 110 menubar_tracker_.reset([[MockFullscreenMenubarTracker alloc] |
| 109 initWithFullscreenToolbarController:nil]); | 111 initWithFullscreenToolbarController:nil]); |
| 110 [menubar_tracker_ setMenubarProgress:0.0]; | 112 [menubar_tracker_ setMenubarProgress:0.0]; |
| 111 [controller_ setMenubarTracker:menubar_tracker_]; | 113 [controller_ setMenubarTracker:menubar_tracker_]; |
| 112 | 114 |
| 113 mouse_tracker_.reset([[MockFullscreenToolbarMouseTracker alloc] init]); | 115 mouse_tracker_.reset([[MockFullscreenToolbarMouseTracker alloc] init]); |
| 114 [controller_ setMouseTracker:mouse_tracker_]; | 116 [controller_ setMouseTracker:mouse_tracker_]; |
| 115 | 117 |
| 116 [controller_ animationController]->SetAnimationDuration(0.0); | 118 [controller_ animationController]->SetAnimationDuration(0.0); |
| 117 | 119 |
| 118 [controller_ setTestFullscreenMode:YES]; | 120 [controller_ setTestFullscreenMode:YES]; |
| 119 } | 121 } |
| 120 | 122 |
| 121 void TearDown() override { [controller_ setTestFullscreenMode:NO]; } | 123 void TearDown() override { [controller_ setTestFullscreenMode:NO]; } |
| 122 | 124 |
| 123 void SetToolbarStyle(FullscreenToolbarStyle style) { | 125 void SetToolbarStyle(FullscreenToolbarStyle style) { |
| 124 [controller_ setToolbarStyle:style]; | 126 [controller_ setToolbarStyle:style]; |
| 125 } | 127 } |
| 126 | 128 |
| 127 void CheckLayout(CGFloat toolbarFraction, CGFloat menubarFraction) { | 129 void CheckLayout(CGFloat toolbarFraction, CGFloat menubarFraction) { |
| 128 FullscreenToolbarLayout layout = [controller_ computeLayout]; | 130 FullscreenToolbarLayout layout = [controller_ computeLayout]; |
| 129 EXPECT_EQ(toolbarFraction, layout.toolbarFraction); | 131 EXPECT_EQ(toolbarFraction, layout.toolbarFraction); |
| 130 EXPECT_EQ(menubarFraction * [controller_ toolbarVerticalOffset], | 132 EXPECT_EQ(menubarFraction * -[bwc_ menubarHeight], layout.menubarOffset); |
| 131 layout.menubarOffset); | |
| 132 } | 133 } |
| 133 | 134 |
| 134 // A mock BrowserWindowController object. | 135 // A mock BrowserWindowController object. |
| 135 id bwc_; | 136 id bwc_; |
| 136 | 137 |
| 137 // The FullscreenToolbarController object being tested. | 138 // The FullscreenToolbarController object being tested. |
| 138 base::scoped_nsobject<FullscreenToolbarController> controller_; | 139 base::scoped_nsobject<FullscreenToolbarController> controller_; |
| 139 | 140 |
| 140 // Mocks the state of the menubar. | 141 // Mocks the state of the menubar. |
| 141 base::scoped_nsobject<MockFullscreenMenubarTracker> menubar_tracker_; | 142 base::scoped_nsobject<MockFullscreenMenubarTracker> menubar_tracker_; |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 290 | 291 |
| 291 // Move the mouse away from the toolbar. Toolbar should be fully visible. | 292 // Move the mouse away from the toolbar. Toolbar should be fully visible. |
| 292 [mouse_tracker_ setMouseInside:NO]; | 293 [mouse_tracker_ setMouseInside:NO]; |
| 293 CheckLayout(1, 0); | 294 CheckLayout(1, 0); |
| 294 | 295 |
| 295 // Release the toolbar. Toolbar should be hidden. | 296 // Release the toolbar. Toolbar should be hidden. |
| 296 [locks releaseToolbarVisibilityForOwner:owner.get() withAnimation:NO]; | 297 [locks releaseToolbarVisibilityForOwner:owner.get() withAnimation:NO]; |
| 297 } | 298 } |
| 298 | 299 |
| 299 } // namespace | 300 } // namespace |
| OLD | NEW |