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

Unified Diff: chrome/browser/ui/panels/panel_resize_browsertest.cc

Issue 2263863002: Remove implementation of Panels on OSes other than ChromeOS. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CR feedback Created 4 years, 4 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/panels/panel_resize_browsertest.cc
diff --git a/chrome/browser/ui/panels/panel_resize_browsertest.cc b/chrome/browser/ui/panels/panel_resize_browsertest.cc
deleted file mode 100644
index 94efaa3a3f09c0fa8e7d7f7caffec2e921eaca42..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/panels/panel_resize_browsertest.cc
+++ /dev/null
@@ -1,673 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "build/build_config.h"
-#include "chrome/browser/ui/panels/base_panel_browser_test.h"
-#include "chrome/browser/ui/panels/detached_panel_collection.h"
-#include "chrome/browser/ui/panels/panel.h"
-#include "chrome/browser/ui/panels/panel_manager.h"
-#include "chrome/browser/ui/panels/panel_resize_controller.h"
-#include "chrome/browser/ui/panels/stacked_panel_collection.h"
-#include "ui/base/hit_test.h"
-
-class PanelResizeBrowserTest : public BasePanelBrowserTest {
- public:
- PanelResizeBrowserTest() : BasePanelBrowserTest() {
- }
-
- ~PanelResizeBrowserTest() override {}
-
- void SetUpOnMainThread() override {
- BasePanelBrowserTest::SetUpOnMainThread();
-
- // All the tests here assume using mocked 800x600 display area for the
- // primary monitor. Do the check now.
- gfx::Rect primary_display_area = PanelManager::GetInstance()->
- display_settings_provider()->GetPrimaryDisplayArea();
- DCHECK(primary_display_area.width() == 800);
- DCHECK(primary_display_area.height() == 600);
- }
-
- void ResizePanel(Panel* panel,
- int component,
- const gfx::Vector2d& delta) {
- PanelManager* panel_manager = PanelManager::GetInstance();
- gfx::Rect bounds = panel->GetBounds();
- gfx::Point mouse_location;
- switch (component) {
- case HTTOPLEFT:
- mouse_location = bounds.origin();
- break;
- case HTTOP:
- mouse_location.SetPoint(bounds.x() + bounds.width() / 2, bounds.y());
- break;
- case HTTOPRIGHT:
- mouse_location.SetPoint(bounds.right(), bounds.y());
- break;
- case HTLEFT:
- mouse_location.SetPoint(bounds.x(), bounds.y() + bounds.height() / 2);
- break;
- case HTRIGHT:
- mouse_location.SetPoint(bounds.right(),
- bounds.y() + bounds.height() / 2);
- break;
- case HTBOTTOMLEFT:
- mouse_location.SetPoint(bounds.x(), bounds.bottom());
- break;
- case HTBOTTOM:
- mouse_location.SetPoint(bounds.x() + bounds.width() / 2,
- bounds.bottom());
- break;
- case HTBOTTOMRIGHT:
- mouse_location.SetPoint(bounds.right(), bounds.bottom());
- break;
- default:
- NOTREACHED();
- break;
- }
- panel_manager->StartResizingByMouse(panel, mouse_location, component);
- mouse_location += delta;
- panel_manager->ResizeByMouse(mouse_location);
- panel_manager->EndResizingByMouse(false);
- }
-};
-
-// http://crbug.com/175760; several panel tests failing regularly on mac.
-#if defined(OS_MACOSX)
-#define MAYBE_DockedPanelResizability DISABLED_DockedPanelResizability
-#else
-#define MAYBE_DockedPanelResizability DockedPanelResizability
-#endif
-IN_PROC_BROWSER_TEST_F(PanelResizeBrowserTest, MAYBE_DockedPanelResizability) {
- PanelManager* panel_manager = PanelManager::GetInstance();
- Panel* panel = CreatePanel("Panel");
-
- EXPECT_EQ(panel::RESIZABLE_EXCEPT_BOTTOM, panel->CanResizeByMouse());
-
- gfx::Rect bounds = panel->GetBounds();
-
- // Try resizing by the top left corner.
- gfx::Point mouse_location = bounds.origin();
- panel_manager->StartResizingByMouse(panel, mouse_location, HTTOPLEFT);
- mouse_location.Offset(-20, -10);
- panel_manager->ResizeByMouse(mouse_location);
-
- bounds.set_size(gfx::Size(bounds.width() + 20, bounds.height() + 10));
- bounds.Offset(-20, -10);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel_manager->EndResizingByMouse(false);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- // Try resizing by the top.
- mouse_location = bounds.origin() + gfx::Vector2d(10, 1);
- panel_manager->StartResizingByMouse(panel, mouse_location, HTTOP);
- mouse_location.Offset(5, -10);
- panel_manager->ResizeByMouse(mouse_location);
-
- bounds.set_height(bounds.height() + 10);
- bounds.Offset(0, -10);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel_manager->EndResizingByMouse(false);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- // Try resizing by the left side.
- mouse_location = bounds.origin() + gfx::Vector2d(1, 30);
- panel_manager->StartResizingByMouse(panel, mouse_location, HTLEFT);
- mouse_location.Offset(-5, 25);
- panel_manager->ResizeByMouse(mouse_location);
-
- bounds.set_width(bounds.width() + 5);
- bounds.Offset(-5, 0);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel_manager->EndResizingByMouse(false);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- // Try resizing by the top right side.
- mouse_location = bounds.origin() + gfx::Vector2d(bounds.width() - 1, 2);
- panel_manager->StartResizingByMouse(panel, mouse_location, HTTOPRIGHT);
- mouse_location.Offset(30, 20);
- panel_manager->ResizeByMouse(mouse_location);
-
- bounds.set_size(gfx::Size(bounds.width() + 30, bounds.height() - 20));
- bounds.Offset(0, 20);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel_manager->EndResizingByMouse(false);
- WaitForBoundsAnimationFinished(panel);
- bounds.Offset(-30, 0); // Layout of panel adjusted in docked collection.
- EXPECT_EQ(bounds, panel->GetBounds());
-
- // Try resizing by the right side.
- mouse_location = bounds.origin() + gfx::Vector2d(bounds.width() - 1, 30);
- panel_manager->StartResizingByMouse(panel, mouse_location, HTRIGHT);
- mouse_location.Offset(5, 25);
- panel_manager->ResizeByMouse(mouse_location);
-
- bounds.set_width(bounds.width() + 5);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel_manager->EndResizingByMouse(false);
- WaitForBoundsAnimationFinished(panel);
- bounds.Offset(-5, 0); // Layout of panel adjusted in docked collection.
- EXPECT_EQ(bounds, panel->GetBounds());
-
- // Try resizing by the bottom side; verify resize won't work.
- mouse_location = bounds.origin() + gfx::Vector2d(10, bounds.height() - 1);
- panel_manager->StartResizingByMouse(panel, mouse_location, HTBOTTOM);
- mouse_location.Offset(30, -10);
- panel_manager->ResizeByMouse(mouse_location);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel_manager->EndResizingByMouse(false);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- // Try resizing by the bottom left corner; verify resize won't work.
- mouse_location = bounds.origin() + gfx::Vector2d(1, bounds.height() - 1);
- panel_manager->StartResizingByMouse(panel, mouse_location, HTBOTTOMLEFT);
- mouse_location.Offset(-10, 15);
- panel_manager->ResizeByMouse(mouse_location);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel_manager->EndResizingByMouse(false);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- // Try resizing by the bottom right corner; verify resize won't work.
- mouse_location = bounds.origin() +
- gfx::Vector2d(bounds.width() - 2, bounds.height());
- panel_manager->StartResizingByMouse(panel, mouse_location, HTBOTTOMRIGHT);
- mouse_location.Offset(20, 10);
- panel_manager->ResizeByMouse(mouse_location);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel_manager->EndResizingByMouse(false);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel->Close();
-}
-
-// http://crbug.com/175760; several panel tests failing regularly on mac.
-#if defined(OS_MACOSX)
-#define MAYBE_ResizeDetachedPanel DISABLED_ResizeDetachedPanel
-#else
-#define MAYBE_ResizeDetachedPanel ResizeDetachedPanel
-#endif
-IN_PROC_BROWSER_TEST_F(PanelResizeBrowserTest, MAYBE_ResizeDetachedPanel) {
- PanelManager* panel_manager = PanelManager::GetInstance();
- Panel* panel = CreateDetachedPanel("Panel", gfx::Rect(300, 200, 150, 100));
-
- EXPECT_EQ(panel::RESIZABLE_ALL, panel->CanResizeByMouse());
-
- gfx::Rect bounds = panel->GetBounds();
-
- // Try resizing by the right side; verify resize will change width only.
- gfx::Point mouse_location = bounds.origin() +
- gfx::Vector2d(bounds.width() - 1, 30);
- panel_manager->StartResizingByMouse(panel, mouse_location, HTRIGHT);
- mouse_location.Offset(5, 25);
- panel_manager->ResizeByMouse(mouse_location);
-
- bounds.set_width(bounds.width() + 5);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel_manager->EndResizingByMouse(false);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- // Try resizing by the bottom left side.
- mouse_location = bounds.origin() + gfx::Vector2d(1, bounds.height() - 1);
- panel_manager->StartResizingByMouse(panel, mouse_location, HTBOTTOMLEFT);
- mouse_location.Offset(-10, 15);
- panel_manager->ResizeByMouse(mouse_location);
-
- bounds.set_size(gfx::Size(bounds.width() + 10, bounds.height() + 15));
- bounds.Offset(-10, 0);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel_manager->EndResizingByMouse(false);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- // Try resizing by the top right side.
- mouse_location = bounds.origin() + gfx::Vector2d(bounds.width() - 1, 2);
- panel_manager->StartResizingByMouse(panel, mouse_location, HTTOPRIGHT);
- mouse_location.Offset(30, 20);
- panel_manager->ResizeByMouse(mouse_location);
-
- bounds.set_size(gfx::Size(bounds.width() + 30, bounds.height() - 20));
- bounds.Offset(0, 20);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel_manager->EndResizingByMouse(false);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- // Try resizing by the top left side.
- mouse_location = bounds.origin() + gfx::Vector2d(1, 0);
- panel_manager->StartResizingByMouse(panel, mouse_location, HTTOPLEFT);
- mouse_location.Offset(-20, -10);
- panel_manager->ResizeByMouse(mouse_location);
-
- bounds.set_size(gfx::Size(bounds.width() + 20, bounds.height() + 10));
- bounds.Offset(-20, -10);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel_manager->EndResizingByMouse(false);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- PanelManager::GetInstance()->CloseAll();
-}
-
-// http://crbug.com/175760; several panel tests failing regularly on mac.
-#if defined(OS_MACOSX)
-#define MAYBE_TryResizePanelBelowMinimizeSize \
- DISABLED_TryResizePanelBelowMinimizeSize
-#else
-#define MAYBE_TryResizePanelBelowMinimizeSize TryResizePanelBelowMinimizeSize
-#endif
-IN_PROC_BROWSER_TEST_F(PanelResizeBrowserTest,
- MAYBE_TryResizePanelBelowMinimizeSize) {
- int initial_width = 150;
- int initial_height = 100;
- Panel* panel = CreateDetachedPanel("1",
- gfx::Rect(300, 200, initial_width, initial_height));
-
- // Try to resize the panel below the minimum size. Expect that the panel
- // shrinks to the minimum size.
- int resize_width = panel::kPanelMinWidth / 2 - initial_width;
- int resize_height = panel::kPanelMinHeight / 2 - initial_height;
- ResizePanel(panel,
- HTBOTTOMRIGHT,
- gfx::Vector2d(resize_width, resize_height));
-
- EXPECT_EQ(panel::kPanelMinWidth, panel->GetBounds().width());
- EXPECT_EQ(panel::kPanelMinHeight, panel->GetBounds().height());
-
- PanelManager::GetInstance()->CloseAll();
-}
-
-// http://crbug.com/175760; several panel tests failing regularly on mac.
-#if defined(OS_MACOSX)
-#define MAYBE_ResizeDetachedPanelToClampSize \
- DISABLED_ResizeDetachedPanelToClampSize
-#else
-#define MAYBE_ResizeDetachedPanelToClampSize ResizeDetachedPanelToClampSize
-#endif
-IN_PROC_BROWSER_TEST_F(PanelResizeBrowserTest,
- MAYBE_ResizeDetachedPanelToClampSize) {
- PanelManager* panel_manager = PanelManager::GetInstance();
- Panel* panel = CreateDetachedPanel("Panel", gfx::Rect(300, 200, 150, 100));
-
- EXPECT_EQ(panel::RESIZABLE_ALL, panel->CanResizeByMouse());
-
- gfx::Rect bounds = panel->GetBounds();
-
- // Make sure the panel does not resize smaller than its min size.
- gfx::Point mouse_location = bounds.origin() +
- gfx::Vector2d(30, bounds.height() - 2);
- panel_manager->StartResizingByMouse(panel, mouse_location, HTBOTTOM);
- mouse_location.Offset(-20, -500);
- panel_manager->ResizeByMouse(mouse_location);
-
- bounds.set_height(panel->min_size().height());
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel_manager->EndResizingByMouse(false);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- // Make sure the panel can resize larger than its size. User is in control.
- mouse_location = bounds.origin() +
- gfx::Vector2d(bounds.width(), bounds.height() - 2);
- panel_manager->StartResizingByMouse(panel, mouse_location, HTBOTTOMRIGHT);
-
- // This drag would take us beyond max size.
- int delta_x = panel->max_size().width() + 10 - panel->GetBounds().width();
- int delta_y = panel->max_size().height() + 10 - panel->GetBounds().height();
- mouse_location.Offset(delta_x, delta_y);
- panel_manager->ResizeByMouse(mouse_location);
-
- // The bounds if the max_size does not limit the resize.
- bounds.set_size(gfx::Size(bounds.width() + delta_x,
- bounds.height() + delta_y));
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel_manager->EndResizingByMouse(false);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- PanelManager::GetInstance()->CloseAll();
-}
-
-// http://crbug.com/175760; several panel tests failing regularly on mac.
-#if defined(OS_MACOSX)
-#define MAYBE_CloseDetachedPanelOnResize DISABLED_CloseDetachedPanelOnResize
-#else
-#define MAYBE_CloseDetachedPanelOnResize CloseDetachedPanelOnResize
-#endif
-IN_PROC_BROWSER_TEST_F(PanelResizeBrowserTest,
- MAYBE_CloseDetachedPanelOnResize) {
- PanelManager* panel_manager = PanelManager::GetInstance();
- PanelResizeController* resize_controller = panel_manager->resize_controller();
- DetachedPanelCollection* detached_collection =
- panel_manager->detached_collection();
-
- // Create 3 detached panels.
- Panel* panel1 = CreateDetachedPanel("1", gfx::Rect(100, 200, 100, 100));
- Panel* panel2 = CreateDetachedPanel("2", gfx::Rect(200, 210, 110, 110));
- Panel* panel3 = CreateDetachedPanel("3", gfx::Rect(300, 220, 120, 120));
- ASSERT_EQ(3, detached_collection->num_panels());
-
- gfx::Rect panel1_bounds = panel1->GetBounds();
- gfx::Rect panel3_bounds = panel3->GetBounds();
-
- // Start resizing panel1, and close panel2 in the process.
- // Panel1 is not affected.
- gfx::Point mouse_location = panel1_bounds.origin() +
- gfx::Vector2d(1, panel1_bounds.height() - 1);
- panel_manager->StartResizingByMouse(panel1, mouse_location, HTBOTTOMLEFT);
- mouse_location.Offset(-10, 15);
- panel_manager->ResizeByMouse(mouse_location);
-
- panel1_bounds.set_size(gfx::Size(panel1_bounds.width() + 10,
- panel1_bounds.height() + 15));
- panel1_bounds.Offset(-10, 0);
- EXPECT_EQ(panel1_bounds, panel1->GetBounds());
-
- CloseWindowAndWait(panel2);
- EXPECT_TRUE(resize_controller->IsResizing());
- EXPECT_EQ(2, detached_collection->num_panels());
-
- panel_manager->EndResizingByMouse(false);
- EXPECT_EQ(panel1_bounds, panel1->GetBounds());
-
- // Start resizing panel3, and close it in the process.
- // Resize should abort, panel1 will not be affected.
- mouse_location = panel3_bounds.origin() +
- gfx::Vector2d(panel3_bounds.width() - 1, panel3_bounds.height() - 2);
- panel_manager->StartResizingByMouse(panel3, mouse_location, HTBOTTOMRIGHT);
- mouse_location.Offset(7, -12);
- panel_manager->ResizeByMouse(mouse_location);
-
- panel3_bounds.set_size(gfx::Size(panel3_bounds.width() + 7,
- panel3_bounds.height() - 12));
- EXPECT_EQ(panel3_bounds, panel3->GetBounds());
-
- CloseWindowAndWait(panel3);
- EXPECT_EQ(1, detached_collection->num_panels());
- // Since we closed the panel we were resizing, we should be out of the
- // resizing mode by now.
- EXPECT_FALSE(resize_controller->IsResizing());
-
- panel_manager->EndResizingByMouse(false);
- EXPECT_FALSE(resize_controller->IsResizing());
- EXPECT_EQ(panel1_bounds, panel1->GetBounds());
-
- panel_manager->CloseAll();
-}
-
-// http://crbug.com/175760; several panel tests failing regularly on mac.
-#if defined(OS_MACOSX)
-#define MAYBE_ResizeAndCancel DISABLED_ResizeAndCancel
-#else
-#define MAYBE_ResizeAndCancel ResizeAndCancel
-#endif
-IN_PROC_BROWSER_TEST_F(PanelResizeBrowserTest, MAYBE_ResizeAndCancel) {
- PanelManager* panel_manager = PanelManager::GetInstance();
- Panel* panel = CreateDetachedPanel("Panel", gfx::Rect(300, 200, 150, 100));
- PanelResizeController* resize_controller = panel_manager->resize_controller();
-
- EXPECT_EQ(panel::RESIZABLE_ALL, panel->CanResizeByMouse());
-
- gfx::Rect original_bounds = panel->GetBounds();
-
- // Resizing the panel, then cancelling should return it to the original state.
- // Try resizing by the top right side.
- gfx::Rect bounds = panel->GetBounds();
- gfx::Point mouse_location = bounds.origin() +
- gfx::Vector2d(bounds.width() - 1, 1);
- panel_manager->StartResizingByMouse(panel, mouse_location, HTTOPRIGHT);
- mouse_location.Offset(5, 25);
- panel_manager->ResizeByMouse(mouse_location);
-
- bounds.set_size(gfx::Size(bounds.width() + 5, bounds.height() - 25));
- bounds.Offset(0, 25);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel_manager->EndResizingByMouse(true);
- EXPECT_EQ(original_bounds, panel->GetBounds());
-
- // Try resizing by the bottom left side.
- bounds = panel->GetBounds();
- mouse_location = bounds.origin() + gfx::Vector2d(1, bounds.height() - 1);
- panel_manager->StartResizingByMouse(panel, mouse_location, HTBOTTOMLEFT);
- mouse_location.Offset(-10, 15);
- panel_manager->ResizeByMouse(mouse_location);
-
- bounds.set_size(gfx::Size(bounds.width() + 10, bounds.height() + 15));
- bounds.Offset(-10, 0);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel_manager->EndResizingByMouse(true);
- EXPECT_EQ(original_bounds, panel->GetBounds());
- EXPECT_FALSE(resize_controller->IsResizing());
-
- panel_manager->CloseAll();
-}
-
-// http://crbug.com/175760; several panel tests failing regularly on mac.
-#if defined(OS_MACOSX)
-#define MAYBE_ResizeDetachedPanelToTop DISABLED_ResizeDetachedPanelToTop
-#else
-#define MAYBE_ResizeDetachedPanelToTop ResizeDetachedPanelToTop
-#endif
-IN_PROC_BROWSER_TEST_F(PanelResizeBrowserTest, MAYBE_ResizeDetachedPanelToTop) {
- // Setup the test areas to have top-aligned bar excluded from work area.
- const gfx::Rect primary_display_area(0, 0, 800, 600);
- const gfx::Rect primary_work_area(0, 10, 800, 590);
- mock_display_settings_provider()->SetPrimaryDisplay(
- primary_display_area, primary_work_area);
-
- PanelManager* panel_manager = PanelManager::GetInstance();
- Panel* panel = CreateDetachedPanel("1", gfx::Rect(300, 200, 250, 200));
- gfx::Rect bounds = panel->GetBounds();
-
- // Try resizing by the top left corner.
- gfx::Point mouse_location = bounds.origin();
- panel_manager->StartResizingByMouse(panel,
- mouse_location,
- HTTOPLEFT);
-
- // Try moving the mouse outside the top of the work area. Expect that panel's
- // top position will not exceed the top of the work area.
- mouse_location = gfx::Point(250, 2);
- panel_manager->ResizeByMouse(mouse_location);
-
- bounds.set_width(bounds.width() + bounds.x() - mouse_location.x());
- bounds.set_height(bounds.height() + bounds.y() - primary_work_area.y());
- bounds.set_x(mouse_location.x());
- bounds.set_y(primary_work_area.y());
- EXPECT_EQ(bounds, panel->GetBounds());
-
- // Try moving the mouse inside the work area. Expect that the panel can be
- // resized without constraint.
- mouse_location = gfx::Point(280, 50);
- panel_manager->ResizeByMouse(mouse_location);
-
- bounds.set_width(bounds.width() + bounds.x() - mouse_location.x());
- bounds.set_height(bounds.height() + bounds.y() - mouse_location.y());
- bounds.set_x(mouse_location.x());
- bounds.set_y(mouse_location.y());
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel_manager->EndResizingByMouse(false);
- EXPECT_EQ(bounds, panel->GetBounds());
-
- panel_manager->CloseAll();
-}
-
-// TODO(jianli): to be enabled for other platforms when stacked panels are
-// supported.
-#if defined(OS_WIN)
-
-IN_PROC_BROWSER_TEST_F(PanelResizeBrowserTest, ResizeStackedPanels) {
- PanelManager* panel_manager = PanelManager::GetInstance();
-
- // Create 3 stacked panels.
- StackedPanelCollection* stack = panel_manager->CreateStack();
- gfx::Rect panel1_initial_bounds = gfx::Rect(100, 50, 200, 150);
- Panel* panel1 = CreateStackedPanel("1", panel1_initial_bounds, stack);
- gfx::Rect panel2_initial_bounds = gfx::Rect(0, 0, 150, 100);
- Panel* panel2 = CreateStackedPanel("2", panel2_initial_bounds, stack);
- gfx::Rect panel3_initial_bounds = gfx::Rect(0, 0, 120, 110);
- Panel* panel3 = CreateStackedPanel("3", panel3_initial_bounds, stack);
- ASSERT_EQ(3, panel_manager->num_panels());
- ASSERT_EQ(1, panel_manager->num_stacks());
- ASSERT_EQ(3, stack->num_panels());
-
- gfx::Size panel1_expected_full_size = panel1_initial_bounds.size();
- EXPECT_EQ(panel1_expected_full_size, panel1->full_size());
- gfx::Size panel2_expected_full_size(panel1_initial_bounds.width(),
- panel2_initial_bounds.height());
- EXPECT_EQ(panel2_expected_full_size, panel2->full_size());
- gfx::Size panel3_expected_full_size(panel1_initial_bounds.width(),
- panel3_initial_bounds.height());
- EXPECT_EQ(panel3_expected_full_size, panel3->full_size());
-
- gfx::Rect panel1_expected_bounds(panel1_initial_bounds);
- EXPECT_EQ(panel1_expected_bounds, panel1->GetBounds());
- gfx::Rect panel2_expected_bounds(panel1_expected_bounds.x(),
- panel1_expected_bounds.bottom(),
- panel1_expected_bounds.width(),
- panel2_initial_bounds.height());
- EXPECT_EQ(panel2_expected_bounds, panel2->GetBounds());
- gfx::Rect panel3_expected_bounds(panel2_expected_bounds.x(),
- panel2_expected_bounds.bottom(),
- panel2_expected_bounds.width(),
- panel3_initial_bounds.height());
- EXPECT_EQ(panel3_expected_bounds, panel3->GetBounds());
-
- // Resize by the top-left corner of the top panel.
- // Expect that the width of all stacked panels get increased by the same
- // amount and the top panel also expands in height.
- int top_resize_width = 15;
- int top_resize_height = 10;
- ResizePanel(panel1,
- HTTOPLEFT,
- gfx::Vector2d(-top_resize_width, -top_resize_height));
-
- panel1_expected_full_size.Enlarge(top_resize_width, top_resize_height);
- EXPECT_EQ(panel1_expected_full_size, panel1->full_size());
- panel2_expected_full_size.Enlarge(top_resize_width, 0);
- EXPECT_EQ(panel2_expected_full_size, panel2->full_size());
- panel3_expected_full_size.Enlarge(top_resize_width, 0);
- EXPECT_EQ(panel3_expected_full_size, panel3->full_size());
-
- panel1_expected_bounds.SetRect(
- panel1_expected_bounds.x() - top_resize_width,
- panel1_expected_bounds.y() - top_resize_height,
- panel1_expected_bounds.width() + top_resize_width,
- panel1_expected_bounds.height() + top_resize_height);
- EXPECT_EQ(panel1_expected_bounds, panel1->GetBounds());
- panel2_expected_bounds.set_x(panel2_expected_bounds.x() - top_resize_width);
- panel2_expected_bounds.set_width(
- panel2_expected_bounds.width() + top_resize_width);
- EXPECT_EQ(panel2_expected_bounds, panel2->GetBounds());
- panel3_expected_bounds.set_x(panel3_expected_bounds.x() - top_resize_width);
- panel3_expected_bounds.set_width(
- panel3_expected_bounds.width() + top_resize_width);
- EXPECT_EQ(panel3_expected_bounds, panel3->GetBounds());
-
- // Resize by the bottom-right corner of the bottom panel.
- // Expect that the width of all stacked panels get increased by the same
- // amount and the bottom panel also shrinks in height.
- int bottom_resize_width = 12;
- int bottom_resize_height = 8;
- ResizePanel(panel3,
- HTBOTTOMRIGHT,
- gfx::Vector2d(-bottom_resize_width, -bottom_resize_height));
-
- panel1_expected_full_size.Enlarge(-bottom_resize_width, 0);
- EXPECT_EQ(panel1_expected_full_size, panel1->full_size());
- panel2_expected_full_size.Enlarge(-bottom_resize_width, 0);
- EXPECT_EQ(panel2_expected_full_size, panel2->full_size());
- panel3_expected_full_size.Enlarge(-bottom_resize_width,
- -bottom_resize_height);
- EXPECT_EQ(panel3_expected_full_size, panel3->full_size());
-
- panel1_expected_bounds.set_width(
- panel1_expected_bounds.width() - bottom_resize_width);
- EXPECT_EQ(panel1_expected_bounds, panel1->GetBounds());
- panel2_expected_bounds.set_width(
- panel2_expected_bounds.width() - bottom_resize_width);
- EXPECT_EQ(panel2_expected_bounds, panel2->GetBounds());
- panel3_expected_bounds.set_width(
- panel3_expected_bounds.width() - bottom_resize_width);
- panel3_expected_bounds.set_height(
- panel3_expected_bounds.height() - bottom_resize_height);
- EXPECT_EQ(panel3_expected_bounds, panel3->GetBounds());
-
- // Resize by the bottom edge of the middle panel.
- // Expect that the height of the middle panel increases and the height of
- // the bottom panel decreases by the same amount.
- int middle_resize_height = 5;
- ResizePanel(panel2,
- HTBOTTOM,
- gfx::Vector2d(0, middle_resize_height));
-
- EXPECT_EQ(panel1_expected_full_size, panel1->full_size());
- panel2_expected_full_size.Enlarge(0, middle_resize_height);
- EXPECT_EQ(panel2_expected_full_size, panel2->full_size());
- panel3_expected_full_size.Enlarge(0, -middle_resize_height);
- EXPECT_EQ(panel3_expected_full_size, panel3->full_size());
-
- EXPECT_EQ(panel1_expected_bounds, panel1->GetBounds());
- panel2_expected_bounds.set_height(
- panel2_expected_bounds.height() + middle_resize_height);
- EXPECT_EQ(panel2_expected_bounds, panel2->GetBounds());
- panel3_expected_bounds.set_y(
- panel3_expected_bounds.y() + middle_resize_height);
- panel3_expected_bounds.set_height(
- panel3_expected_bounds.height() - middle_resize_height);
- EXPECT_EQ(panel3_expected_bounds, panel3->GetBounds());
-
- // Collapse the middle panel.
- panel2->Minimize();
- WaitForBoundsAnimationFinished(panel2);
- EXPECT_TRUE(panel2->IsMinimized());
-
- EXPECT_EQ(panel1_expected_full_size, panel1->full_size());
- EXPECT_EQ(panel2_expected_full_size, panel2->full_size());
- EXPECT_EQ(panel3_expected_full_size, panel3->full_size());
-
- EXPECT_EQ(panel1_expected_bounds, panel1->GetBounds());
- panel2_expected_bounds.set_height(panel2->TitleOnlyHeight());
- EXPECT_EQ(panel2_expected_bounds, panel2->GetBounds());
- panel3_expected_bounds.set_y(panel2_expected_bounds.bottom());
- EXPECT_EQ(panel3_expected_bounds, panel3->GetBounds());
-
- // Resize by the bottom edge of the top panel.
- // Expect that the height of the top panel increases and the height of
- // the middle panel is not affected because it is collapsed.
- top_resize_height = 18;
- ResizePanel(panel1,
- HTBOTTOM,
- gfx::Vector2d(0, top_resize_height));
-
- panel1_expected_full_size.Enlarge(0, top_resize_height);
- EXPECT_EQ(panel1_expected_full_size, panel1->full_size());
- EXPECT_EQ(panel2_expected_full_size, panel2->full_size());
- EXPECT_EQ(panel3_expected_full_size, panel3->full_size());
-
- panel1_expected_bounds.set_height(
- panel1_expected_bounds.height() + top_resize_height);
- EXPECT_EQ(panel1_expected_bounds, panel1->GetBounds());
- panel2_expected_bounds.set_y(
- panel2_expected_bounds.y() + top_resize_height);
- EXPECT_EQ(panel2_expected_bounds, panel2->GetBounds());
- panel3_expected_bounds.set_y(
- panel3_expected_bounds.y() + top_resize_height);
- EXPECT_EQ(panel3_expected_bounds, panel3->GetBounds());
-
- panel_manager->CloseAll();
-}
-
-#endif
« no previous file with comments | « chrome/browser/ui/panels/panel_mouse_watcher_unittest.cc ('k') | chrome/browser/ui/panels/panel_resize_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698