Chromium Code Reviews| Index: ui/views/widget/native_widget_mac_unittest.mm |
| diff --git a/ui/views/widget/native_widget_mac_unittest.mm b/ui/views/widget/native_widget_mac_unittest.mm |
| index 9cdcbe429d1039257f22c009b584d1e271e25f2c..b1b2620f59c5c09ce83dd133ce447e344fa02b94 100644 |
| --- a/ui/views/widget/native_widget_mac_unittest.mm |
| +++ b/ui/views/widget/native_widget_mac_unittest.mm |
| @@ -6,6 +6,7 @@ |
| #import <Cocoa/Cocoa.h> |
| +#include "base/run_loop.h" |
| #include "ui/views/test/test_widget_observer.h" |
| #include "ui/views/test/widget_test.h" |
| @@ -85,12 +86,18 @@ TEST_F(NativeWidgetMacTest, HideAndShowExternally) { |
| // Test when hiding the entire application. This doesn't send an orderOut: |
| // to the NSWindow. |
| [NSApp hide:nil]; |
| + // When the activation policy is NSApplicationActivationPolicyRegular, the |
| + // calls via NSApp are asynchronous, and the run loop needs to be flushed. |
| + // With NSApplicationActivationPolicyProhibited, the following RunUntilIdle |
| + // calls superfluous, but don't hurt. |
|
Andre
2014/12/22 19:31:00
calls are superfluous.
tapted
2014/12/22 21:58:03
Done.
|
| + base::RunLoop().RunUntilIdle(); |
| EXPECT_FALSE(widget->IsVisible()); |
| EXPECT_FALSE([ns_window isVisible]); |
| EXPECT_EQ(3, observer.gained_visible_count()); |
| EXPECT_EQ(3, observer.lost_visible_count()); |
| [NSApp unhideWithoutActivation]; |
| + base::RunLoop().RunUntilIdle(); |
| EXPECT_TRUE(widget->IsVisible()); |
| EXPECT_TRUE([ns_window isVisible]); |
| EXPECT_EQ(4, observer.gained_visible_count()); |
| @@ -98,14 +105,29 @@ TEST_F(NativeWidgetMacTest, HideAndShowExternally) { |
| // Hide again to test unhiding with an activation. |
| [NSApp hide:nil]; |
| + base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(4, observer.lost_visible_count()); |
| [NSApp unhide:nil]; |
| + base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(5, observer.gained_visible_count()); |
| + // Hide again to test makeKeyAndOrderFront:. |
| + [ns_window orderOut:nil]; |
| + EXPECT_FALSE(widget->IsVisible()); |
| + EXPECT_FALSE([ns_window isVisible]); |
| + EXPECT_EQ(5, observer.gained_visible_count()); |
| + EXPECT_EQ(5, observer.lost_visible_count()); |
| + |
| + [ns_window makeKeyAndOrderFront:nil]; |
| + EXPECT_TRUE(widget->IsVisible()); |
| + EXPECT_TRUE([ns_window isVisible]); |
| + EXPECT_EQ(6, observer.gained_visible_count()); |
| + EXPECT_EQ(5, observer.lost_visible_count()); |
| + |
| // No change when closing. |
| widget->CloseNow(); |
| - EXPECT_EQ(4, observer.lost_visible_count()); |
| - EXPECT_EQ(5, observer.gained_visible_count()); |
| + EXPECT_EQ(5, observer.lost_visible_count()); |
| + EXPECT_EQ(6, observer.gained_visible_count()); |
| } |
| // A view that counts calls to OnPaint(). |