Index: chrome/browser/ui/cocoa/apps/native_app_window_cocoa_browsertest.mm |
diff --git a/chrome/browser/ui/cocoa/apps/native_app_window_cocoa_browsertest.mm b/chrome/browser/ui/cocoa/apps/native_app_window_cocoa_browsertest.mm |
index 3992b5f43cdf629dddcae3215d33a6d62e4956bc..bd4858c29a10e86625d10d17847560604e1b4b55 100644 |
--- a/chrome/browser/ui/cocoa/apps/native_app_window_cocoa_browsertest.mm |
+++ b/chrome/browser/ui/cocoa/apps/native_app_window_cocoa_browsertest.mm |
@@ -240,3 +240,49 @@ IN_PROC_BROWSER_TEST_F(NativeAppWindowCocoaBrowserTest, Frameless) { |
CloseAppWindow(app_window); |
} |
+ |
+// Test that resize and fullscreen controls are correctly enabled/disabled. |
+IN_PROC_BROWSER_TEST_F(NativeAppWindowCocoaBrowserTest, Controls) { |
+ extensions::AppWindow* app_window = CreateTestAppWindow("{}"); |
+ NSWindow* ns_window = app_window->GetNativeWindow(); |
+ |
+ // The window is resizable. |
+ EXPECT_TRUE([ns_window styleMask] & NSResizableWindowMask); |
+ if (base::mac::IsOSSnowLeopard()) |
+ EXPECT_TRUE([ns_window showsResizeIndicator]); |
+ |
+ // The window can fullscreen and maximize. |
+ if (base::mac::IsOSLionOrLater()) |
+ EXPECT_TRUE([ns_window collectionBehavior] & |
+ NSWindowCollectionBehaviorFullScreenPrimary); |
+ EXPECT_TRUE([[ns_window standardWindowButton:NSWindowZoomButton] isEnabled]); |
+ |
+ // Set a maximum size. |
+ app_window->SetContentSizeConstraints(gfx::Size(), gfx::Size(200, 201)); |
+ EXPECT_EQ(200, [ns_window frame].size.width); |
+ EXPECT_EQ(201, [ns_window frame].size.height); |
+ EXPECT_EQ(200, [ns_window contentMaxSize].width); |
+ EXPECT_EQ(201, [ns_window contentMaxSize].height); |
+ |
+ // Still resizable. |
+ EXPECT_TRUE([ns_window styleMask] & NSResizableWindowMask); |
+ if (base::mac::IsOSSnowLeopard()) |
+ EXPECT_TRUE([ns_window showsResizeIndicator]); |
+ |
+ // Fullscreen and maximize are disabled. |
+ if (base::mac::IsOSLionOrLater()) |
+ EXPECT_FALSE([ns_window collectionBehavior] & |
+ NSWindowCollectionBehaviorFullScreenPrimary); |
+ EXPECT_FALSE([[ns_window standardWindowButton:NSWindowZoomButton] isEnabled]); |
+ |
+ // Set a minimum size equal to the maximum size. |
+ app_window->SetContentSizeConstraints(gfx::Size(200, 201), |
+ gfx::Size(200, 201)); |
+ EXPECT_EQ(200, [ns_window contentMinSize].width); |
+ EXPECT_EQ(201, [ns_window contentMinSize].height); |
+ |
+ // No longer resizable. |
+ EXPECT_FALSE([ns_window styleMask] & NSResizableWindowMask); |
+ if (base::mac::IsOSSnowLeopard()) |
+ EXPECT_FALSE([ns_window showsResizeIndicator]); |
+} |