Index: ash/test/ash_test_base.cc |
diff --git a/ash/test/ash_test_base.cc b/ash/test/ash_test_base.cc |
index 1025cd8b6d75af45f99d1fd33844a7702aed5b4d..bee7d9c8e3b69694131ddd31dfe9b749ee72fa06 100644 |
--- a/ash/test/ash_test_base.cc |
+++ b/ash/test/ash_test_base.cc |
@@ -11,6 +11,9 @@ |
#include "ash/common/wm_root_window_controller.h" |
#include "ash/common/wm_shell.h" |
#include "ash/common/wm_window.h" |
+#include "ash/display/extended_mouse_warp_controller.h" |
+#include "ash/display/mouse_cursor_event_filter.h" |
+#include "ash/display/unified_mouse_warp_controller.h" |
#include "ash/display/window_tree_host_manager.h" |
#include "ash/ime/input_method_event_handler.h" |
#include "ash/shell.h" |
@@ -25,6 +28,7 @@ |
#include "ui/aura/client/aura_constants.h" |
#include "ui/aura/client/screen_position_client.h" |
#include "ui/aura/client/window_tree_client.h" |
+#include "ui/aura/env.h" |
#include "ui/aura/test/event_generator_delegate_aura.h" |
#include "ui/aura/test/test_window_delegate.h" |
#include "ui/aura/window.h" |
@@ -209,7 +213,8 @@ bool AshTestBase::SupportsMultipleDisplays() { |
// static |
void AshTestBase::UpdateDisplay(const std::string& display_specs) { |
- DisplayManagerTestApi().UpdateDisplay(display_specs); |
+ DisplayManagerTestApi(Shell::GetInstance()->display_manager()) |
+ .UpdateDisplay(display_specs); |
} |
aura::Window* AshTestBase::CurrentContext() { |
@@ -372,5 +377,35 @@ void AshTestBase::DisableIME() { |
->input_method_event_handler()); |
} |
+DisplayManager* AshTestBase::display_manager() { |
+ return Shell::GetInstance()->display_manager(); |
+} |
+ |
+bool AshTestBase::TestIfMouseWarpsAt(ui::test::EventGenerator& event_generator, |
+ const gfx::Point& point_in_screen) { |
+ DCHECK(!Shell::GetInstance()->display_manager()->IsInUnifiedMode()); |
+ static_cast<ExtendedMouseWarpController*>( |
+ Shell::GetInstance() |
+ ->mouse_cursor_filter() |
+ ->mouse_warp_controller_for_test()) |
+ ->allow_non_native_event_for_test(); |
+ display::Screen* screen = display::Screen::GetScreen(); |
+ display::Display original_display = |
+ screen->GetDisplayNearestPoint(point_in_screen); |
+ event_generator.MoveMouseTo(point_in_screen); |
+ return original_display.id() != |
+ screen |
+ ->GetDisplayNearestPoint( |
+ aura::Env::GetInstance()->last_mouse_location()) |
+ .id(); |
+} |
+ |
+void AshTestBase::SwapPrimaryDisplay() { |
+ if (display::Screen::GetScreen()->GetNumDisplays() <= 1) |
+ return; |
+ Shell::GetInstance()->window_tree_host_manager()->SetPrimaryDisplayId( |
+ display_manager()->GetSecondaryDisplay().id()); |
+} |
+ |
} // namespace test |
} // namespace ash |