| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 | 6 |
| 7 #import "base/mac/mac_util.h" | 7 #import "base/mac/mac_util.h" |
| 8 #include "base/mac/sdk_forward_declarations.h" | 8 #include "base/mac/sdk_forward_declarations.h" |
| 9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 485 } | 485 } |
| 486 | 486 |
| 487 IN_PROC_BROWSER_TEST_F(BrowserWindowControllerTest, SheetPosition) { | 487 IN_PROC_BROWSER_TEST_F(BrowserWindowControllerTest, SheetPosition) { |
| 488 ASSERT_TRUE([controller() isKindOfClass:[BrowserWindowController class]]); | 488 ASSERT_TRUE([controller() isKindOfClass:[BrowserWindowController class]]); |
| 489 EXPECT_TRUE([controller() isTabbedWindow]); | 489 EXPECT_TRUE([controller() isTabbedWindow]); |
| 490 EXPECT_TRUE([controller() hasTabStrip]); | 490 EXPECT_TRUE([controller() hasTabStrip]); |
| 491 EXPECT_FALSE([controller() hasTitleBar]); | 491 EXPECT_FALSE([controller() hasTitleBar]); |
| 492 EXPECT_TRUE([controller() hasToolbar]); | 492 EXPECT_TRUE([controller() hasToolbar]); |
| 493 EXPECT_FALSE([controller() isBookmarkBarVisible]); | 493 EXPECT_FALSE([controller() isBookmarkBarVisible]); |
| 494 | 494 |
| 495 NSRect defaultAlertFrame = NSMakeRect(0, 0, 300, 200); | 495 id sheet = MockWindowWithFrame(NSMakeRect(0, 0, 300, 200)); |
| 496 id sheet = MockWindowWithFrame(defaultAlertFrame); | |
| 497 NSWindow* window = browser()->window()->GetNativeWindow(); | 496 NSWindow* window = browser()->window()->GetNativeWindow(); |
| 498 NSRect alertFrame = [controller() window:window | 497 NSRect contentFrame = [[window contentView] frame]; |
| 499 willPositionSheet:nil | 498 NSRect defaultLocation = |
| 500 usingRect:defaultAlertFrame]; | 499 NSMakeRect(0, NSMaxY(contentFrame), NSWidth(contentFrame), 0); |
| 500 |
| 501 NSRect sheetLocation = [controller() window:window |
| 502 willPositionSheet:nil |
| 503 usingRect:defaultLocation]; |
| 501 NSRect toolbarFrame = [[[controller() toolbarController] view] frame]; | 504 NSRect toolbarFrame = [[[controller() toolbarController] view] frame]; |
| 502 EXPECT_EQ(NSMinY(alertFrame), NSMinY(toolbarFrame)); | 505 EXPECT_EQ(NSMinY(toolbarFrame), NSMinY(sheetLocation)); |
| 503 | 506 |
| 504 // Open sheet with normal browser window, persistent bookmark bar. | 507 // Open sheet with normal browser window, persistent bookmark bar. |
| 505 chrome::ToggleBookmarkBarWhenVisible(browser()->profile()); | 508 chrome::ToggleBookmarkBarWhenVisible(browser()->profile()); |
| 506 EXPECT_TRUE([controller() isBookmarkBarVisible]); | 509 EXPECT_TRUE([controller() isBookmarkBarVisible]); |
| 507 alertFrame = [controller() window:window | 510 sheetLocation = [controller() window:window |
| 508 willPositionSheet:sheet | 511 willPositionSheet:sheet |
| 509 usingRect:defaultAlertFrame]; | 512 usingRect:defaultLocation]; |
| 510 NSRect bookmarkBarFrame = [[[controller() bookmarkBarController] view] frame]; | 513 NSRect bookmarkBarFrame = [[[controller() bookmarkBarController] view] frame]; |
| 511 EXPECT_EQ(NSMinY(alertFrame), NSMinY(bookmarkBarFrame)); | 514 EXPECT_EQ(NSMinY(bookmarkBarFrame), NSMinY(sheetLocation)); |
| 512 | 515 |
| 513 // If the sheet is too large, it should be positioned at the top of the | 516 // If the sheet is too large, it should be positioned at the top of the |
| 514 // window. | 517 // window. |
| 515 defaultAlertFrame = NSMakeRect(0, 0, 300, 2000); | 518 sheet = MockWindowWithFrame(NSMakeRect(0, 0, 300, 2000)); |
| 516 sheet = MockWindowWithFrame(defaultAlertFrame); | 519 sheetLocation = [controller() window:window |
| 517 alertFrame = [controller() window:window | 520 willPositionSheet:sheet |
| 518 willPositionSheet:sheet | 521 usingRect:defaultLocation]; |
| 519 usingRect:defaultAlertFrame]; | 522 EXPECT_EQ(NSHeight([window frame]), NSMinY(sheetLocation)); |
| 520 EXPECT_EQ(NSMinY(alertFrame), NSHeight([window frame])); | |
| 521 | 523 |
| 522 // Reset the sheet's size. | 524 // Reset the sheet's size. |
| 523 defaultAlertFrame = NSMakeRect(0, 0, 300, 200); | 525 sheet = MockWindowWithFrame(NSMakeRect(0, 0, 300, 200)); |
| 524 sheet = MockWindowWithFrame(defaultAlertFrame); | |
| 525 | 526 |
| 526 // Make sure the profile does not have the bookmark visible so that | 527 // Make sure the profile does not have the bookmark visible so that |
| 527 // we'll create the shortcut window without the bookmark bar. | 528 // we'll create the shortcut window without the bookmark bar. |
| 528 chrome::ToggleBookmarkBarWhenVisible(browser()->profile()); | 529 chrome::ToggleBookmarkBarWhenVisible(browser()->profile()); |
| 529 // Open application mode window. | 530 // Open application mode window. |
| 530 OpenAppShortcutWindow(browser()->profile(), GURL("about:blank")); | 531 OpenAppShortcutWindow(browser()->profile(), GURL("about:blank")); |
| 531 Browser* popup_browser = BrowserList::GetInstance( | 532 Browser* popup_browser = BrowserList::GetInstance( |
| 532 chrome::GetActiveDesktop())->GetLastActive(); | 533 chrome::GetActiveDesktop())->GetLastActive(); |
| 533 NSWindow* popupWindow = popup_browser->window()->GetNativeWindow(); | 534 NSWindow* popupWindow = popup_browser->window()->GetNativeWindow(); |
| 534 BrowserWindowController* popupController = | 535 BrowserWindowController* popupController = |
| 535 [BrowserWindowController browserWindowControllerForWindow:popupWindow]; | 536 [BrowserWindowController browserWindowControllerForWindow:popupWindow]; |
| 536 ASSERT_TRUE([popupController isKindOfClass:[BrowserWindowController class]]); | 537 ASSERT_TRUE([popupController isKindOfClass:[BrowserWindowController class]]); |
| 537 EXPECT_FALSE([popupController isTabbedWindow]); | 538 EXPECT_FALSE([popupController isTabbedWindow]); |
| 538 EXPECT_FALSE([popupController hasTabStrip]); | 539 EXPECT_FALSE([popupController hasTabStrip]); |
| 539 EXPECT_TRUE([popupController hasTitleBar]); | 540 EXPECT_TRUE([popupController hasTitleBar]); |
| 540 EXPECT_FALSE([popupController isBookmarkBarVisible]); | 541 EXPECT_FALSE([popupController isBookmarkBarVisible]); |
| 541 EXPECT_FALSE([popupController hasToolbar]); | 542 EXPECT_FALSE([popupController hasToolbar]); |
| 542 | 543 |
| 543 // Open sheet in an application window. | 544 // Open sheet in an application window. |
| 544 [popupController showWindow:nil]; | 545 [popupController showWindow:nil]; |
| 545 alertFrame = [popupController window:popupWindow | 546 sheetLocation = [popupController window:popupWindow |
| 546 willPositionSheet:sheet | 547 willPositionSheet:sheet |
| 547 usingRect:defaultAlertFrame]; | 548 usingRect:defaultLocation]; |
| 548 EXPECT_EQ(NSMinY(alertFrame), | 549 EXPECT_EQ(NSHeight([[popupWindow contentView] frame]), NSMinY(sheetLocation)); |
| 549 NSHeight([[popupWindow contentView] frame]) - | |
| 550 defaultAlertFrame.size.height); | |
| 551 | 550 |
| 552 // Close the application window. | 551 // Close the application window. |
| 553 popup_browser->tab_strip_model()->CloseSelectedTabs(); | 552 popup_browser->tab_strip_model()->CloseSelectedTabs(); |
| 554 [popupController close]; | 553 [popupController close]; |
| 555 } | 554 } |
| 556 | 555 |
| 557 // Verify that the info bar tip is hidden when the toolbar is not visible. | 556 // Verify that the info bar tip is hidden when the toolbar is not visible. |
| 558 IN_PROC_BROWSER_TEST_F(BrowserWindowControllerTest, | 557 IN_PROC_BROWSER_TEST_F(BrowserWindowControllerTest, |
| 559 InfoBarTipHiddenForWindowWithoutToolbar) { | 558 InfoBarTipHiddenForWindowWithoutToolbar) { |
| 560 ShowInfoBar(browser()); | 559 ShowInfoBar(browser()); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 630 VerifyWindowControlsZOrder(); | 629 VerifyWindowControlsZOrder(); |
| 631 [controller() removeOverlay]; | 630 [controller() removeOverlay]; |
| 632 VerifyWindowControlsZOrder(); | 631 VerifyWindowControlsZOrder(); |
| 633 | 632 |
| 634 // Toggle immersive fullscreen, then verify z order. In immersive fullscreen, | 633 // Toggle immersive fullscreen, then verify z order. In immersive fullscreen, |
| 635 // there are no window controls. | 634 // there are no window controls. |
| 636 [controller() enterImmersiveFullscreen]; | 635 [controller() enterImmersiveFullscreen]; |
| 637 [controller() exitImmersiveFullscreen]; | 636 [controller() exitImmersiveFullscreen]; |
| 638 VerifyWindowControlsZOrder(); | 637 VerifyWindowControlsZOrder(); |
| 639 } | 638 } |
| OLD | NEW |