OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "chrome/browser/ui/cocoa/browser_window_controller.h" | 5 #import "chrome/browser/ui/cocoa/browser_window_controller.h" |
6 #import "chrome/browser/ui/cocoa/browser_window_controller_private.h" | 6 #import "chrome/browser/ui/cocoa/browser_window_controller_private.h" |
7 #include "chrome/browser/ui/cocoa/cocoa_profile_test.h" | 7 #include "chrome/browser/ui/cocoa/cocoa_profile_test.h" |
8 #import "chrome/browser/ui/cocoa/fast_resize_view.h" | 8 #import "chrome/browser/ui/cocoa/fast_resize_view.h" |
9 #import "chrome/browser/ui/cocoa/presentation_mode_controller.h" | 9 #import "chrome/browser/ui/cocoa/presentation_mode_controller.h" |
10 #import "chrome/browser/ui/cocoa/tabs/tab_strip_view.h" | 10 #import "chrome/browser/ui/cocoa/tabs/tab_strip_view.h" |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 CheckLayoutNoOverlap(controller_); | 145 CheckLayoutNoOverlap(controller_); |
146 | 146 |
147 // No change after adjusting UI for Canonical Fullscreen. | 147 // No change after adjusting UI for Canonical Fullscreen. |
148 controller_->isInAppKitFullscreen_ = YES; | 148 controller_->isInAppKitFullscreen_ = YES; |
149 [controller_ | 149 [controller_ |
150 adjustUIForSlidingFullscreenStyle:fullscreen_mac::OMNIBOX_TABS_PRESENT]; | 150 adjustUIForSlidingFullscreenStyle:fullscreen_mac::OMNIBOX_TABS_PRESENT]; |
151 EXPECT_EQ(windowHeight, MaxYInWindow([controller_ tabStripView])); | 151 EXPECT_EQ(windowHeight, MaxYInWindow([controller_ tabStripView])); |
152 CheckLayoutNoOverlap(controller_); | 152 CheckLayoutNoOverlap(controller_); |
153 | 153 |
154 // The menu bar is starting to animate in. All views should slide down by a | 154 // The menu bar is starting to animate in. All views should slide down by a |
155 // small amount. | 155 // small amount. The content area doesn't change size. |
156 [controller_->presentationController_ setMenuBarRevealProgress:0.3]; | 156 [controller_->presentationController_ setMenuBarRevealProgress:0.3]; |
157 EXPECT_LT(MaxYInWindow([controller_ tabStripView]), windowHeight - 1); | 157 EXPECT_LT(MaxYInWindow([controller_ tabStripView]), windowHeight - 1); |
158 EXPECT_GT(MaxYInWindow([controller_ tabStripView]), | 158 EXPECT_GT(MaxYInWindow([controller_ tabStripView]), |
159 windowHeight - kMenuBarHeight + 1); | 159 windowHeight - kMenuBarHeight + 1); |
160 CheckLayoutNoOverlap(controller_); | 160 CheckToolbarLayoutNoOverlap(controller_); |
| 161 EXPECT_EQ(MinYInWindow([[controller_ bookmarkBarController] view]), |
| 162 MaxYInWindow([[controller_ infoBarContainerController] view])); |
| 163 EXPECT_LT(MinYInWindow([[controller_ infoBarContainerController] view]), |
| 164 MaxYInWindow([controller_ tabContentArea])); |
161 | 165 |
162 // The menu bar is fully visible. All views should slide down by the size of | 166 // The menu bar is fully visible. All views should slide down by the size of |
163 // the menu bar. | 167 // the menu bar. The content area doesn't change size. |
164 [controller_->presentationController_ setMenuBarRevealProgress:1]; | 168 [controller_->presentationController_ setMenuBarRevealProgress:1]; |
165 EXPECT_FLOAT_EQ(windowHeight - kMenuBarHeight, | 169 EXPECT_FLOAT_EQ(windowHeight - kMenuBarHeight, |
166 MaxYInWindow([controller_ tabStripView])); | 170 MaxYInWindow([controller_ tabStripView])); |
167 CheckLayoutNoOverlap(controller_); | 171 CheckToolbarLayoutNoOverlap(controller_); |
| 172 EXPECT_EQ(MinYInWindow([[controller_ bookmarkBarController] view]), |
| 173 MaxYInWindow([[controller_ infoBarContainerController] view])); |
| 174 EXPECT_LT(MinYInWindow([[controller_ infoBarContainerController] view]), |
| 175 MaxYInWindow([controller_ tabContentArea])); |
168 | 176 |
169 // The menu bar has disappeared. All views should return to normal. | 177 // The menu bar has disappeared. All views should return to normal. |
170 [controller_->presentationController_ setMenuBarRevealProgress:0]; | 178 [controller_->presentationController_ setMenuBarRevealProgress:0]; |
171 EXPECT_EQ(windowHeight, MaxYInWindow([controller_ tabStripView])); | 179 EXPECT_EQ(windowHeight, MaxYInWindow([controller_ tabStripView])); |
172 CheckLayoutNoOverlap(controller_); | 180 CheckLayoutNoOverlap(controller_); |
173 } | 181 } |
174 | 182 |
175 // Tests the layout of views in Presentation Mode (emulating AppKit Fullscreen | 183 // Tests the layout of views in Presentation Mode (emulating AppKit Fullscreen |
176 // API). | 184 // API). |
177 TEST_F(PresentationModeControllerTest, PresentationModeAppKitLayout) { | 185 TEST_F(PresentationModeControllerTest, PresentationModeAppKitLayout) { |
178 // Check initial layout. | 186 // Check initial layout. |
179 CGFloat windowHeight = NSHeight([[controller_ window] frame]); | 187 CGFloat windowHeight = NSHeight([[controller_ window] frame]); |
180 EXPECT_EQ(windowHeight, MaxYInWindow([controller_ tabStripView])); | 188 EXPECT_EQ(windowHeight, MaxYInWindow([controller_ tabStripView])); |
181 CheckLayoutNoOverlap(controller_); | 189 CheckLayoutNoOverlap(controller_); |
182 | 190 |
183 // Adjust UI for Presentation Mode. | 191 // Adjust UI for Presentation Mode. |
184 controller_->isInAppKitFullscreen_ = YES; | 192 controller_->isInAppKitFullscreen_ = YES; |
185 [controller_ | 193 [controller_ |
186 adjustUIForSlidingFullscreenStyle:fullscreen_mac::OMNIBOX_TABS_HIDDEN]; | 194 adjustUIForSlidingFullscreenStyle:fullscreen_mac::OMNIBOX_TABS_HIDDEN]; |
187 | 195 |
188 // In AppKit Fullscreen, the titlebar disappears. This test can't remove the | 196 // In AppKit Fullscreen, the titlebar disappears. This test can't remove the |
189 // titlebar without non-trivially changing the view hierarchy. Instead, it | 197 // titlebar without non-trivially changing the view hierarchy. Instead, it |
190 // adjusts the expectations to sometimes use contentHeight instead of | 198 // adjusts the expectations to sometimes use contentHeight instead of |
191 // windowHeight (the two should be the same in AppKit Fullscreen). | 199 // windowHeight (the two should be the same in AppKit Fullscreen). |
192 CGFloat contentHeight = NSHeight([[[controller_ window] contentView] bounds]); | 200 CGFloat contentHeight = NSHeight([[[controller_ window] contentView] bounds]); |
193 CheckToolbarLayoutNoOverlap(controller_); | 201 CheckToolbarLayoutNoOverlap(controller_); |
194 EXPECT_EQ(windowHeight, MinYInWindow(LowestViewInToolbarArea(controller_))); | 202 EXPECT_EQ(windowHeight, MinYInWindow(LowestViewInToolbarArea(controller_))); |
195 EXPECT_EQ(contentHeight, MaxYInWindow([controller_ tabContentArea])); | 203 EXPECT_EQ(windowHeight, MaxYInWindow([controller_ tabContentArea])); |
196 | 204 |
197 // The menu bar is starting to animate in. All views except the content view | 205 // The menu bar is starting to animate in. All views except the content view |
198 // should slide down by a small amount. | 206 // should slide down by a small amount. |
199 [controller_->presentationController_ setMenuBarRevealProgress:0.3]; | 207 [controller_->presentationController_ setMenuBarRevealProgress:0.3]; |
200 [controller_->presentationController_ changeToolbarFraction:0.3]; | 208 [controller_->presentationController_ changeToolbarFraction:0.3]; |
201 CheckToolbarLayoutNoOverlap(controller_); | 209 CheckToolbarLayoutNoOverlap(controller_); |
202 EXPECT_LT(MinYInWindow(LowestViewInToolbarArea(controller_)), contentHeight); | 210 EXPECT_LT(MinYInWindow(LowestViewInToolbarArea(controller_)), contentHeight); |
203 EXPECT_GT(MaxYInWindow(HighestViewInToolbarArea(controller_)), contentHeight); | 211 EXPECT_GT(MaxYInWindow(HighestViewInToolbarArea(controller_)), contentHeight); |
204 EXPECT_EQ(contentHeight, MaxYInWindow([controller_ tabContentArea])); | 212 EXPECT_EQ(windowHeight, MaxYInWindow([controller_ tabContentArea])); |
205 | 213 |
206 // The menu bar is fully visible. All views should slide down by the size of | 214 // The menu bar is fully visible. All views should slide down by the size of |
207 // the menu bar. | 215 // the menu bar. |
208 [controller_->presentationController_ setMenuBarRevealProgress:1]; | 216 [controller_->presentationController_ setMenuBarRevealProgress:1]; |
209 [controller_->presentationController_ changeToolbarFraction:1]; | 217 [controller_->presentationController_ changeToolbarFraction:1]; |
210 CheckToolbarLayoutNoOverlap(controller_); | 218 CheckToolbarLayoutNoOverlap(controller_); |
211 EXPECT_EQ(contentHeight, MaxYInWindow(HighestViewInToolbarArea(controller_))); | 219 EXPECT_EQ(contentHeight, MaxYInWindow(HighestViewInToolbarArea(controller_))); |
212 EXPECT_EQ(contentHeight, MaxYInWindow([controller_ tabContentArea])); | 220 EXPECT_EQ(windowHeight, MaxYInWindow([controller_ tabContentArea])); |
213 | 221 |
214 // The menu bar has disappeared. All views should return to normal. | 222 // The menu bar has disappeared. All views should return to normal. |
215 [controller_->presentationController_ setMenuBarRevealProgress:0]; | 223 [controller_->presentationController_ setMenuBarRevealProgress:0]; |
216 [controller_->presentationController_ changeToolbarFraction:0]; | 224 [controller_->presentationController_ changeToolbarFraction:0]; |
217 CheckToolbarLayoutNoOverlap(controller_); | 225 CheckToolbarLayoutNoOverlap(controller_); |
218 EXPECT_EQ(windowHeight, MinYInWindow(LowestViewInToolbarArea(controller_))); | 226 EXPECT_EQ(windowHeight, MinYInWindow(LowestViewInToolbarArea(controller_))); |
219 EXPECT_EQ(contentHeight, MaxYInWindow([controller_ tabContentArea])); | 227 EXPECT_EQ(windowHeight, MaxYInWindow([controller_ tabContentArea])); |
220 } | 228 } |
OLD | NEW |