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

Unified Diff: ash/wm/workspace/frame_caption_button_container_view_unittest.cc

Issue 23498031: Move code related to the window controls to ash/wm/caption_buttons (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 3 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
« no previous file with comments | « ash/wm/workspace/frame_caption_button_container_view.cc ('k') | ash/wm/workspace/frame_maximize_button.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/wm/workspace/frame_caption_button_container_view_unittest.cc
diff --git a/ash/wm/workspace/frame_caption_button_container_view_unittest.cc b/ash/wm/workspace/frame_caption_button_container_view_unittest.cc
deleted file mode 100644
index cb732bfeb520a0ebb0241a35b20553d0a048ad71..0000000000000000000000000000000000000000
--- a/ash/wm/workspace/frame_caption_button_container_view_unittest.cc
+++ /dev/null
@@ -1,325 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "ash/wm/workspace/frame_caption_button_container_view.h"
-
-#include "ash/ash_switches.h"
-#include "ash/test/ash_test_base.h"
-#include "base/command_line.h"
-#include "grit/ash_resources.h"
-#include "ui/aura/root_window.h"
-#include "ui/base/resource/resource_bundle.h"
-#include "ui/views/border.h"
-#include "ui/views/controls/button/custom_button.h"
-#include "ui/views/controls/button/image_button.h"
-#include "ui/views/widget/widget.h"
-#include "ui/views/widget/widget_delegate.h"
-
-namespace ash {
-
-namespace {
-
-class TestWidgetDelegate : public views::WidgetDelegateView {
- public:
- TestWidgetDelegate(bool can_maximize) : can_maximize_(can_maximize) {
- }
- virtual ~TestWidgetDelegate() {
- }
-
- virtual bool CanMaximize() const OVERRIDE {
- return can_maximize_;
- }
-
- private:
- bool can_maximize_;
-
- DISALLOW_COPY_AND_ASSIGN(TestWidgetDelegate);
-};
-
-} // namespace
-
-class FrameCaptionButtonContainerViewTest : public ash::test::AshTestBase {
- public:
- enum MaximizeAllowed {
- MAXIMIZE_ALLOWED,
- MAXIMIZE_DISALLOWED
- };
-
- FrameCaptionButtonContainerViewTest() {
- }
-
- virtual ~FrameCaptionButtonContainerViewTest() {
- }
-
- // Creates a widget which allows maximizing based on |maximize_allowed|.
- // The caller takes ownership of the returned widget.
- views::Widget* CreateTestWidget(
- MaximizeAllowed maximize_allowed) WARN_UNUSED_RESULT {
- views::Widget* widget = new views::Widget;
- views::Widget::InitParams params;
- params.delegate = new TestWidgetDelegate(
- maximize_allowed == MAXIMIZE_ALLOWED);
- params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
- params.context = CurrentContext();
- widget->Init(params);
- return widget;
- }
-
- // Tests that |leftmost| and |rightmost| are at |container|'s edges.
- bool CheckButtonsAtEdges(FrameCaptionButtonContainerView* container,
- const views::CustomButton& leftmost,
- const views::CustomButton& rightmost) {
- gfx::Rect expected(container->GetPreferredSize());
- expected.Inset(container->GetLeftInset(), 0, container->GetRightInset(), 0);
-
- gfx::Rect container_size(container->GetPreferredSize());
- if (leftmost.y() == rightmost.y() &&
- leftmost.height() == rightmost.height() &&
- leftmost.x() == expected.x() &&
- leftmost.y() == expected.y() &&
- leftmost.height() == expected.height() &&
- rightmost.bounds().right() == expected.right()) {
- return true;
- }
-
- LOG(ERROR) << "Buttons " << leftmost.bounds().ToString() << " "
- << rightmost.bounds().ToString() << " not at edges of "
- << expected.ToString();
- return false;
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(FrameCaptionButtonContainerViewTest);
-};
-
-class FrameCaptionButtonContainerViewTestOldStyle
- : public FrameCaptionButtonContainerViewTest {
- public:
- FrameCaptionButtonContainerViewTestOldStyle() {
- }
-
- virtual ~FrameCaptionButtonContainerViewTestOldStyle() {
- }
-
- // Returns true if the images for |button|'s states match the passed in ids.
- bool ImagesMatch(views::CustomButton* custom_button,
- int normal_image_id,
- int hovered_image_id,
- int pressed_image_id) {
- views::ImageButton* button =
- static_cast<views::ImageButton*>(custom_button);
- ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
- gfx::ImageSkia* normal = rb.GetImageSkiaNamed(normal_image_id);
- gfx::ImageSkia* hovered = rb.GetImageSkiaNamed(hovered_image_id);
- gfx::ImageSkia* pressed = rb.GetImageSkiaNamed(pressed_image_id);
- using views::Button;
- gfx::ImageSkia actual_normal = button->GetImage(Button::STATE_NORMAL);
- gfx::ImageSkia actual_hovered = button->GetImage(Button::STATE_HOVERED);
- gfx::ImageSkia actual_pressed = button->GetImage(Button::STATE_PRESSED);
- return actual_normal.BackedBySameObjectAs(*normal) &&
- actual_hovered.BackedBySameObjectAs(*hovered) &&
- actual_pressed.BackedBySameObjectAs(*pressed);
- }
-
- virtual void SetUp() OVERRIDE {
- FrameCaptionButtonContainerViewTest::SetUp();
- CommandLine::ForCurrentProcess()->AppendSwitch(
- switches::kAshDisableAlternateFrameCaptionButtonStyle);
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(FrameCaptionButtonContainerViewTestOldStyle);
-};
-
-// Test how the allowed actions affect which caption buttons are visible.
-TEST_F(FrameCaptionButtonContainerViewTestOldStyle, ButtonVisibility) {
- // The minimize button should be hidden when both minimizing and maximizing
- // are allowed because the size button can do both.
- scoped_ptr<views::Widget> widget_can_maximize(
- CreateTestWidget(MAXIMIZE_ALLOWED));
- FrameCaptionButtonContainerView container1(NULL, widget_can_maximize.get(),
- FrameCaptionButtonContainerView::MINIMIZE_ALLOWED);
- container1.Layout();
- FrameCaptionButtonContainerView::TestApi t1(&container1);
- EXPECT_FALSE(t1.minimize_button()->visible());
- EXPECT_TRUE(t1.size_button()->visible());
- EXPECT_TRUE(t1.close_button()->visible());
- EXPECT_TRUE(CheckButtonsAtEdges(
- &container1, *t1.size_button(), *t1.close_button()));
-
- // The minimize button should be visible when minimizing is allowed but
- // maximizing is disallowed.
- scoped_ptr<views::Widget> widget_cannot_maximize(
- CreateTestWidget(MAXIMIZE_DISALLOWED));
- FrameCaptionButtonContainerView container2(NULL, widget_cannot_maximize.get(),
- FrameCaptionButtonContainerView::MINIMIZE_ALLOWED);
- container2.Layout();
- FrameCaptionButtonContainerView::TestApi t2(&container2);
- EXPECT_TRUE(t2.minimize_button()->visible());
- EXPECT_FALSE(t2.size_button()->visible());
- EXPECT_TRUE(t2.close_button()->visible());
- EXPECT_TRUE(CheckButtonsAtEdges(
- &container2, *t2.minimize_button(), *t2.close_button()));
-
- // Neither the minimize button nor the size button should be visible when
- // neither minimizing nor maximizing are allowed.
- FrameCaptionButtonContainerView container3(NULL, widget_cannot_maximize.get(),
- FrameCaptionButtonContainerView::MINIMIZE_DISALLOWED);
- container3.Layout();
- FrameCaptionButtonContainerView::TestApi t3(&container3);
- EXPECT_FALSE(t3.minimize_button()->visible());
- EXPECT_FALSE(t3.size_button()->visible());
- EXPECT_TRUE(t3.close_button()->visible());
- EXPECT_TRUE(CheckButtonsAtEdges(
- &container3, *t3.close_button(), *t3.close_button()));
-
- // Neither the minimize button nor the size button should be visible when the
- // "force-maximize-mode" experiment is turned on.
- CommandLine::ForCurrentProcess()->AppendSwitch(switches::kForcedMaximizeMode);
- FrameCaptionButtonContainerView container4(NULL, widget_can_maximize.get(),
- FrameCaptionButtonContainerView::MINIMIZE_ALLOWED);
- container4.Layout();
- FrameCaptionButtonContainerView::TestApi t4(&container4);
- EXPECT_FALSE(t4.minimize_button()->visible());
- EXPECT_FALSE(t4.size_button()->visible());
- EXPECT_TRUE(t4.close_button()->visible());
- EXPECT_TRUE(CheckButtonsAtEdges(
- &container4, *t4.close_button(), *t4.close_button()));
-}
-
-// Test the layout when a border is set on the container.
-TEST_F(FrameCaptionButtonContainerViewTestOldStyle, LayoutBorder) {
- const int kTopInset = 1;
- const int kLeftInset = 2;
- const int kBottomInset = 3;
- const int kRightInset = 4;
-
- scoped_ptr<views::Widget> widget(CreateTestWidget(MAXIMIZE_ALLOWED));
- FrameCaptionButtonContainerView container(NULL, widget.get(),
- FrameCaptionButtonContainerView::MINIMIZE_ALLOWED);
- container.set_border(views::Border::CreateEmptyBorder(
- kTopInset, kLeftInset, kBottomInset, kRightInset));
- container.Layout();
- FrameCaptionButtonContainerView::TestApi t(&container);
-
- EXPECT_EQ(kLeftInset, t.size_button()->x());
- EXPECT_EQ(kTopInset, t.close_button()->y());
- EXPECT_EQ(container.GetPreferredSize().height(),
- t.close_button()->bounds().bottom() + kBottomInset);
- EXPECT_EQ(container.GetPreferredSize().width(),
- t.close_button()->bounds().right() + kRightInset);
-}
-
-// Test how the header style affects which images are used for the buttons.
-TEST_F(FrameCaptionButtonContainerViewTestOldStyle, HeaderStyle) {
- scoped_ptr<views::Widget> widget(CreateTestWidget(MAXIMIZE_ALLOWED));
- FrameCaptionButtonContainerView container(NULL, widget.get(),
- FrameCaptionButtonContainerView::MINIMIZE_ALLOWED);
- FrameCaptionButtonContainerView::TestApi t(&container);
-
- // Tall header style.
- container.set_header_style(
- FrameCaptionButtonContainerView::HEADER_STYLE_TALL);
- container.Layout();
- EXPECT_TRUE(ImagesMatch(t.size_button(),
- IDR_AURA_WINDOW_MAXIMIZE,
- IDR_AURA_WINDOW_MAXIMIZE_H,
- IDR_AURA_WINDOW_MAXIMIZE_P));
- EXPECT_TRUE(ImagesMatch(t.close_button(),
- IDR_AURA_WINDOW_CLOSE,
- IDR_AURA_WINDOW_CLOSE_H,
- IDR_AURA_WINDOW_CLOSE_P));
-
- // Short header style.
- container.set_header_style(
- FrameCaptionButtonContainerView::HEADER_STYLE_SHORT);
- container.Layout();
- EXPECT_TRUE(ImagesMatch(t.size_button(),
- IDR_AURA_WINDOW_MAXIMIZED_RESTORE,
- IDR_AURA_WINDOW_MAXIMIZED_RESTORE_H,
- IDR_AURA_WINDOW_MAXIMIZED_RESTORE_P));
- EXPECT_TRUE(ImagesMatch(t.close_button(),
- IDR_AURA_WINDOW_MAXIMIZED_CLOSE,
- IDR_AURA_WINDOW_MAXIMIZED_CLOSE_H,
- IDR_AURA_WINDOW_MAXIMIZED_CLOSE_P));
-
- // Maximized short header style.
- widget->Maximize();
- container.Layout();
- EXPECT_TRUE(ImagesMatch(t.size_button(),
- IDR_AURA_WINDOW_MAXIMIZED_RESTORE2,
- IDR_AURA_WINDOW_MAXIMIZED_RESTORE2_H,
- IDR_AURA_WINDOW_MAXIMIZED_RESTORE2_P));
- EXPECT_TRUE(ImagesMatch(t.close_button(),
- IDR_AURA_WINDOW_MAXIMIZED_CLOSE2,
- IDR_AURA_WINDOW_MAXIMIZED_CLOSE2_H,
- IDR_AURA_WINDOW_MAXIMIZED_CLOSE2_P));
-
- // The buttons are visible during a reveal of the top-of-window views in
- // immersive fullscreen. They should use the same images as maximized.
- widget->SetFullscreen(true);
- container.Layout();
- EXPECT_TRUE(ImagesMatch(t.size_button(),
- IDR_AURA_WINDOW_MAXIMIZED_RESTORE2,
- IDR_AURA_WINDOW_MAXIMIZED_RESTORE2_H,
- IDR_AURA_WINDOW_MAXIMIZED_RESTORE2_P));
- EXPECT_TRUE(ImagesMatch(t.close_button(),
- IDR_AURA_WINDOW_MAXIMIZED_CLOSE2,
- IDR_AURA_WINDOW_MAXIMIZED_CLOSE2_H,
- IDR_AURA_WINDOW_MAXIMIZED_CLOSE2_P));
-
- // AppNonClientFrameViewAsh has a dedicated set of images.
- container.set_header_style(
- FrameCaptionButtonContainerView::HEADER_STYLE_MAXIMIZED_HOSTED_APP);
- container.Layout();
- EXPECT_TRUE(ImagesMatch(t.size_button(),
- IDR_AURA_WINDOW_FULLSCREEN_RESTORE,
- IDR_AURA_WINDOW_FULLSCREEN_RESTORE_H,
- IDR_AURA_WINDOW_FULLSCREEN_RESTORE_P));
- EXPECT_TRUE(ImagesMatch(t.close_button(),
- IDR_AURA_WINDOW_FULLSCREEN_CLOSE,
- IDR_AURA_WINDOW_FULLSCREEN_CLOSE_H,
- IDR_AURA_WINDOW_FULLSCREEN_CLOSE_P));
-}
-
-class FrameCaptionButtonContainerViewTestAlternateStyle
- : public FrameCaptionButtonContainerViewTest {
- public:
- FrameCaptionButtonContainerViewTestAlternateStyle() {
- }
-
- virtual ~FrameCaptionButtonContainerViewTestAlternateStyle() {
- }
-
- virtual void SetUp() OVERRIDE {
- FrameCaptionButtonContainerViewTest::SetUp();
- CommandLine::ForCurrentProcess()->AppendSwitch(
- switches::kAshEnableAlternateFrameCaptionButtonStyle);
- ASSERT_TRUE(switches::UseAlternateFrameCaptionButtonStyle());
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(FrameCaptionButtonContainerViewTestAlternateStyle);
-};
-
-// Test how the alternate button style affects which buttons are visible in the
-// default case.
-TEST_F(FrameCaptionButtonContainerViewTestAlternateStyle, ButtonVisibility) {
- // Both the minimize button and the maximize button should be visible when
- // both minimizing and maximizing are allowed when using the alternate
- // button style.
- scoped_ptr<views::Widget> widget_can_maximize(
- CreateTestWidget(MAXIMIZE_ALLOWED));
- FrameCaptionButtonContainerView container(NULL, widget_can_maximize.get(),
- FrameCaptionButtonContainerView::MINIMIZE_ALLOWED);
- container.Layout();
- FrameCaptionButtonContainerView::TestApi t(&container);
- EXPECT_TRUE(t.minimize_button()->visible());
- EXPECT_TRUE(t.size_button()->visible());
- EXPECT_TRUE(t.close_button()->visible());
- EXPECT_TRUE(CheckButtonsAtEdges(
- &container, *t.minimize_button(), *t.close_button()));
-}
-
-} // namespace ash
« no previous file with comments | « ash/wm/workspace/frame_caption_button_container_view.cc ('k') | ash/wm/workspace/frame_maximize_button.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698