Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(86)

Unified Diff: chrome/browser/ui/views/frame/browser_non_client_frame_view_ash_browsertest.cc

Issue 11826068: ash: Disable window caption buttons in immersive mode (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: trivial rebase Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());
+}

Powered by Google App Engine
This is Rietveld 408576698