OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/wm/custom_frame_view_ash.h" | 5 #include "ash/wm/custom_frame_view_ash.h" |
6 | 6 |
7 #include "ash/shell.h" | 7 #include "ash/shell.h" |
8 #include "ash/test/ash_test_base.h" | 8 #include "ash/test/ash_test_base.h" |
9 #include "ash/wm/maximize_bubble_controller.h" | 9 #include "ash/wm/maximize_bubble_controller.h" |
10 #include "ash/wm/window_util.h" | 10 #include "ash/wm/window_util.h" |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 } | 150 } |
151 | 151 |
152 // Tests that click+dragging on the resize-button tiles or minimizes the window. | 152 // Tests that click+dragging on the resize-button tiles or minimizes the window. |
153 TEST_F(CustomFrameViewAshTest, ResizeButtonDrag) { | 153 TEST_F(CustomFrameViewAshTest, ResizeButtonDrag) { |
154 views::Widget* widget = CreateWidget(); | 154 views::Widget* widget = CreateWidget(); |
155 aura::Window* window = widget->GetNativeWindow(); | 155 aura::Window* window = widget->GetNativeWindow(); |
156 CustomFrameViewAsh* frame = custom_frame_view_ash(widget); | 156 CustomFrameViewAsh* frame = custom_frame_view_ash(widget); |
157 CustomFrameViewAsh::TestApi test(frame); | 157 CustomFrameViewAsh::TestApi test(frame); |
158 views::View* view = test.maximize_button(); | 158 views::View* view = test.maximize_button(); |
159 gfx::Point center = view->GetBoundsInScreen().CenterPoint(); | 159 gfx::Point center = view->GetBoundsInScreen().CenterPoint(); |
160 const int kGridSize = ash::Shell::GetInstance()->GetGridSize(); | |
161 | 160 |
162 aura::test::EventGenerator generator(window->GetRootWindow(), center); | 161 aura::test::EventGenerator generator(window->GetRootWindow(), center); |
163 | 162 |
164 EXPECT_TRUE(ash::wm::IsWindowNormal(window)); | 163 EXPECT_TRUE(ash::wm::IsWindowNormal(window)); |
165 | 164 |
166 // Snap right. | 165 // Snap right. |
167 { | 166 { |
168 generator.PressLeftButton(); | 167 generator.PressLeftButton(); |
169 generator.MoveMouseBy(10, 0); | 168 generator.MoveMouseBy(10, 0); |
170 generator.ReleaseLeftButton(); | 169 generator.ReleaseLeftButton(); |
171 RunAllPendingInMessageLoop(); | 170 RunAllPendingInMessageLoop(); |
172 | 171 |
173 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); | 172 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); |
174 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); | 173 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); |
175 internal::SnapSizer sizer(window, center, | 174 internal::SnapSizer sizer(window, center, |
176 internal::SnapSizer::RIGHT_EDGE, kGridSize); | 175 internal::SnapSizer::RIGHT_EDGE); |
177 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); | 176 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); |
178 } | 177 } |
179 | 178 |
180 // Snap left. | 179 // Snap left. |
181 { | 180 { |
182 center = view->GetBoundsInScreen().CenterPoint(); | 181 center = view->GetBoundsInScreen().CenterPoint(); |
183 generator.MoveMouseTo(center); | 182 generator.MoveMouseTo(center); |
184 generator.PressLeftButton(); | 183 generator.PressLeftButton(); |
185 generator.MoveMouseBy(-10, 0); | 184 generator.MoveMouseBy(-10, 0); |
186 generator.ReleaseLeftButton(); | 185 generator.ReleaseLeftButton(); |
187 RunAllPendingInMessageLoop(); | 186 RunAllPendingInMessageLoop(); |
188 | 187 |
189 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); | 188 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); |
190 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); | 189 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); |
191 internal::SnapSizer sizer(window, center, | 190 internal::SnapSizer sizer(window, center, |
192 internal::SnapSizer::LEFT_EDGE, kGridSize); | 191 internal::SnapSizer::LEFT_EDGE); |
193 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); | 192 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); |
194 } | 193 } |
195 | 194 |
196 // Minimize. | 195 // Minimize. |
197 { | 196 { |
198 center = view->GetBoundsInScreen().CenterPoint(); | 197 center = view->GetBoundsInScreen().CenterPoint(); |
199 generator.MoveMouseTo(center); | 198 generator.MoveMouseTo(center); |
200 generator.PressLeftButton(); | 199 generator.PressLeftButton(); |
201 generator.MoveMouseBy(0, 10); | 200 generator.MoveMouseBy(0, 10); |
202 generator.ReleaseLeftButton(); | 201 generator.ReleaseLeftButton(); |
(...skipping 12 matching lines...) Expand all Loading... |
215 gfx::Point end = center; | 214 gfx::Point end = center; |
216 end.Offset(40, 0); | 215 end.Offset(40, 0); |
217 generator.GestureScrollSequence(center, end, | 216 generator.GestureScrollSequence(center, end, |
218 base::TimeDelta::FromMilliseconds(100), | 217 base::TimeDelta::FromMilliseconds(100), |
219 3); | 218 3); |
220 RunAllPendingInMessageLoop(); | 219 RunAllPendingInMessageLoop(); |
221 | 220 |
222 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); | 221 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); |
223 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); | 222 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); |
224 internal::SnapSizer sizer(window, center, | 223 internal::SnapSizer sizer(window, center, |
225 internal::SnapSizer::RIGHT_EDGE, kGridSize); | 224 internal::SnapSizer::RIGHT_EDGE); |
226 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); | 225 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); |
227 } | 226 } |
228 | 227 |
229 // Snap left. | 228 // Snap left. |
230 { | 229 { |
231 center = view->GetBoundsInScreen().CenterPoint(); | 230 center = view->GetBoundsInScreen().CenterPoint(); |
232 gfx::Point end = center; | 231 gfx::Point end = center; |
233 end.Offset(-40, 0); | 232 end.Offset(-40, 0); |
234 generator.GestureScrollSequence(center, end, | 233 generator.GestureScrollSequence(center, end, |
235 base::TimeDelta::FromMilliseconds(100), | 234 base::TimeDelta::FromMilliseconds(100), |
236 3); | 235 3); |
237 RunAllPendingInMessageLoop(); | 236 RunAllPendingInMessageLoop(); |
238 | 237 |
239 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); | 238 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); |
240 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); | 239 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); |
241 internal::SnapSizer sizer(window, center, | 240 internal::SnapSizer sizer(window, center, |
242 internal::SnapSizer::LEFT_EDGE, kGridSize); | 241 internal::SnapSizer::LEFT_EDGE); |
243 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); | 242 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); |
244 } | 243 } |
245 | 244 |
246 // Minimize. | 245 // Minimize. |
247 { | 246 { |
248 center = view->GetBoundsInScreen().CenterPoint(); | 247 center = view->GetBoundsInScreen().CenterPoint(); |
249 gfx::Point end = center; | 248 gfx::Point end = center; |
250 end.Offset(0, 40); | 249 end.Offset(0, 40); |
251 generator.GestureScrollSequence(center, end, | 250 generator.GestureScrollSequence(center, end, |
252 base::TimeDelta::FromMilliseconds(100), | 251 base::TimeDelta::FromMilliseconds(100), |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
332 generator.MoveMouseTo(off_pos); | 331 generator.MoveMouseTo(off_pos); |
333 generator.ReleaseLeftButton(); | 332 generator.ReleaseLeftButton(); |
334 | 333 |
335 // Check that the phantom window is also gone. | 334 // Check that the phantom window is also gone. |
336 EXPECT_FALSE(maximize_button->phantom_window_open()); | 335 EXPECT_FALSE(maximize_button->phantom_window_open()); |
337 } | 336 } |
338 | 337 |
339 // Test that clicking a button in the maximizer bubble (in this case the | 338 // Test that clicking a button in the maximizer bubble (in this case the |
340 // maximize left button) will do the requested action. | 339 // maximize left button) will do the requested action. |
341 TEST_F(CustomFrameViewAshTest, MaximizeLeftByButton) { | 340 TEST_F(CustomFrameViewAshTest, MaximizeLeftByButton) { |
342 const int kGridSize = ash::Shell::GetInstance()->GetGridSize(); | |
343 views::Widget* widget = CreateWidget(); | 341 views::Widget* widget = CreateWidget(); |
344 aura::Window* window = widget->GetNativeWindow(); | 342 aura::Window* window = widget->GetNativeWindow(); |
345 CustomFrameViewAsh* frame = custom_frame_view_ash(widget); | 343 CustomFrameViewAsh* frame = custom_frame_view_ash(widget); |
346 CustomFrameViewAsh::TestApi test(frame); | 344 CustomFrameViewAsh::TestApi test(frame); |
347 ash::FrameMaximizeButton* maximize_button = test.maximize_button(); | 345 ash::FrameMaximizeButton* maximize_button = test.maximize_button(); |
348 maximize_button->set_bubble_appearance_delay_ms(0); | 346 maximize_button->set_bubble_appearance_delay_ms(0); |
349 gfx::Point button_pos = maximize_button->GetBoundsInScreen().CenterPoint(); | 347 gfx::Point button_pos = maximize_button->GetBoundsInScreen().CenterPoint(); |
350 gfx::Point off_pos(button_pos.x() + 100, button_pos.y() + 100); | 348 gfx::Point off_pos(button_pos.x() + 100, button_pos.y() + 100); |
351 | 349 |
352 aura::test::EventGenerator generator(window->GetRootWindow(), off_pos); | 350 aura::test::EventGenerator generator(window->GetRootWindow(), off_pos); |
(...skipping 11 matching lines...) Expand all Loading... |
364 generator.MoveMouseTo(left_max_pos); | 362 generator.MoveMouseTo(left_max_pos); |
365 EXPECT_TRUE(maximize_button->phantom_window_open()); | 363 EXPECT_TRUE(maximize_button->phantom_window_open()); |
366 generator.ClickLeftButton(); | 364 generator.ClickLeftButton(); |
367 | 365 |
368 EXPECT_FALSE(maximize_button->maximizer()); | 366 EXPECT_FALSE(maximize_button->maximizer()); |
369 EXPECT_FALSE(maximize_button->phantom_window_open()); | 367 EXPECT_FALSE(maximize_button->phantom_window_open()); |
370 | 368 |
371 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); | 369 EXPECT_FALSE(ash::wm::IsWindowMaximized(window)); |
372 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); | 370 EXPECT_FALSE(ash::wm::IsWindowMinimized(window)); |
373 internal::SnapSizer sizer(window, button_pos, | 371 internal::SnapSizer sizer(window, button_pos, |
374 internal::SnapSizer::LEFT_EDGE, kGridSize); | 372 internal::SnapSizer::LEFT_EDGE); |
375 sizer.SelectDefaultSizeAndDisableResize(); | 373 sizer.SelectDefaultSizeAndDisableResize(); |
376 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); | 374 EXPECT_EQ(sizer.target_bounds().ToString(), window->bounds().ToString()); |
377 } | 375 } |
378 | 376 |
379 // Test that the activation focus does not change when the bubble gets shown. | 377 // Test that the activation focus does not change when the bubble gets shown. |
380 TEST_F(CustomFrameViewAshTest, MaximizeKeepFocus) { | 378 TEST_F(CustomFrameViewAshTest, MaximizeKeepFocus) { |
381 views::Widget* widget = CreateWidget(); | 379 views::Widget* widget = CreateWidget(); |
382 aura::Window* window = widget->GetNativeWindow(); | 380 aura::Window* window = widget->GetNativeWindow(); |
383 CustomFrameViewAsh* frame = custom_frame_view_ash(widget); | 381 CustomFrameViewAsh* frame = custom_frame_view_ash(widget); |
384 CustomFrameViewAsh::TestApi test(frame); | 382 CustomFrameViewAsh::TestApi test(frame); |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
605 EXPECT_EQ(new_bounds.x(), initial_bounds.x()); | 603 EXPECT_EQ(new_bounds.x(), initial_bounds.x()); |
606 EXPECT_EQ(new_bounds.y(), initial_bounds.x()); | 604 EXPECT_EQ(new_bounds.y(), initial_bounds.x()); |
607 EXPECT_EQ(new_bounds.width(), initial_bounds.width()); | 605 EXPECT_EQ(new_bounds.width(), initial_bounds.width()); |
608 EXPECT_EQ(new_bounds.height(), initial_bounds.height()); | 606 EXPECT_EQ(new_bounds.height(), initial_bounds.height()); |
609 // Make sure that there is no restore rectangle left. | 607 // Make sure that there is no restore rectangle left. |
610 EXPECT_EQ(NULL, window->GetProperty(aura::client::kRestoreBoundsKey)); | 608 EXPECT_EQ(NULL, window->GetProperty(aura::client::kRestoreBoundsKey)); |
611 } | 609 } |
612 | 610 |
613 } // namespace internal | 611 } // namespace internal |
614 } // namespace ash | 612 } // namespace ash |
OLD | NEW |