Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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/wm/dock/docked_window_resizer.h" | 5 #include "ash/wm/dock/docked_window_resizer.h" |
| 6 | 6 |
| 7 #include "ash/ash_switches.h" | 7 #include "ash/ash_switches.h" |
| 8 #include "ash/root_window_controller.h" | 8 #include "ash/root_window_controller.h" |
| 9 #include "ash/screen_ash.h" | 9 #include "ash/screen_ash.h" |
| 10 #include "ash/shelf/shelf.h" | 10 #include "ash/shelf/shelf.h" |
| (...skipping 606 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 617 DragEnd(); | 617 DragEnd(); |
| 618 EXPECT_EQ(internal::kShellWindowId_DefaultContainer, | 618 EXPECT_EQ(internal::kShellWindowId_DefaultContainer, |
| 619 window->parent()->id()); | 619 window->parent()->id()); |
| 620 } | 620 } |
| 621 | 621 |
| 622 // Tests that reverting drag restores undocked state if a window was not docked. | 622 // Tests that reverting drag restores undocked state if a window was not docked. |
| 623 TEST_P(DockedWindowResizerTest, RevertDockedDragRevertsAttachment) { | 623 TEST_P(DockedWindowResizerTest, RevertDockedDragRevertsAttachment) { |
| 624 if (!SupportsHostWindowResize()) | 624 if (!SupportsHostWindowResize()) |
| 625 return; | 625 return; |
| 626 scoped_ptr<aura::Window> window(CreateTestWindow(gfx::Rect(0, 0, 201, 201))); | 626 scoped_ptr<aura::Window> window(CreateTestWindow(gfx::Rect(0, 0, 201, 201))); |
| 627 aura::Window* dock_container = Shell::GetContainer( | |
| 628 window->GetRootWindow(), | |
| 629 kShellWindowId_DockedContainer); | |
| 630 DockedWindowLayoutManager* manager = | |
| 631 static_cast<DockedWindowLayoutManager*>(dock_container->layout_manager()); | |
| 627 int previous_container_id = window->parent()->id(); | 632 int previous_container_id = window->parent()->id(); |
| 628 // Drag the window out but revert the drag | 633 // Drag the window out but revert the drag |
| 629 ASSERT_NO_FATAL_FAILURE(DragStart(window.get())); | 634 ASSERT_NO_FATAL_FAILURE(DragStart(window.get())); |
| 630 DragMove(-50 - window->bounds().x(), 50 - window->bounds().y()); | 635 DragMove(-50 - window->bounds().x(), 50 - window->bounds().y()); |
| 631 EXPECT_EQ(CorrectContainerIdDuringDrag(), window->parent()->id()); | 636 EXPECT_EQ(CorrectContainerIdDuringDrag(), window->parent()->id()); |
| 632 DragRevert(); | 637 DragRevert(); |
| 633 EXPECT_EQ(previous_container_id, window->parent()->id()); | 638 EXPECT_EQ(previous_container_id, window->parent()->id()); |
| 639 EXPECT_EQ(DOCKED_ALIGNMENT_NONE, docked_alignment(manager)); | |
| 640 | |
| 641 // Drag a window to the left so that it overlaps the screen edge. | |
| 642 ASSERT_NO_FATAL_FAILURE(DragStartAtOffsetFromWindowOrigin( | |
| 643 window.get(), | |
| 644 window->bounds().width()/2 + 10, | |
| 645 0)); | |
| 646 DragMove(-50 - window->bounds().x(), 50 - window->bounds().y()); | |
| 647 DragEnd(); | |
| 648 // The window now overlaps the left screen edge but is not docked. | |
| 649 EXPECT_EQ(kShellWindowId_DefaultContainer, window->parent()->id()); | |
| 650 EXPECT_EQ(DOCKED_ALIGNMENT_NONE, docked_alignment(manager)); | |
|
pkotwicz
2014/01/16 21:43:27
Nit: It may be useful to test that the window is a
varkha
2014/01/16 23:34:14
Done.
| |
| 651 | |
| 652 // Drag the window further left and revert the drag. | |
| 653 ASSERT_NO_FATAL_FAILURE(DragStartAtOffsetFromWindowOrigin( | |
| 654 window.get(), | |
| 655 window->bounds().width()/2 + 10, | |
| 656 0)); | |
| 657 DragMove(-10, 10); | |
| 658 DragRevert(); | |
| 659 // The window should be in default container and not docked. | |
| 660 EXPECT_EQ(kShellWindowId_DefaultContainer, window->parent()->id()); | |
| 661 // Docked area alignment should be cleared. | |
| 662 EXPECT_EQ(DOCKED_ALIGNMENT_NONE, docked_alignment(manager)); | |
| 634 } | 663 } |
| 635 | 664 |
| 636 // Move a docked window to the second display | 665 // Move a docked window to the second display |
| 637 TEST_P(DockedWindowResizerTest, DragAcrossDisplays) { | 666 TEST_P(DockedWindowResizerTest, DragAcrossDisplays) { |
| 638 if (!SupportsMultipleDisplays()) | 667 if (!SupportsMultipleDisplays()) |
| 639 return; | 668 return; |
| 640 | 669 |
| 641 UpdateDisplay("800x800,800x800"); | 670 UpdateDisplay("800x800,800x800"); |
| 642 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); | 671 aura::Window::Windows root_windows = Shell::GetAllRootWindows(); |
| 643 EXPECT_EQ(2, static_cast<int>(root_windows.size())); | 672 EXPECT_EQ(2, static_cast<int>(root_windows.size())); |
| (...skipping 840 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1484 EXPECT_TRUE(window_state->IsSnapped()); | 1513 EXPECT_TRUE(window_state->IsSnapped()); |
| 1485 } | 1514 } |
| 1486 | 1515 |
| 1487 // Tests run twice - on both panels and normal windows | 1516 // Tests run twice - on both panels and normal windows |
| 1488 INSTANTIATE_TEST_CASE_P(NormalOrPanel, | 1517 INSTANTIATE_TEST_CASE_P(NormalOrPanel, |
| 1489 DockedWindowResizerTest, | 1518 DockedWindowResizerTest, |
| 1490 testing::Values(ui::wm::WINDOW_TYPE_NORMAL, | 1519 testing::Values(ui::wm::WINDOW_TYPE_NORMAL, |
| 1491 ui::wm::WINDOW_TYPE_PANEL)); | 1520 ui::wm::WINDOW_TYPE_PANEL)); |
| 1492 } // namespace internal | 1521 } // namespace internal |
| 1493 } // namespace ash | 1522 } // namespace ash |
| OLD | NEW |