diff options
Diffstat (limited to 'ui/views/widget/widget_interactive_uitest.cc')
-rw-r--r-- | ui/views/widget/widget_interactive_uitest.cc | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/ui/views/widget/widget_interactive_uitest.cc b/ui/views/widget/widget_interactive_uitest.cc index 6ac9451..f55c375 100644 --- a/ui/views/widget/widget_interactive_uitest.cc +++ b/ui/views/widget/widget_interactive_uitest.cc @@ -741,7 +741,7 @@ TEST_F(WidgetTestInteractive, WindowModalWindowDestroyedActivationTest) { init_params.native_widget = new PlatformDesktopNativeWidget(&top_level_widget); top_level_widget.Init(init_params); - top_level_widget.Show(); + ShowSync(&top_level_widget); gfx::NativeView top_level_native_view = top_level_widget.GetNativeView(); ASSERT_FALSE(focus_listener.focus_changes().empty()); @@ -756,6 +756,9 @@ TEST_F(WidgetTestInteractive, WindowModalWindowDestroyedActivationTest) { Widget* modal_dialog_widget = views::DialogDelegate::CreateDialogWidget( dialog_delegate, NULL, top_level_widget.GetNativeView()); modal_dialog_widget->SetBounds(gfx::Rect(100, 100, 200, 200)); + + // Note the dialog widget doesn't need a ShowSync. Since it is modal, it gains + // active status synchronously, even on Mac. modal_dialog_widget->Show(); gfx::NativeView modal_native_view = modal_dialog_widget->GetNativeView(); @@ -763,7 +766,15 @@ TEST_F(WidgetTestInteractive, WindowModalWindowDestroyedActivationTest) { EXPECT_EQ(nullptr, focus_changes[1]); EXPECT_EQ(modal_native_view, focus_changes[2]); +#if defined(OS_MACOSX) + // Window modal dialogs on Mac are "sheets", which animate to close before + // activating their parent widget. + WidgetActivationWaiter waiter(&top_level_widget, true); + modal_dialog_widget->Close(); + waiter.Wait(); +#else modal_dialog_widget->CloseNow(); +#endif EXPECT_EQ(5u, focus_changes.size()); EXPECT_EQ(nullptr, focus_changes[3]); @@ -773,8 +784,18 @@ TEST_F(WidgetTestInteractive, WindowModalWindowDestroyedActivationTest) { WidgetFocusManager::GetInstance()->RemoveFocusChangeListener(&focus_listener); } +// Disabled on Mac. Desktop Mac doesn't have system modal windows since Carbon +// was deprecated. It does have application modal windows, but only Ash requests +// those. +#if defined(OS_MACOSX) && !defined(USE_AURA) +#define MAYBE_SystemModalWindowReleasesCapture \ + DISABLED_SystemModalWindowReleasesCapture +#else +#define MAYBE_SystemModalWindowReleasesCapture SystemModalWindowReleasesCapture +#endif + // Test that when opening a system-modal window, capture is released. -TEST_F(WidgetTestInteractive, SystemModalWindowReleasesCapture) { +TEST_F(WidgetTestInteractive, MAYBE_SystemModalWindowReleasesCapture) { TestWidgetFocusChangeListener focus_listener; WidgetFocusManager::GetInstance()->AddFocusChangeListener(&focus_listener); |