Chromium Code Reviews| Index: chrome/browser/ui/views/frame/browser_view_interactive_uitest.cc |
| diff --git a/chrome/browser/ui/views/frame/browser_view_interactive_uitest.cc b/chrome/browser/ui/views/frame/browser_view_interactive_uitest.cc |
| index 8dda539b698de57df801ec1cc5ba9782087a3db8..0ad98908c889b61f5ca838db687b7cd5e9051472 100644 |
| --- a/chrome/browser/ui/views/frame/browser_view_interactive_uitest.cc |
| +++ b/chrome/browser/ui/views/frame/browser_view_interactive_uitest.cc |
| @@ -60,6 +60,57 @@ class BrowserViewTestParam : public BrowserViewTest, |
| } // namespace |
| +#if defined(OS_CHROMEOS) |
| +// Test that in Chrome OS, for app browser (v1app) windows, the auto management |
| +// logic is disabled while for tabbed browser windows, it is enabled. |
| +IN_PROC_BROWSER_TEST_P(BrowserViewTestParam, |
|
sky
2017/02/13 17:43:03
Why does this need to be in interactive tests?
Qiang(Joe) Xu
2017/02/13 22:39:34
It doesn't need. I moved it to browser_browsertest
|
| + TabbedOrAppBrowserWindowAutoManagementTest) { |
| + // Default |browser()| is not used by this test. |
| + browser()->window()->Close(); |
| + |
| + // Open a new browser window (app or tabbed depending on a parameter). |
| + bool test_app = TestApp(); |
| + Browser::CreateParams params = |
| + test_app ? Browser::CreateParams::CreateForApp( |
| + "test_browser_app", true /* trusted_source */, gfx::Rect(), |
| + browser()->profile()) |
| + : Browser::CreateParams(browser()->profile()); |
| + params.initial_show_state = ui::SHOW_STATE_DEFAULT; |
| + Browser* browser = new Browser(params); |
| + ASSERT_TRUE(browser); |
|
sky
2017/02/13 17:43:03
We don't assert that new returns non-null. If new
Qiang(Joe) Xu
2017/02/13 22:39:34
Done.
|
| + gfx::NativeWindow window = browser->window()->GetNativeWindow(); |
| + gfx::Rect original_bounds(gfx::Rect(150, 250, 400, 100)); |
| + window->SetBounds(original_bounds); |
| + window->Show(); |
| + |
| + // For tabbed browser window, it will be centered to work area by auto window |
| + // mangement logic; for app browser window, it will remain the given bounds. |
| + gfx::Rect work_area = display::Screen::GetScreen() |
| + ->GetDisplayNearestPoint(window->bounds().origin()) |
| + .work_area(); |
| + gfx::Rect tabbed_expected_bounds = work_area; |
| + tabbed_expected_bounds.ClampToCenteredSize(original_bounds.size()); |
| + tabbed_expected_bounds.set_y(original_bounds.y()); |
| + if (test_app) |
| + EXPECT_EQ(original_bounds.ToString(), window->bounds().ToString()); |
| + else |
| + EXPECT_EQ(tabbed_expected_bounds.ToString(), window->bounds().ToString()); |
| + |
| + // Close the browser and re-create the browser window with the same app name. |
| + browser->window()->Close(); |
| + browser = new Browser(params); |
| + ASSERT_TRUE(browser); |
|
sky
2017/02/13 17:43:03
Same comment about checking return value from new.
Qiang(Joe) Xu
2017/02/13 22:39:34
Done.
|
| + browser->window()->Show(); |
| + |
| + // The newly created browser window should remain the same bounds for each. |
| + window = browser->window()->GetNativeWindow(); |
| + if (test_app) |
| + EXPECT_EQ(original_bounds.ToString(), window->bounds().ToString()); |
| + else |
| + EXPECT_EQ(tabbed_expected_bounds.ToString(), window->bounds().ToString()); |
| +} |
| +#endif // defined(OS_CHROMEOS) |
| + |
| // Test that docked state is remembered for app browser windows and not |
| // remembered for tabbed browser windows. |
| IN_PROC_BROWSER_TEST_P(BrowserViewTestParam, BrowserRemembersDockedState) { |
| @@ -92,9 +143,6 @@ IN_PROC_BROWSER_TEST_P(BrowserViewTestParam, BrowserRemembersDockedState) { |
| window->SetBounds(original_bounds); |
| window->Show(); |
| // Dock the browser window using |kShowStateKey| property. |
| - gfx::Rect work_area = display::Screen::GetScreen() |
| - ->GetDisplayNearestPoint(window->bounds().origin()) |
| - .work_area(); |
| window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_DOCKED); |
| // Saved placement should reflect docked state (for app windows only in Ash). |
| @@ -109,46 +157,17 @@ IN_PROC_BROWSER_TEST_P(BrowserViewTestParam, BrowserRemembersDockedState) { |
| if (!kIsAsh) |
| return; |
| - // Saved placement should reflect restore bounds. |
| - ASSERT_NE(nullptr, window->GetProperty(aura::client::kRestoreBoundsKey)); |
| - original_bounds = *window->GetProperty(aura::client::kRestoreBoundsKey); |
| - gfx::Rect expected_bounds = work_area; |
| - expected_bounds.ClampToCenteredSize(original_bounds.size()); |
| - expected_bounds.set_y(original_bounds.y()); |
| - EXPECT_EQ(expected_bounds.ToString(), bounds.ToString()); |
| - EXPECT_EQ(expected_bounds.ToString(), original_bounds.ToString()); |
| - |
| - // Browser window should be docked. |
| - int width = 250; // same as DockedWindowLayoutManager::kIdealWidth. |
| - if (window->delegate() && window->delegate()->GetMinimumSize().width() != 0) |
| - width = std::max(width, window->delegate()->GetMinimumSize().width()); |
| - expected_bounds = work_area; |
| - expected_bounds.set_width(width); |
| - expected_bounds.set_x(work_area.right() - expected_bounds.width()); |
| - EXPECT_EQ(expected_bounds.ToString(), window->GetTargetBounds().ToString()); |
| - EXPECT_EQ(ui::SHOW_STATE_DOCKED, |
| - window->GetProperty(aura::client::kShowStateKey)); |
| - browser->window()->Close(); |
| - |
| // Newly created browser with the same app name should retain docked state |
| // for app browser window but leave it as normal for a tabbed browser. |
| browser = new Browser(params); |
| ASSERT_TRUE(browser); |
| browser->window()->Show(); |
| window = browser->window()->GetNativeWindow(); |
| - EXPECT_EQ(test_app ? expected_bounds.ToString() : original_bounds.ToString(), |
| - window->GetTargetBounds().ToString()); |
| EXPECT_EQ(test_app ? ui::SHOW_STATE_DOCKED : ui::SHOW_STATE_NORMAL, |
| window->GetProperty(aura::client::kShowStateKey)); |
| - // Undocking the browser window should restore original size and vertical |
| - // offset while centering the window horizontally. |
| - // Tabbed window is already not docked. |
| - expected_bounds = work_area; |
| - expected_bounds.ClampToCenteredSize(original_bounds.size()); |
| - expected_bounds.set_y(original_bounds.y()); |
| + // Undocking the browser window. |
| window->SetProperty(aura::client::kShowStateKey, ui::SHOW_STATE_NORMAL); |
| - EXPECT_EQ(expected_bounds.ToString(), window->GetTargetBounds().ToString()); |
| EXPECT_EQ(ui::SHOW_STATE_NORMAL, |
| window->GetProperty(aura::client::kShowStateKey)); |
| browser->window()->Close(); |
| @@ -158,9 +177,8 @@ IN_PROC_BROWSER_TEST_P(BrowserViewTestParam, BrowserRemembersDockedState) { |
| ASSERT_TRUE(browser); |
| browser->window()->Show(); |
| - // Newly created browser should retain undocked state and bounds. |
| + // Newly created browser should retain undocked state. |
| window = browser->window()->GetNativeWindow(); |
| - EXPECT_EQ(expected_bounds.ToString(), window->GetTargetBounds().ToString()); |
| EXPECT_EQ(ui::SHOW_STATE_NORMAL, |
| window->GetProperty(aura::client::kShowStateKey)); |
| } |