| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/common/test/ash_test.h" | 5 #include "ash/common/test/ash_test.h" |
| 6 | 6 |
| 7 #include "ash/common/test/ash_test_impl.h" | 7 #include "ash/common/test/ash_test_impl.h" |
| 8 #include "ash/common/wm_root_window_controller.h" |
| 8 #include "ash/common/wm_shell.h" | 9 #include "ash/common/wm_shell.h" |
| 9 #include "ash/common/wm_window.h" | 10 #include "ash/common/wm_window.h" |
| 11 #include "ash/test/test_session_state_delegate.h" |
| 12 #include "base/run_loop.h" |
| 10 #include "ui/compositor/layer_type.h" | 13 #include "ui/compositor/layer_type.h" |
| 11 #include "ui/display/display.h" | 14 #include "ui/display/display.h" |
| 12 | 15 |
| 13 namespace ash { | 16 namespace ash { |
| 14 | 17 |
| 15 WindowOwner::WindowOwner(WmWindow* window) : window_(window) {} | 18 WindowOwner::WindowOwner(WmWindow* window) : window_(window) {} |
| 16 | 19 |
| 17 WindowOwner::~WindowOwner() { | 20 WindowOwner::~WindowOwner() { |
| 18 window_->Destroy(); | 21 window_->Destroy(); |
| 19 } | 22 } |
| 20 | 23 |
| 21 AshTest::AshTest() : test_impl_(AshTestImpl::Create()) {} | 24 AshTest::AshTest() : test_impl_(AshTestImpl::Create()) {} |
| 22 | 25 |
| 23 AshTest::~AshTest() {} | 26 AshTest::~AshTest() {} |
| 24 | 27 |
| 25 bool AshTest::SupportsMultipleDisplays() const { | 28 bool AshTest::SupportsMultipleDisplays() const { |
| 26 return test_impl_->SupportsMultipleDisplays(); | 29 return test_impl_->SupportsMultipleDisplays(); |
| 27 } | 30 } |
| 28 | 31 |
| 29 void AshTest::UpdateDisplay(const std::string& display_spec) { | 32 void AshTest::UpdateDisplay(const std::string& display_spec) { |
| 30 return test_impl_->UpdateDisplay(display_spec); | 33 return test_impl_->UpdateDisplay(display_spec); |
| 31 } | 34 } |
| 32 | 35 |
| 33 std::unique_ptr<WindowOwner> AshTest::CreateTestWindow(const gfx::Rect& bounds, | 36 std::unique_ptr<WindowOwner> AshTest::CreateTestWindow(const gfx::Rect& bounds, |
| 34 ui::wm::WindowType type, | 37 ui::wm::WindowType type, |
| 35 int shell_window_id) { | 38 int shell_window_id) { |
| 36 return test_impl_->CreateTestWindow(bounds, type, shell_window_id); | 39 return test_impl_->CreateTestWindow(bounds, type, shell_window_id); |
| 37 } | 40 } |
| 38 | 41 |
| 42 std::unique_ptr<WindowOwner> AshTest::CreateToplevelTestWindow( |
| 43 const gfx::Rect& bounds_in_screen, |
| 44 int shell_window_id) { |
| 45 return test_impl_->CreateToplevelTestWindow(bounds_in_screen, |
| 46 shell_window_id); |
| 47 } |
| 48 |
| 39 std::unique_ptr<WindowOwner> AshTest::CreateChildWindow(WmWindow* parent, | 49 std::unique_ptr<WindowOwner> AshTest::CreateChildWindow(WmWindow* parent, |
| 40 const gfx::Rect& bounds, | 50 const gfx::Rect& bounds, |
| 41 int shell_window_id) { | 51 int shell_window_id) { |
| 42 std::unique_ptr<WindowOwner> window_owner = | 52 std::unique_ptr<WindowOwner> window_owner = |
| 43 base::MakeUnique<WindowOwner>(WmShell::Get()->NewWindow( | 53 base::MakeUnique<WindowOwner>(WmShell::Get()->NewWindow( |
| 44 ui::wm::WINDOW_TYPE_NORMAL, ui::LAYER_NOT_DRAWN)); | 54 ui::wm::WINDOW_TYPE_NORMAL, ui::LAYER_NOT_DRAWN)); |
| 45 window_owner->window()->SetBounds(bounds); | 55 window_owner->window()->SetBounds(bounds); |
| 46 window_owner->window()->SetShellWindowId(shell_window_id); | 56 window_owner->window()->SetShellWindowId(shell_window_id); |
| 47 parent->AddChild(window_owner->window()); | 57 parent->AddChild(window_owner->window()); |
| 48 window_owner->window()->Show(); | 58 window_owner->window()->Show(); |
| 49 return window_owner; | 59 return window_owner; |
| 50 } | 60 } |
| 51 | 61 |
| 52 display::Display AshTest::GetSecondaryDisplay() { | 62 display::Display AshTest::GetSecondaryDisplay() { |
| 53 return test_impl_->GetSecondaryDisplay(); | 63 return test_impl_->GetSecondaryDisplay(); |
| 54 } | 64 } |
| 55 | 65 |
| 56 bool AshTest::SetSecondaryDisplayPlacement( | 66 bool AshTest::SetSecondaryDisplayPlacement( |
| 57 display::DisplayPlacement::Position position, | 67 display::DisplayPlacement::Position position, |
| 58 int offset) { | 68 int offset) { |
| 59 return test_impl_->SetSecondaryDisplayPlacement(position, offset); | 69 return test_impl_->SetSecondaryDisplayPlacement(position, offset); |
| 60 } | 70 } |
| 61 | 71 |
| 72 void AshTest::ConfigureWidgetInitParamsForDisplay( |
| 73 WmWindow* window, |
| 74 views::Widget::InitParams* init_params) { |
| 75 test_impl_->ConfigureWidgetInitParamsForDisplay(window, init_params); |
| 76 } |
| 77 |
| 78 WmShelf* AshTest::GetPrimaryShelf() { |
| 79 return WmShell::Get() |
| 80 ->GetPrimaryRootWindow() |
| 81 ->GetRootWindowController() |
| 82 ->GetShelf(); |
| 83 } |
| 84 |
| 85 void AshTest::ParentWindowInPrimaryRootWindow(WmWindow* window) { |
| 86 window->SetParentUsingContext(WmShell::Get()->GetPrimaryRootWindow(), |
| 87 gfx::Rect()); |
| 88 } |
| 89 |
| 90 void AshTest::AddTransientChild(WmWindow* parent, WmWindow* window) { |
| 91 test_impl_->AddTransientChild(parent, window); |
| 92 } |
| 93 |
| 94 void AshTest::SetCanLockScreen(bool can_lock_screen) { |
| 95 CHECK(WmShell::HasInstance()); |
| 96 static_cast<ash::test::TestSessionStateDelegate*>( |
| 97 WmShell::Get()->GetSessionStateDelegate()) |
| 98 ->SetCanLockScreen(can_lock_screen); |
| 99 } |
| 100 |
| 101 void AshTest::RunAllPendingInMessageLoop() { |
| 102 base::RunLoop run_loop; |
| 103 run_loop.RunUntilIdle(); |
| 104 } |
| 105 |
| 62 void AshTest::SetUp() { | 106 void AshTest::SetUp() { |
| 63 test_impl_->SetUp(); | 107 test_impl_->SetUp(); |
| 64 } | 108 } |
| 65 | 109 |
| 66 void AshTest::TearDown() { | 110 void AshTest::TearDown() { |
| 67 test_impl_->TearDown(); | 111 test_impl_->TearDown(); |
| 68 } | 112 } |
| 69 | 113 |
| 70 } // namespace ash | 114 } // namespace ash |
| OLD | NEW |