| Index: ash/common/frame/custom_frame_view_ash_unittest.cc
 | 
| diff --git a/ash/common/frame/custom_frame_view_ash_unittest.cc b/ash/common/frame/custom_frame_view_ash_unittest.cc
 | 
| deleted file mode 100644
 | 
| index b5729ef394f1f4fd3cf4a9cd5cfe7ceb373e1872..0000000000000000000000000000000000000000
 | 
| --- a/ash/common/frame/custom_frame_view_ash_unittest.cc
 | 
| +++ /dev/null
 | 
| @@ -1,227 +0,0 @@
 | 
| -// Copyright 2014 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/custom_frame_view_ash.h"
 | 
| -
 | 
| -#include <memory>
 | 
| -
 | 
| -#include "ash/common/ash_layout_constants.h"
 | 
| -#include "ash/common/frame/caption_buttons/frame_caption_button.h"
 | 
| -#include "ash/common/frame/caption_buttons/frame_caption_button_container_view.h"
 | 
| -#include "ash/common/test/test_session_state_delegate.h"
 | 
| -#include "ash/common/wm/maximize_mode/maximize_mode_controller.h"
 | 
| -#include "ash/common/wm_shell.h"
 | 
| -#include "ash/test/ash_test_base.h"
 | 
| -#include "ui/gfx/geometry/rect.h"
 | 
| -#include "ui/gfx/image/image_skia.h"
 | 
| -#include "ui/gfx/image/image_unittest_util.h"
 | 
| -#include "ui/views/widget/widget.h"
 | 
| -#include "ui/views/widget/widget_delegate.h"
 | 
| -
 | 
| -namespace ash {
 | 
| -
 | 
| -// A views::WidgetDelegate which uses a CustomFrameViewAsh.
 | 
| -class TestWidgetDelegate : public views::WidgetDelegateView {
 | 
| - public:
 | 
| -  TestWidgetDelegate() {}
 | 
| -  ~TestWidgetDelegate() override {}
 | 
| -
 | 
| -  views::NonClientFrameView* CreateNonClientFrameView(
 | 
| -      views::Widget* widget) override {
 | 
| -    custom_frame_view_ = new CustomFrameViewAsh(widget);
 | 
| -    return custom_frame_view_;
 | 
| -  }
 | 
| -
 | 
| -  CustomFrameViewAsh* custom_frame_view() const { return custom_frame_view_; }
 | 
| -
 | 
| - private:
 | 
| -  // Not owned.
 | 
| -  CustomFrameViewAsh* custom_frame_view_;
 | 
| -
 | 
| -  DISALLOW_COPY_AND_ASSIGN(TestWidgetDelegate);
 | 
| -};
 | 
| -
 | 
| -class TestWidgetConstraintsDelegate : public TestWidgetDelegate {
 | 
| - public:
 | 
| -  TestWidgetConstraintsDelegate() {}
 | 
| -  ~TestWidgetConstraintsDelegate() override {}
 | 
| -
 | 
| -  // views::View:
 | 
| -  gfx::Size GetMinimumSize() const override { return minimum_size_; }
 | 
| -
 | 
| -  gfx::Size GetMaximumSize() const override { return maximum_size_; }
 | 
| -
 | 
| -  views::View* GetContentsView() override {
 | 
| -    // Set this instance as the contents view so that the maximum and minimum
 | 
| -    // size constraints will be used.
 | 
| -    return this;
 | 
| -  }
 | 
| -
 | 
| -  // views::WidgetDelegate:
 | 
| -  bool CanMaximize() const override { return true; }
 | 
| -
 | 
| -  bool CanMinimize() const override { return true; }
 | 
| -
 | 
| -  void set_minimum_size(const gfx::Size& min_size) { minimum_size_ = min_size; }
 | 
| -
 | 
| -  void set_maximum_size(const gfx::Size& max_size) { maximum_size_ = max_size; }
 | 
| -
 | 
| -  const gfx::Rect& GetFrameCaptionButtonContainerViewBounds() {
 | 
| -    return custom_frame_view()
 | 
| -        ->GetFrameCaptionButtonContainerViewForTest()
 | 
| -        ->bounds();
 | 
| -  }
 | 
| -
 | 
| -  void EndFrameCaptionButtonContainerViewAnimations() {
 | 
| -    FrameCaptionButtonContainerView::TestApi test(
 | 
| -        custom_frame_view()->GetFrameCaptionButtonContainerViewForTest());
 | 
| -    test.EndAnimations();
 | 
| -  }
 | 
| -
 | 
| -  int GetTitleBarHeight() const {
 | 
| -    return custom_frame_view()->NonClientTopBorderHeight();
 | 
| -  }
 | 
| -
 | 
| - private:
 | 
| -  gfx::Size minimum_size_;
 | 
| -  gfx::Size maximum_size_;
 | 
| -
 | 
| -  DISALLOW_COPY_AND_ASSIGN(TestWidgetConstraintsDelegate);
 | 
| -};
 | 
| -
 | 
| -class CustomFrameViewAshTest : public test::AshTestBase {
 | 
| - public:
 | 
| -  CustomFrameViewAshTest() {}
 | 
| -  ~CustomFrameViewAshTest() override {}
 | 
| -
 | 
| - protected:
 | 
| -  std::unique_ptr<views::Widget> CreateWidget(TestWidgetDelegate* delegate) {
 | 
| -    std::unique_ptr<views::Widget> widget(new views::Widget);
 | 
| -    views::Widget::InitParams params;
 | 
| -    params.delegate = delegate;
 | 
| -    params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
 | 
| -    params.bounds = gfx::Rect(0, 0, 100, 100);
 | 
| -    params.context = CurrentContext();
 | 
| -    widget->Init(params);
 | 
| -    return widget;
 | 
| -  }
 | 
| -
 | 
| -  test::TestSessionStateDelegate* GetTestSessionStateDelegate() {
 | 
| -    return static_cast<test::TestSessionStateDelegate*>(
 | 
| -        WmShell::Get()->GetSessionStateDelegate());
 | 
| -  }
 | 
| -
 | 
| - private:
 | 
| -  DISALLOW_COPY_AND_ASSIGN(CustomFrameViewAshTest);
 | 
| -};
 | 
| -
 | 
| -// Verifies the client view is not placed at a y location of 0.
 | 
| -TEST_F(CustomFrameViewAshTest, ClientViewCorrectlyPlaced) {
 | 
| -  std::unique_ptr<views::Widget> widget(CreateWidget(new TestWidgetDelegate));
 | 
| -  widget->Show();
 | 
| -  EXPECT_NE(0, widget->client_view()->bounds().y());
 | 
| -}
 | 
| -
 | 
| -// Test that the height of the header is correct upon initially displaying
 | 
| -// the widget.
 | 
| -TEST_F(CustomFrameViewAshTest, HeaderHeight) {
 | 
| -  TestWidgetDelegate* delegate = new TestWidgetDelegate;
 | 
| -
 | 
| -  std::unique_ptr<views::Widget> widget(CreateWidget(delegate));
 | 
| -  widget->Show();
 | 
| -
 | 
| -  // The header should have enough room for the window controls. The
 | 
| -  // header/content separator line overlays the window controls.
 | 
| -  EXPECT_EQ(
 | 
| -      GetAshLayoutSize(AshLayoutSize::NON_BROWSER_CAPTION_BUTTON).height(),
 | 
| -      delegate->custom_frame_view()->GetHeaderView()->height());
 | 
| -}
 | 
| -
 | 
| -// Verify that CustomFrameViewAsh returns the correct minimum and maximum frame
 | 
| -// sizes when the client view does not specify any size constraints.
 | 
| -TEST_F(CustomFrameViewAshTest, NoSizeConstraints) {
 | 
| -  TestWidgetConstraintsDelegate* delegate = new TestWidgetConstraintsDelegate;
 | 
| -  std::unique_ptr<views::Widget> widget(CreateWidget(delegate));
 | 
| -
 | 
| -  CustomFrameViewAsh* custom_frame_view = delegate->custom_frame_view();
 | 
| -  gfx::Size min_frame_size = custom_frame_view->GetMinimumSize();
 | 
| -  gfx::Size max_frame_size = custom_frame_view->GetMaximumSize();
 | 
| -
 | 
| -  EXPECT_EQ(delegate->GetTitleBarHeight(), min_frame_size.height());
 | 
| -
 | 
| -  // A width and height constraint of 0 denotes unbounded.
 | 
| -  EXPECT_EQ(0, max_frame_size.width());
 | 
| -  EXPECT_EQ(0, max_frame_size.height());
 | 
| -}
 | 
| -
 | 
| -// Verify that CustomFrameViewAsh returns the correct minimum and maximum frame
 | 
| -// sizes when the client view specifies size constraints.
 | 
| -TEST_F(CustomFrameViewAshTest, MinimumAndMaximumSize) {
 | 
| -  gfx::Size min_client_size(500, 500);
 | 
| -  gfx::Size max_client_size(800, 800);
 | 
| -  TestWidgetConstraintsDelegate* delegate = new TestWidgetConstraintsDelegate;
 | 
| -  delegate->set_minimum_size(min_client_size);
 | 
| -  delegate->set_maximum_size(max_client_size);
 | 
| -  std::unique_ptr<views::Widget> widget(CreateWidget(delegate));
 | 
| -
 | 
| -  CustomFrameViewAsh* custom_frame_view = delegate->custom_frame_view();
 | 
| -  gfx::Size min_frame_size = custom_frame_view->GetMinimumSize();
 | 
| -  gfx::Size max_frame_size = custom_frame_view->GetMaximumSize();
 | 
| -
 | 
| -  EXPECT_EQ(min_client_size.width(), min_frame_size.width());
 | 
| -  EXPECT_EQ(max_client_size.width(), max_frame_size.width());
 | 
| -  EXPECT_EQ(min_client_size.height() + delegate->GetTitleBarHeight(),
 | 
| -            min_frame_size.height());
 | 
| -  EXPECT_EQ(max_client_size.height() + delegate->GetTitleBarHeight(),
 | 
| -            max_frame_size.height());
 | 
| -}
 | 
| -
 | 
| -// Verify that CustomFrameViewAsh updates the avatar icon based on the
 | 
| -// state of the SessionStateDelegate after visibility change.
 | 
| -TEST_F(CustomFrameViewAshTest, AvatarIcon) {
 | 
| -  TestWidgetConstraintsDelegate* delegate = new TestWidgetConstraintsDelegate;
 | 
| -  std::unique_ptr<views::Widget> widget(CreateWidget(delegate));
 | 
| -
 | 
| -  CustomFrameViewAsh* custom_frame_view = delegate->custom_frame_view();
 | 
| -  EXPECT_FALSE(custom_frame_view->GetAvatarIconViewForTest());
 | 
| -
 | 
| -  // Avatar image becomes available.
 | 
| -  GetTestSessionStateDelegate()->SetUserImage(
 | 
| -      gfx::test::CreateImage(27, 27).AsImageSkia());
 | 
| -  widget->Hide();
 | 
| -  widget->Show();
 | 
| -  EXPECT_TRUE(custom_frame_view->GetAvatarIconViewForTest());
 | 
| -
 | 
| -  // Avatar image is gone; the ImageView for the avatar icon should be
 | 
| -  // removed.
 | 
| -  GetTestSessionStateDelegate()->SetUserImage(gfx::ImageSkia());
 | 
| -  widget->Hide();
 | 
| -  widget->Show();
 | 
| -  EXPECT_FALSE(custom_frame_view->GetAvatarIconViewForTest());
 | 
| -}
 | 
| -
 | 
| -// The visibility of the size button is updated when maximize mode is toggled.
 | 
| -// Verify that the layout of the HeaderView is updated for the size button's
 | 
| -// new visibility.
 | 
| -TEST_F(CustomFrameViewAshTest, HeaderViewNotifiedOfChildSizeChange) {
 | 
| -  TestWidgetConstraintsDelegate* delegate = new TestWidgetConstraintsDelegate;
 | 
| -  std::unique_ptr<views::Widget> widget(CreateWidget(delegate));
 | 
| -
 | 
| -  const gfx::Rect initial =
 | 
| -      delegate->GetFrameCaptionButtonContainerViewBounds();
 | 
| -  WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager(
 | 
| -      true);
 | 
| -  delegate->EndFrameCaptionButtonContainerViewAnimations();
 | 
| -  const gfx::Rect maximize_mode_bounds =
 | 
| -      delegate->GetFrameCaptionButtonContainerViewBounds();
 | 
| -  EXPECT_GT(initial.width(), maximize_mode_bounds.width());
 | 
| -  WmShell::Get()->maximize_mode_controller()->EnableMaximizeModeWindowManager(
 | 
| -      false);
 | 
| -  delegate->EndFrameCaptionButtonContainerViewAnimations();
 | 
| -  const gfx::Rect after_restore =
 | 
| -      delegate->GetFrameCaptionButtonContainerViewBounds();
 | 
| -  EXPECT_EQ(initial, after_restore);
 | 
| -}
 | 
| -
 | 
| -}  // namespace ash
 | 
| 
 |