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

Side by Side Diff: ash/frame/caption_buttons/frame_caption_button_container_view_unittest.cc

Issue 623613004: Revert of Make WindowState::CanMinimize() take into account WidgetDelegate::CanMinimize() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/frame/caption_buttons/frame_caption_button_container_view.h" 5 #include "ash/frame/caption_buttons/frame_caption_button_container_view.h"
6 6
7 #include "ash/frame/caption_buttons/frame_caption_button.h" 7 #include "ash/frame/caption_buttons/frame_caption_button.h"
8 #include "ash/shell.h" 8 #include "ash/shell.h"
9 #include "ash/test/ash_test_base.h" 9 #include "ash/test/ash_test_base.h"
10 #include "ash/wm/maximize_mode/maximize_mode_controller.h" 10 #include "ash/wm/maximize_mode/maximize_mode_controller.h"
11 #include "grit/ash_resources.h" 11 #include "grit/ash_resources.h"
12 #include "ui/gfx/geometry/rect.h" 12 #include "ui/gfx/geometry/rect.h"
13 #include "ui/views/widget/widget.h" 13 #include "ui/views/widget/widget.h"
14 #include "ui/views/widget/widget_delegate.h" 14 #include "ui/views/widget/widget_delegate.h"
15 15
16 namespace ash { 16 namespace ash {
17 17
18 namespace { 18 namespace {
19 19
20 class TestWidgetDelegate : public views::WidgetDelegateView { 20 class TestWidgetDelegate : public views::WidgetDelegateView {
21 public: 21 public:
22 TestWidgetDelegate(bool can_maximize, bool can_minimize) 22 explicit TestWidgetDelegate(bool can_maximize) : can_maximize_(can_maximize) {
23 : can_maximize_(can_maximize), can_minimize_(can_minimize) {} 23 }
24 virtual ~TestWidgetDelegate() { 24 virtual ~TestWidgetDelegate() {
25 } 25 }
26 26
27 virtual bool CanMaximize() const OVERRIDE { 27 virtual bool CanMaximize() const OVERRIDE {
28 return can_maximize_; 28 return can_maximize_;
29 } 29 }
30 30
31 virtual bool CanMinimize() const OVERRIDE { 31 virtual bool CanMinimize() const OVERRIDE {
32 return can_minimize_; 32 return can_maximize_;
33 } 33 }
34 34
35 private: 35 private:
36 bool can_maximize_; 36 bool can_maximize_;
37 bool can_minimize_;
38 37
39 DISALLOW_COPY_AND_ASSIGN(TestWidgetDelegate); 38 DISALLOW_COPY_AND_ASSIGN(TestWidgetDelegate);
40 }; 39 };
41 40
42 } // namespace 41 } // namespace
43 42
44 class FrameCaptionButtonContainerViewTest : public ash::test::AshTestBase { 43 class FrameCaptionButtonContainerViewTest : public ash::test::AshTestBase {
45 public: 44 public:
46 enum MaximizeAllowed { 45 enum MaximizeAllowed {
47 MAXIMIZE_ALLOWED, 46 MAXIMIZE_ALLOWED,
48 MAXIMIZE_DISALLOWED 47 MAXIMIZE_DISALLOWED
49 }; 48 };
50 49
51 enum MinimizeAllowed {
52 MINIMIZE_ALLOWED,
53 MINIMIZE_DISALLOWED
54 };
55
56 FrameCaptionButtonContainerViewTest() { 50 FrameCaptionButtonContainerViewTest() {
57 } 51 }
58 52
59 virtual ~FrameCaptionButtonContainerViewTest() { 53 virtual ~FrameCaptionButtonContainerViewTest() {
60 } 54 }
61 55
62 // Creates a widget which allows maximizing based on |maximize_allowed|. 56 // Creates a widget which allows maximizing based on |maximize_allowed|.
63 // The caller takes ownership of the returned widget. 57 // The caller takes ownership of the returned widget.
64 views::Widget* CreateTestWidget( 58 views::Widget* CreateTestWidget(
65 MaximizeAllowed maximize_allowed, 59 MaximizeAllowed maximize_allowed) WARN_UNUSED_RESULT {
66 MinimizeAllowed minimize_allowed) WARN_UNUSED_RESULT {
67 views::Widget* widget = new views::Widget; 60 views::Widget* widget = new views::Widget;
68 views::Widget::InitParams params; 61 views::Widget::InitParams params;
69 params.delegate = new TestWidgetDelegate( 62 params.delegate = new TestWidgetDelegate(
70 maximize_allowed == MAXIMIZE_ALLOWED, 63 maximize_allowed == MAXIMIZE_ALLOWED);
71 minimize_allowed == MINIMIZE_ALLOWED);
72 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 64 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
73 params.context = CurrentContext(); 65 params.context = CurrentContext();
74 widget->Init(params); 66 widget->Init(params);
75 return widget; 67 return widget;
76 } 68 }
77 69
78 // Sets |container| to use arbitrary images for the buttons. Setting the 70 // Sets |container| to use arbitrary images for the buttons. Setting the
79 // images causes the buttons to have non-empty sizes. 71 // images causes the buttons to have non-empty sizes.
80 void SetMockImages(FrameCaptionButtonContainerView* container) { 72 void SetMockImages(FrameCaptionButtonContainerView* container) {
81 for (int icon = 0; icon < CAPTION_BUTTON_ICON_COUNT; ++icon) { 73 for (int icon = 0; icon < CAPTION_BUTTON_ICON_COUNT; ++icon) {
(...skipping 29 matching lines...) Expand all
111 } 103 }
112 104
113 private: 105 private:
114 DISALLOW_COPY_AND_ASSIGN(FrameCaptionButtonContainerViewTest); 106 DISALLOW_COPY_AND_ASSIGN(FrameCaptionButtonContainerViewTest);
115 }; 107 };
116 108
117 // Test how the allowed actions affect which caption buttons are visible. 109 // Test how the allowed actions affect which caption buttons are visible.
118 TEST_F(FrameCaptionButtonContainerViewTest, ButtonVisibility) { 110 TEST_F(FrameCaptionButtonContainerViewTest, ButtonVisibility) {
119 // All the buttons should be visible when minimizing and maximizing are 111 // All the buttons should be visible when minimizing and maximizing are
120 // allowed. 112 // allowed.
121 FrameCaptionButtonContainerView container1( 113 scoped_ptr<views::Widget> widget_can_maximize(
122 CreateTestWidget(MAXIMIZE_ALLOWED, MINIMIZE_ALLOWED)); 114 CreateTestWidget(MAXIMIZE_ALLOWED));
115 FrameCaptionButtonContainerView container1(widget_can_maximize.get(),
116 FrameCaptionButtonContainerView::MINIMIZE_ALLOWED);
123 SetMockImages(&container1); 117 SetMockImages(&container1);
124 container1.Layout(); 118 container1.Layout();
125 FrameCaptionButtonContainerView::TestApi t1(&container1); 119 FrameCaptionButtonContainerView::TestApi t1(&container1);
126 EXPECT_TRUE(t1.minimize_button()->visible()); 120 EXPECT_TRUE(t1.minimize_button()->visible());
127 EXPECT_TRUE(t1.size_button()->visible()); 121 EXPECT_TRUE(t1.size_button()->visible());
128 EXPECT_TRUE(t1.close_button()->visible()); 122 EXPECT_TRUE(t1.close_button()->visible());
129 EXPECT_TRUE(CheckButtonsAtEdges( 123 EXPECT_TRUE(CheckButtonsAtEdges(
130 &container1, *t1.minimize_button(), *t1.close_button())); 124 &container1, *t1.minimize_button(), *t1.close_button()));
131 125
132 // The minimize button should be visible when minimizing is allowed but 126 // The minimize button should be visible when minimizing is allowed but
133 // maximizing is disallowed. 127 // maximizing is disallowed.
134 FrameCaptionButtonContainerView container2( 128 scoped_ptr<views::Widget> widget_cannot_maximize(
135 CreateTestWidget(MAXIMIZE_DISALLOWED, MINIMIZE_ALLOWED)); 129 CreateTestWidget(MAXIMIZE_DISALLOWED));
130 FrameCaptionButtonContainerView container2(widget_cannot_maximize.get(),
131 FrameCaptionButtonContainerView::MINIMIZE_ALLOWED);
136 SetMockImages(&container2); 132 SetMockImages(&container2);
137 container2.Layout(); 133 container2.Layout();
138 FrameCaptionButtonContainerView::TestApi t2(&container2); 134 FrameCaptionButtonContainerView::TestApi t2(&container2);
139 EXPECT_TRUE(t2.minimize_button()->visible()); 135 EXPECT_TRUE(t2.minimize_button()->visible());
140 EXPECT_FALSE(t2.size_button()->visible()); 136 EXPECT_FALSE(t2.size_button()->visible());
141 EXPECT_TRUE(t2.close_button()->visible()); 137 EXPECT_TRUE(t2.close_button()->visible());
142 EXPECT_TRUE(CheckButtonsAtEdges( 138 EXPECT_TRUE(CheckButtonsAtEdges(
143 &container2, *t2.minimize_button(), *t2.close_button())); 139 &container2, *t2.minimize_button(), *t2.close_button()));
144 140
145 // Neither the minimize button nor the size button should be visible when 141 // Neither the minimize button nor the size button should be visible when
146 // neither minimizing nor maximizing are allowed. 142 // neither minimizing nor maximizing are allowed.
147 FrameCaptionButtonContainerView container3( 143 FrameCaptionButtonContainerView container3(widget_cannot_maximize.get(),
148 CreateTestWidget(MAXIMIZE_DISALLOWED, MINIMIZE_DISALLOWED)); 144 FrameCaptionButtonContainerView::MINIMIZE_DISALLOWED);
149 SetMockImages(&container3); 145 SetMockImages(&container3);
150 container3.Layout(); 146 container3.Layout();
151 FrameCaptionButtonContainerView::TestApi t3(&container3); 147 FrameCaptionButtonContainerView::TestApi t3(&container3);
152 EXPECT_FALSE(t3.minimize_button()->visible()); 148 EXPECT_FALSE(t3.minimize_button()->visible());
153 EXPECT_FALSE(t3.size_button()->visible()); 149 EXPECT_FALSE(t3.size_button()->visible());
154 EXPECT_TRUE(t3.close_button()->visible()); 150 EXPECT_TRUE(t3.close_button()->visible());
155 EXPECT_TRUE(CheckButtonsAtEdges( 151 EXPECT_TRUE(CheckButtonsAtEdges(
156 &container3, *t3.close_button(), *t3.close_button())); 152 &container3, *t3.close_button(), *t3.close_button()));
157 } 153 }
158 154
159 // Tests that the layout animations trigered by button visibility result in the 155 // Tests that the layout animations trigered by button visibility result in the
160 // correct placement of the buttons. 156 // correct placement of the buttons.
161 TEST_F(FrameCaptionButtonContainerViewTest, 157 TEST_F(FrameCaptionButtonContainerViewTest,
162 TestUpdateSizeButtonVisibilityAnimation) { 158 TestUpdateSizeButtonVisibilityAnimation) {
163 FrameCaptionButtonContainerView container( 159 scoped_ptr<views::Widget> widget_can_maximize(
164 CreateTestWidget(MAXIMIZE_ALLOWED, MINIMIZE_ALLOWED)); 160 CreateTestWidget(MAXIMIZE_ALLOWED));
161 FrameCaptionButtonContainerView container(widget_can_maximize.get(),
162 FrameCaptionButtonContainerView::MINIMIZE_ALLOWED);
165 SetMockImages(&container); 163 SetMockImages(&container);
166 container.SetBoundsRect(gfx::Rect(container.GetPreferredSize())); 164 container.SetBoundsRect(gfx::Rect(container.GetPreferredSize()));
167 container.Layout(); 165 container.Layout();
168 166
169 FrameCaptionButtonContainerView::TestApi test(&container); 167 FrameCaptionButtonContainerView::TestApi test(&container);
170 gfx::Rect initial_minimize_button_bounds = test.minimize_button()->bounds(); 168 gfx::Rect initial_minimize_button_bounds = test.minimize_button()->bounds();
171 gfx::Rect initial_size_button_bounds = test.size_button()->bounds(); 169 gfx::Rect initial_size_button_bounds = test.size_button()->bounds();
172 gfx::Rect initial_close_button_bounds = test.close_button()->bounds(); 170 gfx::Rect initial_close_button_bounds = test.close_button()->bounds();
173 gfx::Rect initial_container_bounds = container.bounds(); 171 gfx::Rect initial_container_bounds = container.bounds();
174 172
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 EXPECT_TRUE(test.size_button()->visible()); 207 EXPECT_TRUE(test.size_button()->visible());
210 EXPECT_TRUE(test.close_button()->visible()); 208 EXPECT_TRUE(test.close_button()->visible());
211 EXPECT_EQ(initial_minimize_button_bounds, test.minimize_button()->bounds()); 209 EXPECT_EQ(initial_minimize_button_bounds, test.minimize_button()->bounds());
212 EXPECT_EQ(initial_size_button_bounds, test.size_button()->bounds()); 210 EXPECT_EQ(initial_size_button_bounds, test.size_button()->bounds());
213 EXPECT_EQ(initial_close_button_bounds, test.close_button()->bounds()); 211 EXPECT_EQ(initial_close_button_bounds, test.close_button()->bounds());
214 EXPECT_EQ(container.GetPreferredSize().width(), 212 EXPECT_EQ(container.GetPreferredSize().width(),
215 initial_container_bounds.width()); 213 initial_container_bounds.width());
216 } 214 }
217 215
218 } // namespace ash 216 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698