| Index: ash/common/frame/caption_buttons/frame_caption_button_container_view_unittest.cc
|
| diff --git a/ash/common/frame/caption_buttons/frame_caption_button_container_view_unittest.cc b/ash/common/frame/caption_buttons/frame_caption_button_container_view_unittest.cc
|
| deleted file mode 100644
|
| index f84fe43f372ebd7e8dea5c9ec0453a6dfb5e6e85..0000000000000000000000000000000000000000
|
| --- a/ash/common/frame/caption_buttons/frame_caption_button_container_view_unittest.cc
|
| +++ /dev/null
|
| @@ -1,204 +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/common/frame/caption_buttons/frame_caption_button_container_view.h"
|
| -
|
| -#include "ash/common/ash_layout_constants.h"
|
| -#include "ash/common/frame/caption_buttons/frame_caption_button.h"
|
| -#include "ash/common/wm/maximize_mode/maximize_mode_controller.h"
|
| -#include "ash/common/wm_shell.h"
|
| -#include "ash/resources/grit/ash_resources.h"
|
| -#include "ash/resources/vector_icons/vector_icons.h"
|
| -#include "ash/test/ash_test_base.h"
|
| -#include "ui/gfx/geometry/rect.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, bool can_minimize)
|
| - : can_maximize_(can_maximize), can_minimize_(can_minimize) {}
|
| - ~TestWidgetDelegate() override {}
|
| -
|
| - bool CanMaximize() const override { return can_maximize_; }
|
| -
|
| - bool CanMinimize() const override { return can_minimize_; }
|
| -
|
| - private:
|
| - bool can_maximize_;
|
| - bool can_minimize_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(TestWidgetDelegate);
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -class FrameCaptionButtonContainerViewTest : public ash::test::AshTestBase {
|
| - public:
|
| - enum MaximizeAllowed { MAXIMIZE_ALLOWED, MAXIMIZE_DISALLOWED };
|
| -
|
| - enum MinimizeAllowed { MINIMIZE_ALLOWED, MINIMIZE_DISALLOWED };
|
| -
|
| - FrameCaptionButtonContainerViewTest() {}
|
| -
|
| - ~FrameCaptionButtonContainerViewTest() override {}
|
| -
|
| - // Creates a widget which allows maximizing based on |maximize_allowed|.
|
| - // The caller takes ownership of the returned widget.
|
| - views::Widget* CreateTestWidget(MaximizeAllowed maximize_allowed,
|
| - MinimizeAllowed minimize_allowed)
|
| - WARN_UNUSED_RESULT {
|
| - views::Widget* widget = new views::Widget;
|
| - views::Widget::InitParams params;
|
| - params.delegate =
|
| - new TestWidgetDelegate(maximize_allowed == MAXIMIZE_ALLOWED,
|
| - minimize_allowed == MINIMIZE_ALLOWED);
|
| - params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
|
| - params.context = CurrentContext();
|
| - widget->Init(params);
|
| - return widget;
|
| - }
|
| -
|
| - // Sets arbitrary images for the icons and assign the default caption button
|
| - // size to the buttons in |container|.
|
| - void InitContainer(FrameCaptionButtonContainerView* container) {
|
| - container->SetButtonSize(
|
| - GetAshLayoutSize(AshLayoutSize::NON_BROWSER_CAPTION_BUTTON));
|
| - for (int icon = 0; icon < CAPTION_BUTTON_ICON_COUNT; ++icon) {
|
| - container->SetButtonImage(static_cast<CaptionButtonIcon>(icon),
|
| - ash::kWindowControlCloseIcon);
|
| - }
|
| - }
|
| -
|
| - // Tests that |leftmost| and |rightmost| are at |container|'s edges.
|
| - bool CheckButtonsAtEdges(FrameCaptionButtonContainerView* container,
|
| - const ash::FrameCaptionButton& leftmost,
|
| - const ash::FrameCaptionButton& rightmost) {
|
| - gfx::Rect expected(container->GetPreferredSize());
|
| -
|
| - 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);
|
| -};
|
| -
|
| -// Test how the allowed actions affect which caption buttons are visible.
|
| -TEST_F(FrameCaptionButtonContainerViewTest, ButtonVisibility) {
|
| - // All the buttons should be visible when minimizing and maximizing are
|
| - // allowed.
|
| - FrameCaptionButtonContainerView container1(
|
| - CreateTestWidget(MAXIMIZE_ALLOWED, MINIMIZE_ALLOWED));
|
| - InitContainer(&container1);
|
| - container1.Layout();
|
| - FrameCaptionButtonContainerView::TestApi t1(&container1);
|
| - EXPECT_TRUE(t1.minimize_button()->visible());
|
| - EXPECT_TRUE(t1.size_button()->visible());
|
| - EXPECT_TRUE(t1.close_button()->visible());
|
| - EXPECT_TRUE(CheckButtonsAtEdges(&container1, *t1.minimize_button(),
|
| - *t1.close_button()));
|
| -
|
| - // The minimize button should be visible when minimizing is allowed but
|
| - // maximizing is disallowed.
|
| - FrameCaptionButtonContainerView container2(
|
| - CreateTestWidget(MAXIMIZE_DISALLOWED, MINIMIZE_ALLOWED));
|
| - InitContainer(&container2);
|
| - 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(
|
| - CreateTestWidget(MAXIMIZE_DISALLOWED, MINIMIZE_DISALLOWED));
|
| - InitContainer(&container3);
|
| - 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()));
|
| -}
|
| -
|
| -// Tests that the layout animations trigered by button visibility result in the
|
| -// correct placement of the buttons.
|
| -TEST_F(FrameCaptionButtonContainerViewTest,
|
| - TestUpdateSizeButtonVisibilityAnimation) {
|
| - FrameCaptionButtonContainerView container(
|
| - CreateTestWidget(MAXIMIZE_ALLOWED, MINIMIZE_ALLOWED));
|
| - InitContainer(&container);
|
| - container.SetBoundsRect(gfx::Rect(container.GetPreferredSize()));
|
| - container.Layout();
|
| -
|
| - FrameCaptionButtonContainerView::TestApi test(&container);
|
| - gfx::Rect initial_minimize_button_bounds = test.minimize_button()->bounds();
|
| - gfx::Rect initial_size_button_bounds = test.size_button()->bounds();
|
| - gfx::Rect initial_close_button_bounds = test.close_button()->bounds();
|
| - gfx::Rect initial_container_bounds = container.bounds();
|
| -
|
| - ASSERT_EQ(initial_size_button_bounds.x(),
|
| - initial_minimize_button_bounds.right());
|
| - ASSERT_EQ(initial_close_button_bounds.x(),
|
| - initial_size_button_bounds.right());
|
| -
|
| - // Hidden size button should result in minimize button animating to the
|
| - // right. The size button should not be visible, but should not have moved.
|
| - WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager(
|
| - true);
|
| - container.UpdateSizeButtonVisibility();
|
| - test.EndAnimations();
|
| - // Parent needs to layout in response to size change.
|
| - container.Layout();
|
| -
|
| - EXPECT_TRUE(test.minimize_button()->visible());
|
| - EXPECT_FALSE(test.size_button()->visible());
|
| - EXPECT_TRUE(test.close_button()->visible());
|
| - gfx::Rect minimize_button_bounds = test.minimize_button()->bounds();
|
| - gfx::Rect close_button_bounds = test.close_button()->bounds();
|
| - EXPECT_EQ(close_button_bounds.x(), minimize_button_bounds.right());
|
| - EXPECT_EQ(initial_size_button_bounds, test.size_button()->bounds());
|
| - EXPECT_EQ(initial_close_button_bounds.size(), close_button_bounds.size());
|
| - EXPECT_LT(container.GetPreferredSize().width(),
|
| - initial_container_bounds.width());
|
| -
|
| - // Revealing the size button should cause the minimize button to return to its
|
| - // original position.
|
| - WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager(
|
| - false);
|
| - container.UpdateSizeButtonVisibility();
|
| - // Calling code needs to layout in response to size change.
|
| - container.Layout();
|
| - test.EndAnimations();
|
| - EXPECT_TRUE(test.minimize_button()->visible());
|
| - EXPECT_TRUE(test.size_button()->visible());
|
| - EXPECT_TRUE(test.close_button()->visible());
|
| - EXPECT_EQ(initial_minimize_button_bounds, test.minimize_button()->bounds());
|
| - EXPECT_EQ(initial_size_button_bounds, test.size_button()->bounds());
|
| - EXPECT_EQ(initial_close_button_bounds, test.close_button()->bounds());
|
| - EXPECT_EQ(container.GetPreferredSize().width(),
|
| - initial_container_bounds.width());
|
| -}
|
| -
|
| -} // namespace ash
|
|
|