| Index: chrome/browser/ui/cocoa/browser_window_controller_browsertest.mm
|
| diff --git a/chrome/browser/ui/cocoa/browser_window_controller_browsertest.mm b/chrome/browser/ui/cocoa/browser_window_controller_browsertest.mm
|
| index 7c534494047dc53295afc76dc31580810d06bdab..48525170d52ae7a5395d38068567b7932fa91304 100644
|
| --- a/chrome/browser/ui/cocoa/browser_window_controller_browsertest.mm
|
| +++ b/chrome/browser/ui/cocoa/browser_window_controller_browsertest.mm
|
| @@ -40,11 +40,21 @@
|
| #include "content/public/browser/web_contents.h"
|
| #include "content/public/test/test_utils.h"
|
| #import "testing/gtest_mac.h"
|
| +#import "third_party/ocmock/OCMock/OCMock.h"
|
| #import "ui/base/cocoa/nsview_additions.h"
|
| #include "ui/gfx/animation/slide_animation.h"
|
|
|
| namespace {
|
|
|
| +// Creates a mock of an NSWindow that has the given |frame|.
|
| +id MockWindowWithFrame(NSRect frame) {
|
| + id window = [OCMockObject mockForClass:[NSWindow class]];
|
| + NSValue* window_frame =
|
| + [NSValue valueWithBytes:&frame objCType:@encode(NSRect)];
|
| + [[[window stub] andReturnValue:window_frame] frame];
|
| + return window;
|
| +}
|
| +
|
| void CreateProfileCallback(const base::Closure& quit_closure,
|
| Profile* profile,
|
| Profile::CreateStatus status) {
|
| @@ -482,6 +492,7 @@ IN_PROC_BROWSER_TEST_F(BrowserWindowControllerTest, SheetPosition) {
|
| EXPECT_FALSE([controller() isBookmarkBarVisible]);
|
|
|
| NSRect defaultAlertFrame = NSMakeRect(0, 0, 300, 200);
|
| + id sheet = MockWindowWithFrame(defaultAlertFrame);
|
| NSWindow* window = browser()->window()->GetNativeWindow();
|
| NSRect alertFrame = [controller() window:window
|
| willPositionSheet:nil
|
| @@ -493,11 +504,24 @@ IN_PROC_BROWSER_TEST_F(BrowserWindowControllerTest, SheetPosition) {
|
| chrome::ToggleBookmarkBarWhenVisible(browser()->profile());
|
| EXPECT_TRUE([controller() isBookmarkBarVisible]);
|
| alertFrame = [controller() window:window
|
| - willPositionSheet:nil
|
| + willPositionSheet:sheet
|
| usingRect:defaultAlertFrame];
|
| NSRect bookmarkBarFrame = [[[controller() bookmarkBarController] view] frame];
|
| EXPECT_EQ(NSMinY(alertFrame), NSMinY(bookmarkBarFrame));
|
|
|
| + // If the sheet is too large, it should be positioned at the top of the
|
| + // window.
|
| + defaultAlertFrame = NSMakeRect(0, 0, 300, 2000);
|
| + sheet = MockWindowWithFrame(defaultAlertFrame);
|
| + alertFrame = [controller() window:window
|
| + willPositionSheet:sheet
|
| + usingRect:defaultAlertFrame];
|
| + EXPECT_EQ(NSMinY(alertFrame), NSHeight([window frame]));
|
| +
|
| + // Reset the sheet's size.
|
| + defaultAlertFrame = NSMakeRect(0, 0, 300, 200);
|
| + sheet = MockWindowWithFrame(defaultAlertFrame);
|
| +
|
| // Make sure the profile does not have the bookmark visible so that
|
| // we'll create the shortcut window without the bookmark bar.
|
| chrome::ToggleBookmarkBarWhenVisible(browser()->profile());
|
| @@ -518,7 +542,7 @@ IN_PROC_BROWSER_TEST_F(BrowserWindowControllerTest, SheetPosition) {
|
| // Open sheet in an application window.
|
| [popupController showWindow:nil];
|
| alertFrame = [popupController window:popupWindow
|
| - willPositionSheet:nil
|
| + willPositionSheet:sheet
|
| usingRect:defaultAlertFrame];
|
| EXPECT_EQ(NSMinY(alertFrame),
|
| NSHeight([[popupWindow contentView] frame]) -
|
|
|