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

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

Issue 7605009: Implement drag and drop testing in a platform independent way. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More code review feedback. Created 9 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_browser_view_browsertest.cc
diff --git a/chrome/browser/ui/panels/panel_browser_view_browsertest.cc b/chrome/browser/ui/panels/panel_browser_view_browsertest.cc
index e4c46090d41a4223abad5fb49241975ef475a833..de58f12091b6375e4b26866ae0554ccdddc25641 100644
--- a/chrome/browser/ui/panels/panel_browser_view_browsertest.cc
+++ b/chrome/browser/ui/panels/panel_browser_view_browsertest.cc
@@ -95,94 +95,6 @@ class PanelBrowserViewTest : public InProcessBrowserTest {
}
}
- void ValidateDragging(PanelBrowserView** browser_views,
- size_t num_browser_views,
- size_t index_to_drag,
- int delta_x,
- int delta_y,
- int* expected_delta_x_after_drag,
- int* expected_delta_x_after_release,
- bool cancel_dragging) {
- // Keep track of the initial bounds for comparison.
- scoped_array<gfx::Rect> initial_bounds(new gfx::Rect[num_browser_views]);
- for (size_t i = 0; i < num_browser_views; ++i)
- initial_bounds[i] = browser_views[i]->panel()->GetRestoredBounds();
-
- // Trigger the mouse-pressed event.
- // All panels should remain in their original positions.
- views::MouseEvent pressed(ui::ET_MOUSE_PRESSED,
- initial_bounds[index_to_drag].x(),
- initial_bounds[index_to_drag].y(),
- ui::EF_LEFT_BUTTON_DOWN);
- browser_views[index_to_drag]->OnTitleBarMousePressed(pressed);
- gfx::Rect bounds_after_press =
- browser_views[index_to_drag]->panel()->GetRestoredBounds();
- for (size_t i = 0; i < num_browser_views; ++i) {
- EXPECT_EQ(initial_bounds[i],
- browser_views[i]->panel()->GetRestoredBounds());
- }
-
- // Trigger the mouse_dragged event if delta_x or delta_y is not 0.
- views::MouseEvent dragged(ui::ET_MOUSE_DRAGGED,
- initial_bounds[index_to_drag].x() + delta_x,
- initial_bounds[index_to_drag].y() + delta_y,
- ui::EF_LEFT_BUTTON_DOWN);
- if (delta_x || delta_y) {
- browser_views[index_to_drag]->OnTitleBarMouseDragged(dragged);
-
- for (size_t i = 0; i < num_browser_views; ++i) {
- gfx::Rect expected_bounds = initial_bounds[i];
- expected_bounds.Offset(expected_delta_x_after_drag[i], 0);
- EXPECT_EQ(expected_bounds,
- browser_views[i]->panel()->GetRestoredBounds());
- }
- }
-
- // Cancel the dragging if asked.
- // All panels should stay in their original positions.
- if (cancel_dragging) {
- browser_views[index_to_drag]->OnTitleBarMouseCaptureLost();
- for (size_t i = 0; i < num_browser_views; ++i) {
- EXPECT_EQ(initial_bounds[i],
- browser_views[i]->panel()->GetRestoredBounds());
- }
- return;
- }
-
- // Otherwise, trigger the mouse-released event.
- views::MouseEvent released(ui::ET_MOUSE_RELEASED, 0, 0, 0);
- browser_views[index_to_drag]->OnTitleBarMouseReleased(released);
- for (size_t i = 0; i < num_browser_views; ++i) {
- gfx::Rect expected_bounds = initial_bounds[i];
- expected_bounds.Offset(expected_delta_x_after_release[i], 0);
- EXPECT_EQ(expected_bounds,
- browser_views[i]->panel()->GetRestoredBounds());
- }
-
- // If releasing the drag causes the panels to swap, move these panels back
- // so that the next test will not be affected.
- if (initial_bounds[index_to_drag] !=
- browser_views[index_to_drag]->panel()->GetRestoredBounds()) {
- // Find the index of the panel to swap with the dragging panel.
- size_t swapped_index = 0;
- for (; swapped_index < num_browser_views; ++swapped_index) {
- if (initial_bounds[index_to_drag] ==
- browser_views[swapped_index]->panel()->GetRestoredBounds())
- break;
- }
- ASSERT_NE(swapped_index, index_to_drag);
-
- // Repeat the mouse events to this panel.
- browser_views[swapped_index]->OnTitleBarMousePressed(pressed);
- browser_views[swapped_index]->OnTitleBarMouseDragged(dragged);
- browser_views[swapped_index]->OnTitleBarMouseReleased(released);
- for (size_t i = 0; i < num_browser_views; ++i) {
- EXPECT_EQ(initial_bounds[i],
- browser_views[i]->panel()->GetRestoredBounds());
- }
- }
- }
-
void ValidateSettingsMenuItems(ui::SimpleMenuModel* settings_menu_contents,
size_t num_expected_menu_items,
const MenuItem* expected_menu_items) {
@@ -538,175 +450,6 @@ IN_PROC_BROWSER_TEST_F(PanelBrowserViewTest, ShowOrHideSettingsButton) {
EXPECT_FALSE(frame_view->settings_button_->IsVisible());
}
-IN_PROC_BROWSER_TEST_F(PanelBrowserViewTest, TitleBarMouseEvent) {
- // TODO(jianli): Move the test to platform-independent PanelManager unittest.
-
- // Creates the 1st panel.
- PanelBrowserView* browser_view1 = CreatePanelBrowserView("PanelTest1",
- SHOW_AS_ACTIVE);
-
- // The delta is from the pressed location which is the left-top corner of the
- // panel to drag.
- int small_negative_delta = -5;
- int small_positive_delta = 5;
- int big_negative_delta =
- -(browser_view1->panel()->GetRestoredBounds().width() * 0.5 + 5);
- int big_positive_delta =
- browser_view1->panel()->GetRestoredBounds().width() * 1.5 + 5;
-
- // Tests dragging a panel in single-panel environment.
- // We should get back to the original position after the dragging is ended.
- int expected_single_delta_x_after_drag[] = { big_negative_delta };
- int expected_single_delta_x_after_release[] = { 0 };
- ValidateDragging(&browser_view1,
- 1,
- 0,
- big_negative_delta,
- big_negative_delta,
- expected_single_delta_x_after_drag,
- expected_single_delta_x_after_release,
- false);
-
- expected_single_delta_x_after_drag[0] = big_positive_delta;
- ValidateDragging(&browser_view1,
- 1,
- 0,
- big_positive_delta,
- big_positive_delta,
- expected_single_delta_x_after_drag,
- expected_single_delta_x_after_release,
- false);
-
- // Creates 2 more panels to test dragging a panel in multi-panel environment.
- PanelBrowserView* browser_view2 = CreatePanelBrowserView("PanelTest2",
- SHOW_AS_ACTIVE);
- PanelBrowserView* browser_view3 = CreatePanelBrowserView("PanelTest3",
- SHOW_AS_ACTIVE);
- PanelBrowserView* browser_views[] =
- { browser_view1, browser_view2, browser_view3 };
- size_t browser_view_count = arraysize(browser_views);
- int expected_delta_x_without_change[] = { 0, 0, 0 };
-
- // Tests dragging a panel with small delta.
- // We should get back to the original position after the dragging is ended.
- for (size_t i = 0; i < browser_view_count; ++i) {
- int expected_delta_x_after_drag[] = { 0, 0, 0 };
-
- expected_delta_x_after_drag[i] = small_negative_delta;
- ValidateDragging(browser_views,
- browser_view_count,
- i,
- small_negative_delta,
- small_negative_delta,
- expected_delta_x_after_drag,
- expected_delta_x_without_change,
- false);
-
- expected_delta_x_after_drag[i] = small_positive_delta;
- ValidateDragging(browser_views,
- browser_view_count,
- i,
- small_positive_delta,
- small_positive_delta,
- expected_delta_x_after_drag,
- expected_delta_x_without_change,
- false);
- }
-
- // Tests dragging a panel with big delta and then cancelling it.
- // We should get back to the original position.
- for (size_t i = 0; i < browser_view_count; ++i) {
- int expected_delta_x_after_drag[] = { 0, 0, 0 };
- expected_delta_x_after_drag[i] = big_negative_delta;
- if (i + 1 < browser_view_count) {
- expected_delta_x_after_drag[i + 1] =
- browser_views[i]->panel()->GetRestoredBounds().x() -
- browser_views[i + 1]->panel()->GetRestoredBounds().x();
- }
- ValidateDragging(browser_views,
- browser_view_count,
- i,
- big_negative_delta,
- big_negative_delta,
- expected_delta_x_after_drag,
- expected_delta_x_without_change,
- true);
-
- int expected_delta_x_after_drag2[] = { 0, 0, 0 };
- expected_delta_x_after_drag2[i] = big_positive_delta;
- if (static_cast<int>(i) - 1 >= 0) {
- expected_delta_x_after_drag2[i - 1] =
- browser_views[i]->panel()->GetRestoredBounds().x() -
- browser_views[i - 1]->panel()->GetRestoredBounds().x();
- }
- ValidateDragging(browser_views,
- browser_view_count,
- i,
- big_positive_delta,
- big_positive_delta,
- expected_delta_x_after_drag2,
- expected_delta_x_without_change,
- true);
- }
-
- // Tests dragging a panel with big delta.
- // We should move to the new position after the dragging is ended.
- for (size_t i = 0; i < browser_view_count; ++i) {
- int expected_delta_x_after_drag[] = { 0, 0, 0 };
- int expected_delta_x_after_release[] = { 0, 0, 0 };
- expected_delta_x_after_drag[i] = big_negative_delta;
- if (i + 1 < browser_view_count) {
- expected_delta_x_after_drag[i + 1] =
- browser_views[i]->panel()->GetRestoredBounds().x() -
- browser_views[i + 1]->panel()->GetRestoredBounds().x();
- expected_delta_x_after_release[i + 1] =
- expected_delta_x_after_drag[i + 1];
- expected_delta_x_after_release[i] =
- browser_views[i + 1]->panel()->GetRestoredBounds().x() -
- browser_views[i]->panel()->GetRestoredBounds().x();
- }
- ValidateDragging(browser_views,
- browser_view_count,
- i,
- big_negative_delta,
- big_negative_delta,
- expected_delta_x_after_drag,
- expected_delta_x_after_release,
- false);
-
- int expected_delta_x_after_drag2[] = { 0, 0, 0 };
- int expected_delta_x_after_release2[] = { 0, 0, 0 };
- expected_delta_x_after_drag2[i] = big_positive_delta;
- if (static_cast<int>(i) - 1 >= 0) {
- expected_delta_x_after_drag2[i - 1] =
- browser_views[i]->panel()->GetRestoredBounds().x() -
- browser_views[i - 1]->panel()->GetRestoredBounds().x();
- expected_delta_x_after_release2[i - 1] =
- expected_delta_x_after_drag2[i - 1];
- expected_delta_x_after_release2[i] =
- browser_views[i - 1]->panel()->GetRestoredBounds().x() -
- browser_views[i]->panel()->GetRestoredBounds().x();
- }
- ValidateDragging(browser_views,
- browser_view_count,
- i,
- big_positive_delta,
- big_positive_delta,
- expected_delta_x_after_drag2,
- expected_delta_x_after_release2,
- false);
- }
-
- // Closes all panels.
- for (size_t i = 0; i < browser_view_count; ++i) {
- browser_views[i]->panel()->Close();
- // We're only verifying that PanelBrowserView::Close has been called when
- // a panel is closed. This is to make sure the dragging is ended and does
- // not interfere the closing process.
- EXPECT_TRUE(browser_views[i]->closed());
- }
-}
-
IN_PROC_BROWSER_TEST_F(PanelBrowserViewTest, SetBoundsAnimation) {
PanelBrowserView* browser_view = CreatePanelBrowserView("PanelTest",
SHOW_AS_ACTIVE);
@@ -725,17 +468,10 @@ IN_PROC_BROWSER_TEST_F(PanelBrowserViewTest, SetBoundsAnimation) {
// Validates that no animation should be triggered for the panel currently
// being dragged.
- views::MouseEvent pressed(ui::ET_MOUSE_PRESSED,
- target_bounds.x(),
- target_bounds.y(),
- ui::EF_LEFT_BUTTON_DOWN);
- browser_view->OnTitleBarMousePressed(pressed);
-
- views::MouseEvent dragged(ui::ET_MOUSE_DRAGGED,
- target_bounds.x() + 5,
- target_bounds.y() + 5,
- ui::EF_LEFT_BUTTON_DOWN);
- browser_view->OnTitleBarMouseDragged(dragged);
+ browser_view->OnTitleBarMousePressed(gfx::Point(
+ target_bounds.x(), target_bounds.y()));
+ browser_view->OnTitleBarMouseDragged(gfx::Point(
+ target_bounds.x() + 5, target_bounds.y() + 5));
EXPECT_FALSE(browser_view->bounds_animator_->is_animating());
browser_view->OnTitleBarMouseCaptureLost();

Powered by Google App Engine
This is Rietveld 408576698