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

Unified Diff: ash/wm/window_state_unittest.cc

Issue 255063004: Ignoring minimum size requirements for maximized windows, full screen windows and too small screens (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: The panel layout manager was also required Created 6 years, 8 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
« no previous file with comments | « ash/wm/window_state.cc ('k') | ui/aura/window.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/wm/window_state_unittest.cc
diff --git a/ash/wm/window_state_unittest.cc b/ash/wm/window_state_unittest.cc
index 2b4e8a34b25bdc0dbc51d6259e4776fa6a678042..b81f4ca5e74a6cb588f3704c7563291f97fc60e8 100644
--- a/ash/wm/window_state_unittest.cc
+++ b/ash/wm/window_state_unittest.cc
@@ -130,6 +130,67 @@ TEST_F(WindowStateTest, SnapWindowMinimumSize) {
EXPECT_FALSE(window_state->CanSnap());
}
+// Test that the minimum size specified by aura::WindowDelegate gets respected.
+TEST_F(WindowStateTest, TestRespectMinimumSize) {
+ if (!SupportsHostWindowResize())
+ return;
+
+ UpdateDisplay("0+0-1024x768");
+
+ aura::test::TestWindowDelegate delegate;
+ const gfx::Size minimum_size(gfx::Size(500, 300));
+ delegate.set_minimum_size(minimum_size);
+
+ scoped_ptr<aura::Window> window(CreateTestWindowInShellWithDelegate(
+ &delegate, -1, gfx::Rect(0, 100, 100, 100)));
+
+ // Check that the window has the correct minimum size.
+ EXPECT_EQ(minimum_size.ToString(), window->bounds().size().ToString());
+
+ // Set the size to something bigger - that should work.
+ gfx::Rect bigger_bounds(700, 500, 700, 500);
+ window->SetBounds(bigger_bounds);
+ EXPECT_EQ(bigger_bounds.ToString(), window->bounds().ToString());
+
+ // Set the size to something smaller - that should only resize to the smallest
+ // possible size.
+ gfx::Rect smaller_bounds(700, 500, 100, 100);
+ window->SetBounds(smaller_bounds);
+ EXPECT_EQ(minimum_size.ToString(), window->bounds().size().ToString());
+}
+
+// Test that the minimum window size specified by aura::WindowDelegate does not
+// exceed the screen size.
+TEST_F(WindowStateTest, TestIgnoreTooBigMinimumSize) {
+ if (!SupportsHostWindowResize())
+ return;
+
+ UpdateDisplay("0+0-1024x768");
+ const gfx::Size work_area_size =
+ ash::Shell::GetScreen()->GetPrimaryDisplay().work_area().size();
+ const gfx::Size illegal_size(1280, 960);
+ const gfx::Rect illegal_bounds(gfx::Point(0, 0), illegal_size);
+
+ aura::test::TestWindowDelegate delegate;
+ const gfx::Size minimum_size(illegal_size);
+ delegate.set_minimum_size(minimum_size);
+
+ // The creation should force the window to respect the screen size.
+ scoped_ptr<aura::Window> window(CreateTestWindowInShellWithDelegate(
+ &delegate, -1, illegal_bounds));
+ EXPECT_EQ(work_area_size.ToString(), window->bounds().size().ToString());
+
+ // Trying to set the size to something bigger then the screen size should be
+ // ignored.
+ window->SetBounds(illegal_bounds);
+ EXPECT_EQ(work_area_size.ToString(), window->bounds().size().ToString());
+
+ // Maximizing the window should not allow it to go bigger than that either.
+ WindowState* window_state = GetWindowState(window.get());
+ window_state->Maximize();
+ EXPECT_EQ(work_area_size.ToString(), window->bounds().size().ToString());
+}
+
// Test that setting the bounds of a snapped window keeps its snapped.
TEST_F(WindowStateTest, SnapWindowSetBounds) {
if (!SupportsHostWindowResize())
« no previous file with comments | « ash/wm/window_state.cc ('k') | ui/aura/window.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698