Chromium Code Reviews| Index: chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc |
| diff --git a/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc b/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc |
| index 4bd32d5ec0207c69c2bb9cc3ac9aaa0028ca9279..103d37e5ab17b3aaaf6c47d7cb09bf528e51f9f3 100644 |
| --- a/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc |
| +++ b/chrome/browser/ui/window_sizer/window_sizer_ash_unittest.cc |
| @@ -752,12 +752,23 @@ TEST_F(WindowSizerAshTest, MAYBE_TestShowState) { |
| ui::SHOW_STATE_NORMAL, |
| BOTH, |
| browser_window->browser(), |
| + p1600x1200, |
| p1600x1200)); |
| + // A window that is less than the whole work area is set to default state. |
|
msw
2014/08/05 16:44:38
nit: s/that is less/smaller/
varkha
2014/08/05 17:55:23
Done.
|
| EXPECT_EQ(ui::SHOW_STATE_DEFAULT, |
| GetWindowShowState(ui::SHOW_STATE_DEFAULT, |
| ui::SHOW_STATE_NORMAL, |
| BOTH, |
| browser_window->browser(), |
| + p1280x1024, |
| + p1600x1200)); |
| + // A window that is sized to occupy the whole work area is maximized. |
| + EXPECT_EQ(ui::SHOW_STATE_MAXIMIZED, |
| + GetWindowShowState(ui::SHOW_STATE_DEFAULT, |
| + ui::SHOW_STATE_NORMAL, |
| + BOTH, |
| + browser_window->browser(), |
| + p1600x1200, |
| p1600x1200)); |
| // Non tabbed windows should always follow the window saved visibility state. |
| EXPECT_EQ(ui::SHOW_STATE_MAXIMIZED, |
| @@ -765,6 +776,7 @@ TEST_F(WindowSizerAshTest, MAYBE_TestShowState) { |
| ui::SHOW_STATE_NORMAL, |
| BOTH, |
| browser_popup->browser(), |
| + p1600x1200, |
| p1600x1200)); |
| // The non tabbed window will take the status of the last active of its kind. |
| EXPECT_EQ(ui::SHOW_STATE_NORMAL, |
| @@ -772,6 +784,7 @@ TEST_F(WindowSizerAshTest, MAYBE_TestShowState) { |
| ui::SHOW_STATE_NORMAL, |
| BOTH, |
| browser_popup->browser(), |
| + p1600x1200, |
| p1600x1200)); |
| // Now create a top level window and check again for both. Only the tabbed |
| @@ -789,6 +802,7 @@ TEST_F(WindowSizerAshTest, MAYBE_TestShowState) { |
| ui::SHOW_STATE_DEFAULT, |
| BOTH, |
| browser_window->browser(), |
| + p1600x1200, |
| p1600x1200)); |
| // Non tabbed windows should always follow the window saved visibility state. |
| EXPECT_EQ(ui::SHOW_STATE_MAXIMIZED, |
| @@ -796,6 +810,7 @@ TEST_F(WindowSizerAshTest, MAYBE_TestShowState) { |
| ui::SHOW_STATE_MINIMIZED, |
| BOTH, |
| browser_popup->browser(), |
| + p1600x1200, |
| p1600x1200)); |
| // In smaller screen resolutions we default to maximized if there is no other |
| @@ -808,6 +823,7 @@ TEST_F(WindowSizerAshTest, MAYBE_TestShowState) { |
| ui::SHOW_STATE_DEFAULT, |
| BOTH, |
| browser_window->browser(), |
| + tiny_screen, |
| tiny_screen)); |
| browser_window->Hide(); |
| EXPECT_EQ(ui::SHOW_STATE_MAXIMIZED, |
| @@ -815,6 +831,7 @@ TEST_F(WindowSizerAshTest, MAYBE_TestShowState) { |
| ui::SHOW_STATE_DEFAULT, |
| BOTH, |
| browser_window2->browser(), |
| + tiny_screen, |
| tiny_screen)); |
| } |
| @@ -846,6 +863,7 @@ TEST_F(WindowSizerAshTest, TestShowStateDefaults) { |
| ui::SHOW_STATE_MAXIMIZED, |
| DEFAULT, |
| browser_window->browser(), |
| + p1600x1200, |
| p1600x1200); |
| #if defined(OS_WIN) |
| EXPECT_EQ(window_show_state, ui::SHOW_STATE_MAXIMIZED); |
| @@ -858,18 +876,21 @@ TEST_F(WindowSizerAshTest, TestShowStateDefaults) { |
| ui::SHOW_STATE_MAXIMIZED, |
| BOTH, |
| browser_window->browser(), |
| + p1600x1200, |
| p1600x1200), ui::SHOW_STATE_MINIMIZED); |
| browser_window->browser()->set_initial_show_state(ui::SHOW_STATE_NORMAL); |
| EXPECT_EQ(GetWindowShowState(ui::SHOW_STATE_MAXIMIZED, |
| ui::SHOW_STATE_MAXIMIZED, |
| BOTH, |
| browser_window->browser(), |
| + p1600x1200, |
| p1600x1200), ui::SHOW_STATE_NORMAL); |
| browser_window->browser()->set_initial_show_state(ui::SHOW_STATE_MAXIMIZED); |
| EXPECT_EQ(GetWindowShowState(ui::SHOW_STATE_NORMAL, |
| ui::SHOW_STATE_NORMAL, |
| BOTH, |
| browser_window->browser(), |
| + p1600x1200, |
| p1600x1200), ui::SHOW_STATE_MAXIMIZED); |
| // Check that setting the maximized command line option is forcing the |
| @@ -881,6 +902,7 @@ TEST_F(WindowSizerAshTest, TestShowStateDefaults) { |
| ui::SHOW_STATE_NORMAL, |
| BOTH, |
| browser_window->browser(), |
| + p1600x1200, |
| p1600x1200), ui::SHOW_STATE_MAXIMIZED); |
| // The popup should favor the initial show state over the command line. |
| @@ -888,10 +910,45 @@ TEST_F(WindowSizerAshTest, TestShowStateDefaults) { |
| ui::SHOW_STATE_NORMAL, |
| BOTH, |
| browser_popup->browser(), |
| + p1600x1200, |
| p1600x1200), ui::SHOW_STATE_NORMAL); |
| } |
| -// Test that the target root window is used as the destionation of |
| +TEST_F(WindowSizerAshTest, DefaultStateBecomesMaximized) { |
| + // Create a browser which we can use to pass into the GetWindowBounds |
|
msw
2014/08/05 16:44:38
nit: remove "which we can use "
varkha
2014/08/05 17:55:23
Done. Here and elsewhere in this file.
|
| + // function. |
| + scoped_ptr<TestingProfile> profile(new TestingProfile()); |
| + Browser::CreateParams native_params(profile.get(), |
| + chrome::HOST_DESKTOP_TYPE_ASH); |
| + scoped_ptr<Browser> browser( |
| + chrome::CreateBrowserWithTestWindowForParams(&native_params)); |
| + |
| + gfx::Rect display_bounds = ash::Shell::GetInstance()->GetScreen()-> |
| + GetPrimaryDisplay().bounds(); |
| + gfx::Rect specified_bounds = display_bounds; |
| + |
| + // Make a window bigger than the display work area. |
| + specified_bounds.Inset(-20, -20); |
| + ui::WindowShowState show_state = ui::SHOW_STATE_DEFAULT; |
| + gfx::Rect bounds; |
| + WindowSizer::GetBrowserWindowBoundsAndShowState( |
| + std::string(), specified_bounds, browser.get(), &bounds, &show_state); |
| + // The window should start maximized with its restore bounds shrunken. |
| + EXPECT_EQ(ui::SHOW_STATE_MAXIMIZED, show_state); |
| + EXPECT_NE(display_bounds.ToString(), bounds.ToString()); |
| + EXPECT_TRUE(display_bounds.Contains(bounds)); |
| + |
| + // Make a window smaller than the display work area. |
| + specified_bounds.Inset(100, 100); |
| + show_state = ui::SHOW_STATE_DEFAULT; |
| + WindowSizer::GetBrowserWindowBoundsAndShowState( |
| + std::string(), specified_bounds, browser.get(), &bounds, &show_state); |
| + // The window should start in default state. |
| + EXPECT_EQ(ui::SHOW_STATE_DEFAULT, show_state); |
| + EXPECT_EQ(specified_bounds.ToString(), bounds.ToString()); |
| +} |
| + |
| +// Test that the target root window is used as the destination of |
| // the non browser window. This differ from PersistedBoundsCase |
| // in that this uses real ash shell implementations + StateProvider |
| // TargetDisplayProvider, rather than mocks. |
| @@ -946,5 +1003,14 @@ TEST_F(WindowSizerAshTest, TrustedPopupBehavior) { |
| ui::SHOW_STATE_NORMAL, |
| BOTH, |
| trusted_popup->browser(), |
| + p1280x1024, |
| + p1600x1200)); |
| + // A popup that is sized to occupy the whole work area is maximized. |
| + EXPECT_EQ(ui::SHOW_STATE_MAXIMIZED, |
| + GetWindowShowState(ui::SHOW_STATE_DEFAULT, |
| + ui::SHOW_STATE_NORMAL, |
| + BOTH, |
| + trusted_popup->browser(), |
| + p1600x1200, |
| p1600x1200)); |
| } |