| 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 4d3b3d93326594a091a914a22869ade160320901..da5b29f100a943ad79bfd172ea58234e3e66e921 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
|
| @@ -7,8 +7,10 @@
|
| #include "ash/ash_constants.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/views/frame/browser_view.h"
|
| +#include "chrome/browser/ui/views/immersive_mode_controller.h"
|
| #include "chrome/test/base/in_process_browser_test.h"
|
| #include "ui/base/hit_test.h"
|
| +#include "ui/views/controls/button/image_button.h"
|
| #include "ui/views/widget/widget.h"
|
|
|
| using views::Widget;
|
| @@ -17,7 +19,8 @@ typedef InProcessBrowserTest BrowserNonClientFrameViewAshTest;
|
|
|
| IN_PROC_BROWSER_TEST_F(BrowserNonClientFrameViewAshTest, WindowHeader) {
|
| // We know we're using Views, so static cast.
|
| - Widget* widget = static_cast<BrowserView*>(browser()->window())->GetWidget();
|
| + BrowserView* browser_view = static_cast<BrowserView*>(browser()->window());
|
| + Widget* widget = browser_view->GetWidget();
|
| // We know we're using Ash, so static cast.
|
| BrowserNonClientFrameViewAsh* frame_view =
|
| static_cast<BrowserNonClientFrameViewAsh*>(
|
| @@ -69,3 +72,44 @@ IN_PROC_BROWSER_TEST_F(BrowserNonClientFrameViewAshTest, WindowHeader) {
|
| app_widget->SetBounds(gfx::Rect(15, 15, 250, 250));
|
| EXPECT_FALSE(app_frame_view->UseShortHeader());
|
| }
|
| +
|
| +IN_PROC_BROWSER_TEST_F(BrowserNonClientFrameViewAshTest, ImmersiveMode) {
|
| + // We know we're using Views, so static cast.
|
| + BrowserView* browser_view = static_cast<BrowserView*>(browser()->window());
|
| + 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());
|
| +
|
| + // Normal window does not have immersive mode button.
|
| + EXPECT_FALSE(frame_view->immersive_button_->visible());
|
| +
|
| + // Maximized window shows immersive mode button.
|
| + widget->Maximize();
|
| + EXPECT_TRUE(frame_view->immersive_button_->visible());
|
| +
|
| + // Entering immersive mode hides the caption buttons.
|
| + browser_view->immersive_mode_controller()->SetEnabled(true);
|
| + EXPECT_FALSE(frame_view->immersive_button_->visible());
|
| + EXPECT_FALSE(frame_view->size_button_->visible());
|
| + EXPECT_FALSE(frame_view->close_button_->visible());
|
| +
|
| + // An immersive reveal shows the buttons.
|
| + browser_view->immersive_mode_controller()->StartRevealForTest();
|
| + EXPECT_TRUE(frame_view->immersive_button_->visible());
|
| + EXPECT_TRUE(frame_view->size_button_->visible());
|
| + EXPECT_TRUE(frame_view->close_button_->visible());
|
| +
|
| + // Ending reveal hides them again.
|
| + browser_view->immersive_mode_controller()->CancelReveal();
|
| + EXPECT_FALSE(frame_view->immersive_button_->visible());
|
| + EXPECT_FALSE(frame_view->size_button_->visible());
|
| + EXPECT_FALSE(frame_view->close_button_->visible());
|
| +
|
| + // Exiting immersive mode makes them visible again.
|
| + browser_view->immersive_mode_controller()->SetEnabled(false);
|
| + EXPECT_TRUE(frame_view->immersive_button_->visible());
|
| + EXPECT_TRUE(frame_view->size_button_->visible());
|
| + EXPECT_TRUE(frame_view->close_button_->visible());
|
| +}
|
|
|