| Index: chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc
|
| diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc
|
| index 18c2b4596da5e27f26aff2cf58a30f0ecb948c4a..a3f03e398e5686b0781777b7aaad8ea06f2a9d5e 100644
|
| --- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc
|
| +++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc
|
| @@ -19,6 +19,7 @@
|
| #include "chrome/browser/ui/browser_commands.h"
|
| #include "chrome/browser/ui/exclusive_access/fullscreen_controller.h"
|
| #include "chrome/browser/ui/exclusive_access/fullscreen_controller_test.h"
|
| +#include "chrome/browser/ui/views/bookmarks/bookmark_bar_view.h"
|
| #include "chrome/browser/ui/views/frame/browser_view.h"
|
| #include "chrome/browser/ui/views/frame/immersive_mode_controller.h"
|
| #include "chrome/browser/ui/views/frame/immersive_mode_controller_ash.h"
|
| @@ -26,6 +27,7 @@
|
| #include "chrome/browser/ui/views/tabs/tab.h"
|
| #include "chrome/test/base/in_process_browser_test.h"
|
| #include "components/signin/core/account_id/account_id.h"
|
| +#include "ui/aura/client/aura_constants.h"
|
| #include "ui/base/hit_test.h"
|
| #include "ui/compositor/scoped_animation_duration_scale_mode.h"
|
| #include "ui/views/widget/widget.h"
|
| @@ -291,3 +293,33 @@ IN_PROC_BROWSER_TEST_F(BrowserNonClientFrameViewAshTest,
|
| bounds();
|
| EXPECT_EQ(initial, after_restore);
|
| }
|
| +
|
| +// Tests that browser frame minimum size constraint is updated in response to
|
| +// browser view layout.
|
| +IN_PROC_BROWSER_TEST_F(BrowserNonClientFrameViewAshTest,
|
| + FrameMinSizeIsUpdated) {
|
| + BrowserView* browser_view = BrowserView::GetBrowserViewForBrowser(browser());
|
| + Widget* widget = browser_view->GetWidget();
|
| + // We know we're using Ash, so static cast.
|
| + BrowserNonClientFrameViewAsh* frame_view =
|
| + static_cast<BrowserNonClientFrameViewAsh*>(
|
| + widget->non_client_view()->frame_view());
|
| +
|
| + BookmarkBarView* bookmark_bar = browser_view->GetBookmarkBarView();
|
| + EXPECT_FALSE(bookmark_bar->visible());
|
| + const int min_height_no_bookmarks = frame_view->GetMinimumSize().height();
|
| +
|
| + // Setting non-zero bookmark bar preferred size forces it to be visible and
|
| + // triggers BrowserView layout update.
|
| + bookmark_bar->SetPreferredSize(gfx::Size(50, 5));
|
| + EXPECT_TRUE(bookmark_bar->visible());
|
| +
|
| + // Minimum window size should grow with the bookmark bar shown.
|
| + // kMinimumSize window property should get updated.
|
| + aura::Window* window = browser()->window()->GetNativeWindow();
|
| + const gfx::Size* min_window_size =
|
| + window->GetProperty(aura::client::kMinimumSize);
|
| + ASSERT_NE(nullptr, min_window_size);
|
| + EXPECT_GT(min_window_size->height(), min_height_no_bookmarks);
|
| + EXPECT_EQ(*min_window_size, frame_view->GetMinimumSize());
|
| +}
|
|
|