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

Unified Diff: chrome/browser/ui/cocoa/apps/native_app_window_cocoa_browsertest.mm

Issue 1023083002: [MacViews] Implement size constraints for app windows. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments. 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: 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..3a3b34b1c27c62be35b63e30403f830a16ac8b14 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,61 @@ IN_PROC_BROWSER_TEST_F(NativeAppWindowCocoaBrowserTest, Frameless) {
CloseAppWindow(app_window);
}
+
+namespace {
+
+// Test that resize and fullscreen controls are correctly enabled/disabled.
+void TestControls(extensions::AppWindow* app_window) {
+ 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 contentMaxSize].width);
+ EXPECT_EQ(201, [ns_window contentMaxSize].height);
+ NSView* web_contents = app_window->web_contents()->GetNativeView();
+ EXPECT_EQ(200, [web_contents frame].size.width);
+ EXPECT_EQ(201, [web_contents frame].size.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]);
+}
+
+} // namespace
+
+IN_PROC_BROWSER_TEST_F(NativeAppWindowCocoaBrowserTest, Controls) {
+ TestControls(CreateTestAppWindow("{}"));
+}
+
+IN_PROC_BROWSER_TEST_F(NativeAppWindowCocoaBrowserTest, ControlsFrameless) {
+ TestControls(CreateTestAppWindow("{\"frame\": \"none\"}"));
+}

Powered by Google App Engine
This is Rietveld 408576698