Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(431)

Unified Diff: ui/views/widget/widget_interactive_uitest.cc

Issue 993253002: MacViews: Implement Window-modal dialogs using sheets (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update isolate Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/views/widget/widget_interactive_uitest.cc
diff --git a/ui/views/widget/widget_interactive_uitest.cc b/ui/views/widget/widget_interactive_uitest.cc
index 6ac9451c124230c589fd5f0c8006babf0cf74f5a..f55c37569a0e8902025d4705bf6a8facbf9235fb 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);
« chrome/interactive_ui_tests.isolate ('K') | « ui/views/widget/native_widget_mac.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698