diff options
author | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-26 01:39:49 +0000 |
---|---|---|
committer | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-26 01:39:49 +0000 |
commit | 68a8e06e889030ab860eb3c8040d9812d4b2b8fa (patch) | |
tree | 60717f024907613aeb469f16900c2e371d8ca69a /ash/drag_drop | |
parent | fb0f86daed8fed754c67e8fb4828c4c89061ef1d (diff) | |
download | chromium_src-68a8e06e889030ab860eb3c8040d9812d4b2b8fa.zip chromium_src-68a8e06e889030ab860eb3c8040d9812d4b2b8fa.tar.gz chromium_src-68a8e06e889030ab860eb3c8040d9812d4b2b8fa.tar.bz2 |
Use translated root location in WebInputEvent
This adds root_location to LocatedEvent
Converted a couple of tests to use EventGenerator.
BUG=none
TEST=added TranslatedEvent test to window_unittests.
Review URL: http://codereview.chromium.org/9117018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119169 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/drag_drop')
-rw-r--r-- | ash/drag_drop/drag_drop_controller.cc | 13 | ||||
-rw-r--r-- | ash/drag_drop/drag_drop_controller_unittest.cc | 85 |
2 files changed, 35 insertions, 63 deletions
diff --git a/ash/drag_drop/drag_drop_controller.cc b/ash/drag_drop/drag_drop_controller.cc index c2db4ac..42a58ab 100644 --- a/ash/drag_drop/drag_drop_controller.cc +++ b/ash/drag_drop/drag_drop_controller.cc @@ -100,12 +100,18 @@ void DragDropController::DragUpdate(aura::Window* target, } dragged_window_ = target; if ((delegate = aura::client::GetDragDropDelegate(dragged_window_))) { - aura::DropTargetEvent e(*drag_data_, event.location(), drag_operation_); + aura::DropTargetEvent e(*drag_data_, + event.location(), + event.root_location(), + drag_operation_); delegate->OnDragEntered(e); } } else { if ((delegate = aura::client::GetDragDropDelegate(dragged_window_))) { - aura::DropTargetEvent e(*drag_data_, event.location(), drag_operation_); + aura::DropTargetEvent e(*drag_data_, + event.location(), + event.root_location(), + drag_operation_); int op = delegate->OnDragUpdated(e); gfx::NativeCursor cursor = (op == ui::DragDropTypes::DRAG_NONE)? aura::kCursorMove : aura::kCursorHand; @@ -126,7 +132,8 @@ void DragDropController::Drop(aura::Window* target, aura::client::DragDropDelegate* delegate = NULL; DCHECK(target == dragged_window_); if ((delegate = aura::client::GetDragDropDelegate(dragged_window_))) { - aura::DropTargetEvent e(*drag_data_, event.location(), drag_operation_); + aura::DropTargetEvent e( + *drag_data_, event.location(), event.root_location(), drag_operation_); drag_operation_ = delegate->OnPerformDrop(e); if (drag_operation_ == 0) StartCanceledAnimation(); diff --git a/ash/drag_drop/drag_drop_controller_unittest.cc b/ash/drag_drop/drag_drop_controller_unittest.cc index 49273ce..1c0a054 100644 --- a/ash/drag_drop/drag_drop_controller_unittest.cc +++ b/ash/drag_drop/drag_drop_controller_unittest.cc @@ -10,6 +10,7 @@ #include "base/utf_string_conversions.h" #include "ui/aura/event.h" #include "ui/aura/root_window.h" +#include "ui/aura/test/event_generator.h" #include "ui/base/clipboard/clipboard.h" #include "ui/base/clipboard/scoped_clipboard_writer.h" #include "ui/base/dragdrop/drag_drop_types.h" @@ -208,14 +209,10 @@ TEST_F(DragDropControllerTest, DragDropInSingleViewTest) { scoped_ptr<views::Widget> widget(CreateNewWidget()); DragTestView* drag_view = new DragTestView; AddViewToWidgetAndResize(widget.get(), drag_view); - gfx::Point point = gfx::Rect(drag_view->bounds()).CenterPoint(); ui::OSExchangeData data; data.SetString(UTF8ToUTF16("I am being dragged")); - - aura::MouseEvent event1(ui::ET_MOUSE_PRESSED, - point, - ui::EF_LEFT_MOUSE_BUTTON); - aura::RootWindow::GetInstance()->DispatchMouseEvent(&event1); + aura::test::EventGenerator generator(widget->GetNativeView()); + generator.PressLeftButton(); int num_drags = 17; for (int i = 0; i < num_drags; ++i) { @@ -225,15 +222,10 @@ TEST_F(DragDropControllerTest, DragDropInSingleViewTest) { // drag_data_ to a fake drag data object that we created. if (i > 0) UpdateDragData(&data); - point.Offset(0, 1); - aura::MouseEvent drag_event(ui::ET_MOUSE_DRAGGED, - point, - ui::EF_LEFT_MOUSE_BUTTON); - aura::RootWindow::GetInstance()->DispatchMouseEvent(&drag_event); + generator.MoveMouseBy(0, 1); } - aura::MouseEvent event2(ui::ET_MOUSE_RELEASED, point, 0); - aura::RootWindow::GetInstance()->DispatchMouseEvent(&event2); + generator.ReleaseLeftButton(); EXPECT_TRUE(drag_drop_controller_->drag_start_received_); EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(), @@ -254,17 +246,16 @@ TEST_F(DragDropControllerTest, DragDropInMultipleViewsSingleWidgetTest) { scoped_ptr<views::Widget> widget(CreateNewWidget()); DragTestView* drag_view1 = new DragTestView; AddViewToWidgetAndResize(widget.get(), drag_view1); - gfx::Point point = drag_view1->bounds().CenterPoint(); DragTestView* drag_view2 = new DragTestView; AddViewToWidgetAndResize(widget.get(), drag_view2); ui::OSExchangeData data; data.SetString(UTF8ToUTF16("I am being dragged")); - aura::MouseEvent event1(ui::ET_MOUSE_PRESSED, - point, - ui::EF_LEFT_MOUSE_BUTTON); - aura::RootWindow::GetInstance()->DispatchMouseEvent(&event1); + aura::test::EventGenerator generator; + generator.MoveMouseRelativeTo(widget->GetNativeView(), + drag_view1->bounds().CenterPoint()); + generator.PressLeftButton(); int num_drags = drag_view1->width(); for (int i = 0; i < num_drags; ++i) { @@ -274,15 +265,10 @@ TEST_F(DragDropControllerTest, DragDropInMultipleViewsSingleWidgetTest) { // drag_data_ to a fake drag data object that we created. if (i > 0) UpdateDragData(&data); - point.Offset(1, 0); - aura::MouseEvent drag_event(ui::ET_MOUSE_DRAGGED, - point, - ui::EF_LEFT_MOUSE_BUTTON); - aura::RootWindow::GetInstance()->DispatchMouseEvent(&drag_event); + generator.MoveMouseBy(1, 0); } - aura::MouseEvent event2(ui::ET_MOUSE_RELEASED, point, 0); - aura::RootWindow::GetInstance()->DispatchMouseEvent(&event2); + generator.ReleaseLeftButton(); EXPECT_TRUE(drag_drop_controller_->drag_start_received_); EXPECT_EQ(num_drags - 1 - drag_view1->HorizontalDragThreshold(), @@ -312,7 +298,6 @@ TEST_F(DragDropControllerTest, DragDropInMultipleViewsMultipleWidgetsTest) { scoped_ptr<views::Widget> widget1(CreateNewWidget()); DragTestView* drag_view1 = new DragTestView; AddViewToWidgetAndResize(widget1.get(), drag_view1); - gfx::Point point = drag_view1->bounds().CenterPoint(); scoped_ptr<views::Widget> widget2(CreateNewWidget()); DragTestView* drag_view2 = new DragTestView; AddViewToWidgetAndResize(widget2.get(), drag_view2); @@ -324,10 +309,8 @@ TEST_F(DragDropControllerTest, DragDropInMultipleViewsMultipleWidgetsTest) { ui::OSExchangeData data; data.SetString(UTF8ToUTF16("I am being dragged")); - aura::MouseEvent event1(ui::ET_MOUSE_PRESSED, - point, - ui::EF_LEFT_MOUSE_BUTTON); - aura::RootWindow::GetInstance()->DispatchMouseEvent(&event1); + aura::test::EventGenerator generator(widget1->GetNativeView()); + generator.PressLeftButton(); int num_drags = drag_view1->width(); for (int i = 0; i < num_drags; ++i) { @@ -337,15 +320,10 @@ TEST_F(DragDropControllerTest, DragDropInMultipleViewsMultipleWidgetsTest) { // drag_data_ to a fake drag data object that we created. if (i > 0) UpdateDragData(&data); - point.Offset(1, 0); - aura::MouseEvent drag_event(ui::ET_MOUSE_DRAGGED, - point, - ui::EF_LEFT_MOUSE_BUTTON); - aura::RootWindow::GetInstance()->DispatchMouseEvent(&drag_event); + generator.MoveMouseBy(1, 0); } - aura::MouseEvent event2(ui::ET_MOUSE_RELEASED, point, 0); - aura::RootWindow::GetInstance()->DispatchMouseEvent(&event2); + generator.ReleaseLeftButton(); EXPECT_TRUE(drag_drop_controller_->drag_start_received_); EXPECT_EQ(num_drags - 1 - drag_view1->HorizontalDragThreshold(), @@ -379,10 +357,9 @@ TEST_F(DragDropControllerTest, ViewRemovedWhileInDragDropTest) { ui::OSExchangeData data; data.SetString(UTF8ToUTF16("I am being dragged")); - aura::MouseEvent event1(ui::ET_MOUSE_PRESSED, - point, - ui::EF_LEFT_MOUSE_BUTTON); - aura::RootWindow::GetInstance()->DispatchMouseEvent(&event1); + aura::test::EventGenerator generator; + generator.MoveMouseToCenterOf(widget->GetNativeView()); + generator.PressLeftButton(); int num_drags_1 = 17; for (int i = 0; i < num_drags_1; ++i) { @@ -392,11 +369,7 @@ TEST_F(DragDropControllerTest, ViewRemovedWhileInDragDropTest) { // drag_data_ to a fake drag data object that we created. if (i > 0) UpdateDragData(&data); - point.Offset(0, 1); - aura::MouseEvent drag_event(ui::ET_MOUSE_DRAGGED, - point, - ui::EF_LEFT_MOUSE_BUTTON); - aura::RootWindow::GetInstance()->DispatchMouseEvent(&drag_event); + generator.MoveMouseBy(0, 1); } drag_view->parent()->RemoveChildView(drag_view); @@ -404,15 +377,10 @@ TEST_F(DragDropControllerTest, ViewRemovedWhileInDragDropTest) { int num_drags_2 = 23; for (int i = 0; i < num_drags_2; ++i) { UpdateDragData(&data); - point.Offset(0, 1); - aura::MouseEvent drag_event(ui::ET_MOUSE_DRAGGED, - point, - ui::EF_LEFT_MOUSE_BUTTON); - aura::RootWindow::GetInstance()->DispatchMouseEvent(&drag_event); + generator.MoveMouseBy(0, 1); } - aura::MouseEvent event2(ui::ET_MOUSE_RELEASED, point, 0); - aura::RootWindow::GetInstance()->DispatchMouseEvent(&event2); + generator.ReleaseLeftButton(); EXPECT_TRUE(drag_drop_controller_->drag_start_received_); EXPECT_EQ(num_drags_1 + num_drags_2 - 1 - drag_view->VerticalDragThreshold(), @@ -445,17 +413,14 @@ TEST_F(DragDropControllerTest, DragCopiesDataToClipboardTest) { scoped_ptr<views::Widget> widget(CreateNewWidget()); DragTestView* drag_view = new DragTestView; AddViewToWidgetAndResize(widget.get(), drag_view); - gfx::Point point = gfx::Rect(drag_view->bounds()).CenterPoint(); + + aura::test::EventGenerator generator(widget->GetNativeView()); ui::OSExchangeData data; std::string data_str("I am being dragged"); data.SetString(ASCIIToUTF16(data_str)); - aura::MouseEvent event(ui::ET_MOUSE_PRESSED, point, ui::EF_LEFT_MOUSE_BUTTON); - aura::RootWindow::GetInstance()->DispatchMouseEvent(&event); - point.Offset(0, drag_view->VerticalDragThreshold() + 1); - aura::MouseEvent drag_event(ui::ET_MOUSE_DRAGGED, point, - ui::EF_LEFT_MOUSE_BUTTON); - aura::RootWindow::GetInstance()->DispatchMouseEvent(&drag_event); + generator.PressLeftButton(); + generator.MoveMouseBy(0, drag_view->VerticalDragThreshold() + 1); EXPECT_TRUE(cb->IsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(), ui::Clipboard::BUFFER_STANDARD)); |