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

Side by Side Diff: ash/drag_drop/drag_drop_controller_unittest.cc

Issue 13041002: Cancel drag upon screen lock (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/drag_drop/drag_drop_controller.h" 5 #include "ash/drag_drop/drag_drop_controller.h"
6 6
7 #include "ash/drag_drop/drag_image_view.h" 7 #include "ash/drag_drop/drag_image_view.h"
8 #include "ash/shell.h" 8 #include "ash/shell.h"
9 #include "ash/test/ash_test_base.h" 9 #include "ash/test/ash_test_base.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "base/location.h" 11 #include "base/location.h"
12 #include "base/utf_string_conversions.h" 12 #include "base/utf_string_conversions.h"
13 #include "ui/aura/client/capture_client.h"
13 #include "ui/aura/root_window.h" 14 #include "ui/aura/root_window.h"
14 #include "ui/aura/test/event_generator.h" 15 #include "ui/aura/test/event_generator.h"
15 #include "ui/base/animation/linear_animation.h" 16 #include "ui/base/animation/linear_animation.h"
16 #include "ui/base/clipboard/clipboard.h" 17 #include "ui/base/clipboard/clipboard.h"
17 #include "ui/base/clipboard/scoped_clipboard_writer.h" 18 #include "ui/base/clipboard/scoped_clipboard_writer.h"
18 #include "ui/base/dragdrop/drag_drop_types.h" 19 #include "ui/base/dragdrop/drag_drop_types.h"
19 #include "ui/base/dragdrop/drag_utils.h" 20 #include "ui/base/dragdrop/drag_utils.h"
20 #include "ui/base/dragdrop/os_exchange_data.h" 21 #include "ui/base/dragdrop/os_exchange_data.h"
21 #include "ui/base/events/event.h" 22 #include "ui/base/events/event.h"
22 #include "ui/base/events/event_utils.h" 23 #include "ui/base/events/event_utils.h"
(...skipping 724 matching lines...) Expand 10 before | Expand all | Expand 10 after
747 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(), 748 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(),
748 drag_view->num_drag_updates_); 749 drag_view->num_drag_updates_);
749 EXPECT_EQ(1, drag_view->num_drops_); 750 EXPECT_EQ(1, drag_view->num_drops_);
750 EXPECT_EQ(0, drag_view->num_drag_exits_); 751 EXPECT_EQ(0, drag_view->num_drag_exits_);
751 EXPECT_TRUE(drag_view->drag_done_received_); 752 EXPECT_TRUE(drag_view->drag_done_received_);
752 } 753 }
753 754
754 // TODO(win_aura) http://crbug.com/154081 755 // TODO(win_aura) http://crbug.com/154081
755 #if defined(OS_WIN) 756 #if defined(OS_WIN)
756 #define MAYBE_PressingEscapeCancelsDragDrop DISABLED_PressingEscapeCancelsDragDr op 757 #define MAYBE_PressingEscapeCancelsDragDrop DISABLED_PressingEscapeCancelsDragDr op
758 #define MAYBE_CaptureLostCancelsDragDrop DISABLED_CaptureLostCancelsDragDrop
757 #else 759 #else
758 #define MAYBE_PressingEscapeCancelsDragDrop PressingEscapeCancelsDragDrop 760 #define MAYBE_PressingEscapeCancelsDragDrop PressingEscapeCancelsDragDrop
761 #define MAYBE_CaptureLostCancelsDragDrop CaptureLostCancelsDragDrop
759 #endif 762 #endif
760 TEST_F(DragDropControllerTest, MAYBE_PressingEscapeCancelsDragDrop) { 763 TEST_F(DragDropControllerTest, MAYBE_PressingEscapeCancelsDragDrop) {
761 scoped_ptr<views::Widget> widget(CreateNewWidget()); 764 scoped_ptr<views::Widget> widget(CreateNewWidget());
762 DragTestView* drag_view = new DragTestView; 765 DragTestView* drag_view = new DragTestView;
763 AddViewToWidgetAndResize(widget.get(), drag_view); 766 AddViewToWidgetAndResize(widget.get(), drag_view);
764 ui::OSExchangeData data; 767 ui::OSExchangeData data;
765 data.SetString(UTF8ToUTF16("I am being dragged")); 768 data.SetString(UTF8ToUTF16("I am being dragged"));
766 aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), 769 aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow(),
767 widget->GetNativeView()); 770 widget->GetNativeView());
768 generator.PressLeftButton(); 771 generator.PressLeftButton();
(...skipping 23 matching lines...) Expand all
792 drag_drop_controller_->drag_string_); 795 drag_drop_controller_->drag_string_);
793 796
794 EXPECT_EQ(1, drag_view->num_drag_enters_); 797 EXPECT_EQ(1, drag_view->num_drag_enters_);
795 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(), 798 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(),
796 drag_view->num_drag_updates_); 799 drag_view->num_drag_updates_);
797 EXPECT_EQ(0, drag_view->num_drops_); 800 EXPECT_EQ(0, drag_view->num_drops_);
798 EXPECT_EQ(1, drag_view->num_drag_exits_); 801 EXPECT_EQ(1, drag_view->num_drag_exits_);
799 EXPECT_TRUE(drag_view->drag_done_received_); 802 EXPECT_TRUE(drag_view->drag_done_received_);
800 } 803 }
801 804
805 TEST_F(DragDropControllerTest, MAYBE_CaptureLostCancelsDragDrop) {
varunjain 2013/03/25 18:04:23 I am a bit concerned that now that we have a non-N
oshima 2013/03/25 20:41:10 I added a few more checks here as the rest of it i
806 scoped_ptr<views::Widget> widget(CreateNewWidget());
807 DragTestView* drag_view = new DragTestView;
808 AddViewToWidgetAndResize(widget.get(), drag_view);
809 ui::OSExchangeData data;
810 data.SetString(UTF8ToUTF16("I am being dragged"));
811 aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow(),
812 widget->GetNativeView());
813 generator.PressLeftButton();
814
815 int num_drags = 17;
816 for (int i = 0; i < num_drags; ++i) {
817 // Because we are not doing a blocking drag and drop, the original
818 // OSDragExchangeData object is lost as soon as we return from the drag
819 // initiation in DragDropController::StartDragAndDrop(). Hence we set the
820 // drag_data_ to a fake drag data object that we created.
821 if (i > 0)
822 UpdateDragData(&data);
823 generator.MoveMouseBy(0, 1);
824
825 // Execute any scheduled draws to process deferred mouse events.
826 RunAllPendingInMessageLoop();
827 }
828
829 aura::client::GetCaptureClient(widget->GetNativeView()->GetRootWindow())->
830 SetCapture(NULL);
831
832 EXPECT_TRUE(drag_drop_controller_->drag_start_received_);
833 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(),
834 drag_drop_controller_->num_drag_updates_);
835 EXPECT_FALSE(drag_drop_controller_->drop_received_);
836 EXPECT_TRUE(drag_drop_controller_->drag_canceled_);
837 EXPECT_EQ(UTF8ToUTF16("I am being dragged"),
838 drag_drop_controller_->drag_string_);
839
840 EXPECT_EQ(1, drag_view->num_drag_enters_);
841 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(),
842 drag_view->num_drag_updates_);
843 EXPECT_EQ(0, drag_view->num_drops_);
844 EXPECT_EQ(1, drag_view->num_drag_exits_);
845 EXPECT_TRUE(drag_view->drag_done_received_);
846 }
847
802 TEST_F(DragDropControllerTest, TouchDragDropInMultipleWindows) { 848 TEST_F(DragDropControllerTest, TouchDragDropInMultipleWindows) {
803 CommandLine::ForCurrentProcess()->AppendSwitch( 849 CommandLine::ForCurrentProcess()->AppendSwitch(
804 switches::kEnableTouchDragDrop); 850 switches::kEnableTouchDragDrop);
805 scoped_ptr<views::Widget> widget1(CreateNewWidget()); 851 scoped_ptr<views::Widget> widget1(CreateNewWidget());
806 DragTestView* drag_view1 = new DragTestView; 852 DragTestView* drag_view1 = new DragTestView;
807 AddViewToWidgetAndResize(widget1.get(), drag_view1); 853 AddViewToWidgetAndResize(widget1.get(), drag_view1);
808 scoped_ptr<views::Widget> widget2(CreateNewWidget()); 854 scoped_ptr<views::Widget> widget2(CreateNewWidget());
809 DragTestView* drag_view2 = new DragTestView; 855 DragTestView* drag_view2 = new DragTestView;
810 AddViewToWidgetAndResize(widget2.get(), drag_view2); 856 AddViewToWidgetAndResize(widget2.get(), drag_view2);
811 gfx::Rect widget1_bounds = widget1->GetClientAreaBoundsInScreen(); 857 gfx::Rect widget1_bounds = widget1->GetClientAreaBoundsInScreen();
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
1018 EXPECT_EQ("405,405", observer.window_location_on_destroying().ToString()); 1064 EXPECT_EQ("405,405", observer.window_location_on_destroying().ToString());
1019 } 1065 }
1020 for (Shell::RootWindowList::iterator iter = root_windows.begin(); 1066 for (Shell::RootWindowList::iterator iter = root_windows.begin();
1021 iter != root_windows.end(); ++iter) { 1067 iter != root_windows.end(); ++iter) {
1022 aura::client::SetDragDropClient(*iter, NULL); 1068 aura::client::SetDragDropClient(*iter, NULL);
1023 } 1069 }
1024 } 1070 }
1025 1071
1026 } // namespace test 1072 } // namespace test
1027 } // namespace aura 1073 } // namespace aura
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698