summaryrefslogtreecommitdiffstats
path: root/ui/views/widget/widget_interactive_uitest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ui/views/widget/widget_interactive_uitest.cc')
-rw-r--r--ui/views/widget/widget_interactive_uitest.cc25
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);