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

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

Issue 2095193002: clang-format all of //ash (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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
« no previous file with comments | « ash/drag_drop/drag_drop_controller.cc ('k') | ash/drag_drop/drag_drop_interactive_uitest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_drop_tracker.h" 7 #include "ash/drag_drop/drag_drop_tracker.h"
8 #include "ash/drag_drop/drag_image_view.h" 8 #include "ash/drag_drop/drag_image_view.h"
9 #include "ash/shell.h" 9 #include "ash/shell.h"
10 #include "ash/test/ash_test_base.h" 10 #include "ash/test/ash_test_base.h"
(...skipping 23 matching lines...) Expand all
34 #include "ui/views/widget/widget.h" 34 #include "ui/views/widget/widget.h"
35 35
36 namespace ash { 36 namespace ash {
37 namespace test { 37 namespace test {
38 38
39 namespace { 39 namespace {
40 40
41 // A simple view that makes sure RunShellDrag is invoked on mouse drag. 41 // A simple view that makes sure RunShellDrag is invoked on mouse drag.
42 class DragTestView : public views::View { 42 class DragTestView : public views::View {
43 public: 43 public:
44 DragTestView() : views::View() { 44 DragTestView() : views::View() { Reset(); }
45 Reset();
46 }
47 45
48 void Reset() { 46 void Reset() {
49 num_drag_enters_ = 0; 47 num_drag_enters_ = 0;
50 num_drag_exits_ = 0; 48 num_drag_exits_ = 0;
51 num_drag_updates_ = 0; 49 num_drag_updates_ = 0;
52 num_drops_ = 0; 50 num_drops_ = 0;
53 drag_done_received_ = false; 51 drag_done_received_ = false;
54 long_tap_received_ = false; 52 long_tap_received_ = false;
55 } 53 }
56 54
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 118
121 DISALLOW_COPY_AND_ASSIGN(DragTestView); 119 DISALLOW_COPY_AND_ASSIGN(DragTestView);
122 }; 120 };
123 121
124 class CompletableLinearAnimation : public gfx::LinearAnimation { 122 class CompletableLinearAnimation : public gfx::LinearAnimation {
125 public: 123 public:
126 CompletableLinearAnimation(int duration, 124 CompletableLinearAnimation(int duration,
127 int frame_rate, 125 int frame_rate,
128 gfx::AnimationDelegate* delegate) 126 gfx::AnimationDelegate* delegate)
129 : gfx::LinearAnimation(duration, frame_rate, delegate), 127 : gfx::LinearAnimation(duration, frame_rate, delegate),
130 duration_(duration) { 128 duration_(duration) {}
131 }
132 129
133 void Complete() { 130 void Complete() {
134 Step(start_time() + base::TimeDelta::FromMilliseconds(duration_)); 131 Step(start_time() + base::TimeDelta::FromMilliseconds(duration_));
135 } 132 }
136 133
137 private: 134 private:
138 int duration_; 135 int duration_;
139 }; 136 };
140 137
141 class TestDragDropController : public DragDropController { 138 class TestDragDropController : public DragDropController {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 bool drag_canceled_; 193 bool drag_canceled_;
197 base::string16 drag_string_; 194 base::string16 drag_string_;
198 195
199 private: 196 private:
200 DISALLOW_COPY_AND_ASSIGN(TestDragDropController); 197 DISALLOW_COPY_AND_ASSIGN(TestDragDropController);
201 }; 198 };
202 199
203 class TestNativeWidgetAura : public views::NativeWidgetAura { 200 class TestNativeWidgetAura : public views::NativeWidgetAura {
204 public: 201 public:
205 explicit TestNativeWidgetAura(views::internal::NativeWidgetDelegate* delegate) 202 explicit TestNativeWidgetAura(views::internal::NativeWidgetDelegate* delegate)
206 : NativeWidgetAura(delegate), 203 : NativeWidgetAura(delegate), check_if_capture_lost_(false) {}
207 check_if_capture_lost_(false) {
208 }
209 204
210 void set_check_if_capture_lost(bool value) { 205 void set_check_if_capture_lost(bool value) { check_if_capture_lost_ = value; }
211 check_if_capture_lost_ = value;
212 }
213 206
214 void OnCaptureLost() override { 207 void OnCaptureLost() override {
215 DCHECK(!check_if_capture_lost_); 208 DCHECK(!check_if_capture_lost_);
216 views::NativeWidgetAura::OnCaptureLost(); 209 views::NativeWidgetAura::OnCaptureLost();
217 } 210 }
218 211
219 private: 212 private:
220 bool check_if_capture_lost_; 213 bool check_if_capture_lost_;
221 214
222 DISALLOW_COPY_AND_ASSIGN(TestNativeWidgetAura); 215 DISALLOW_COPY_AND_ASSIGN(TestNativeWidgetAura);
223 }; 216 };
224 217
225 // TODO(sky): this is for debugging, remove when track down failure. 218 // TODO(sky): this is for debugging, remove when track down failure.
226 void SetCheckIfCaptureLost(views::Widget* widget, bool value) { 219 void SetCheckIfCaptureLost(views::Widget* widget, bool value) {
227 // On Windows, the DCHECK triggers when running on bot or locally through RDP, 220 // On Windows, the DCHECK triggers when running on bot or locally through RDP,
228 // but not when logged in locally. 221 // but not when logged in locally.
229 #if !defined(OS_WIN) 222 #if !defined(OS_WIN)
230 static_cast<TestNativeWidgetAura*>(widget->native_widget())-> 223 static_cast<TestNativeWidgetAura*>(widget->native_widget())
231 set_check_if_capture_lost(value); 224 ->set_check_if_capture_lost(value);
232 #endif 225 #endif
233 } 226 }
234 227
235 views::Widget* CreateNewWidget() { 228 views::Widget* CreateNewWidget() {
236 views::Widget* widget = new views::Widget; 229 views::Widget* widget = new views::Widget;
237 views::Widget::InitParams params; 230 views::Widget::InitParams params;
238 params.type = views::Widget::InitParams::TYPE_WINDOW_FRAMELESS; 231 params.type = views::Widget::InitParams::TYPE_WINDOW_FRAMELESS;
239 params.accept_events = true; 232 params.accept_events = true;
240 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 233 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
241 params.parent = Shell::GetPrimaryRootWindow(); 234 params.parent = Shell::GetPrimaryRootWindow();
(...skipping 14 matching lines...) Expand all
256 contents_view->AddChildView(view); 249 contents_view->AddChildView(view);
257 view->SetBounds(contents_view->width(), 0, 100, 100); 250 view->SetBounds(contents_view->width(), 0, 100, 100);
258 gfx::Rect contents_view_bounds = contents_view->bounds(); 251 gfx::Rect contents_view_bounds = contents_view->bounds();
259 contents_view_bounds.Union(view->bounds()); 252 contents_view_bounds.Union(view->bounds());
260 contents_view->SetBoundsRect(contents_view_bounds); 253 contents_view->SetBoundsRect(contents_view_bounds);
261 widget->SetBounds(contents_view_bounds); 254 widget->SetBounds(contents_view_bounds);
262 } 255 }
263 256
264 void DispatchGesture(ui::EventType gesture_type, gfx::Point location) { 257 void DispatchGesture(ui::EventType gesture_type, gfx::Point location) {
265 ui::GestureEventDetails event_details(gesture_type); 258 ui::GestureEventDetails event_details(gesture_type);
266 ui::GestureEvent gesture_event( 259 ui::GestureEvent gesture_event(location.x(), location.y(), 0,
267 location.x(), location.y(), 0, ui::EventTimeForNow(), event_details); 260 ui::EventTimeForNow(), event_details);
268 ui::EventSource* event_source = 261 ui::EventSource* event_source =
269 Shell::GetPrimaryRootWindow()->GetHost()->GetEventSource(); 262 Shell::GetPrimaryRootWindow()->GetHost()->GetEventSource();
270 ui::EventSourceTestApi event_source_test(event_source); 263 ui::EventSourceTestApi event_source_test(event_source);
271 ui::EventDispatchDetails details = 264 ui::EventDispatchDetails details =
272 event_source_test.SendEventToProcessor(&gesture_event); 265 event_source_test.SendEventToProcessor(&gesture_event);
273 CHECK(!details.dispatcher_destroyed); 266 CHECK(!details.dispatcher_destroyed);
274 } 267 }
275 268
276 } // namespace 269 } // namespace
277 270
(...skipping 13 matching lines...) Expand all
291 void TearDown() override { 284 void TearDown() override {
292 aura::client::SetDragDropClient(Shell::GetPrimaryRootWindow(), NULL); 285 aura::client::SetDragDropClient(Shell::GetPrimaryRootWindow(), NULL);
293 drag_drop_controller_.reset(); 286 drag_drop_controller_.reset();
294 AshTestBase::TearDown(); 287 AshTestBase::TearDown();
295 } 288 }
296 289
297 void UpdateDragData(ui::OSExchangeData* data) { 290 void UpdateDragData(ui::OSExchangeData* data) {
298 drag_drop_controller_->drag_data_ = data; 291 drag_drop_controller_->drag_data_ = data;
299 } 292 }
300 293
301 aura::Window* GetDragWindow() { 294 aura::Window* GetDragWindow() { return drag_drop_controller_->drag_window_; }
302 return drag_drop_controller_->drag_window_;
303 }
304 295
305 aura::Window* GetDragSourceWindow() { 296 aura::Window* GetDragSourceWindow() {
306 return drag_drop_controller_->drag_source_window_; 297 return drag_drop_controller_->drag_source_window_;
307 } 298 }
308 299
309 void SetDragSourceWindow(aura::Window* drag_source_window) { 300 void SetDragSourceWindow(aura::Window* drag_source_window) {
310 drag_drop_controller_->drag_source_window_ = drag_source_window; 301 drag_drop_controller_->drag_source_window_ = drag_source_window;
311 drag_source_window->AddObserver(drag_drop_controller_.get()); 302 drag_source_window->AddObserver(drag_drop_controller_.get());
312 } 303 }
313 304
314 aura::Window* GetDragImageWindow() { 305 aura::Window* GetDragImageWindow() {
315 return drag_drop_controller_->drag_image_.get() ? 306 return drag_drop_controller_->drag_image_.get()
316 drag_drop_controller_->drag_image_->GetWidget()->GetNativeWindow() : 307 ? drag_drop_controller_->drag_image_->GetWidget()
317 NULL; 308 ->GetNativeWindow()
309 : NULL;
318 } 310 }
319 311
320 DragDropTracker* drag_drop_tracker() { 312 DragDropTracker* drag_drop_tracker() {
321 return drag_drop_controller_->drag_drop_tracker_.get(); 313 return drag_drop_controller_->drag_drop_tracker_.get();
322 } 314 }
323 315
324 void CompleteCancelAnimation() { 316 void CompleteCancelAnimation() {
325 CompletableLinearAnimation* animation = 317 CompletableLinearAnimation* animation =
326 static_cast<CompletableLinearAnimation*>( 318 static_cast<CompletableLinearAnimation*>(
327 drag_drop_controller_->cancel_animation_.get()); 319 drag_drop_controller_->cancel_animation_.get());
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 generator.MoveMouseBy(0, 1); 359 generator.MoveMouseBy(0, 1);
368 360
369 // Execute any scheduled draws to process deferred mouse events. 361 // Execute any scheduled draws to process deferred mouse events.
370 RunAllPendingInMessageLoop(); 362 RunAllPendingInMessageLoop();
371 } 363 }
372 364
373 generator.ReleaseLeftButton(); 365 generator.ReleaseLeftButton();
374 366
375 EXPECT_TRUE(drag_drop_controller_->drag_start_received_); 367 EXPECT_TRUE(drag_drop_controller_->drag_start_received_);
376 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(), 368 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(),
377 drag_drop_controller_->num_drag_updates_); 369 drag_drop_controller_->num_drag_updates_);
378 EXPECT_TRUE(drag_drop_controller_->drop_received_); 370 EXPECT_TRUE(drag_drop_controller_->drop_received_);
379 EXPECT_EQ(base::UTF8ToUTF16("I am being dragged"), 371 EXPECT_EQ(base::UTF8ToUTF16("I am being dragged"),
380 drag_drop_controller_->drag_string_); 372 drag_drop_controller_->drag_string_);
381 373
382 EXPECT_EQ(1, drag_view->num_drag_enters_); 374 EXPECT_EQ(1, drag_view->num_drag_enters_);
383 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(), 375 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(),
384 drag_view->num_drag_updates_); 376 drag_view->num_drag_updates_);
385 EXPECT_EQ(1, drag_view->num_drops_); 377 EXPECT_EQ(1, drag_view->num_drops_);
386 EXPECT_EQ(0, drag_view->num_drag_exits_); 378 EXPECT_EQ(0, drag_view->num_drag_exits_);
387 EXPECT_TRUE(drag_view->drag_done_received_); 379 EXPECT_TRUE(drag_view->drag_done_received_);
388 } 380 }
389 381
390 TEST_F(DragDropControllerTest, DragDropWithZeroDragUpdates) { 382 TEST_F(DragDropControllerTest, DragDropWithZeroDragUpdates) {
391 std::unique_ptr<views::Widget> widget(CreateNewWidget()); 383 std::unique_ptr<views::Widget> widget(CreateNewWidget());
392 DragTestView* drag_view = new DragTestView; 384 DragTestView* drag_view = new DragTestView;
393 AddViewToWidgetAndResize(widget.get(), drag_view); 385 AddViewToWidgetAndResize(widget.get(), drag_view);
394 ui::OSExchangeData data; 386 ui::OSExchangeData data;
(...skipping 12 matching lines...) Expand all
407 UpdateDragData(&data); 399 UpdateDragData(&data);
408 generator.MoveMouseBy(0, 1); 400 generator.MoveMouseBy(0, 1);
409 } 401 }
410 402
411 UpdateDragData(&data); 403 UpdateDragData(&data);
412 404
413 generator.ReleaseLeftButton(); 405 generator.ReleaseLeftButton();
414 406
415 EXPECT_TRUE(drag_drop_controller_->drag_start_received_); 407 EXPECT_TRUE(drag_drop_controller_->drag_start_received_);
416 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold() + 1, 408 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold() + 1,
417 drag_drop_controller_->num_drag_updates_); 409 drag_drop_controller_->num_drag_updates_);
418 EXPECT_TRUE(drag_drop_controller_->drop_received_); 410 EXPECT_TRUE(drag_drop_controller_->drop_received_);
419 411
420 EXPECT_EQ(1, drag_view->num_drag_enters_); 412 EXPECT_EQ(1, drag_view->num_drag_enters_);
421 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold() + 1, 413 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold() + 1,
422 drag_view->num_drag_updates_); 414 drag_view->num_drag_updates_);
423 EXPECT_EQ(1, drag_view->num_drops_); 415 EXPECT_EQ(1, drag_view->num_drops_);
424 EXPECT_EQ(0, drag_view->num_drag_exits_); 416 EXPECT_EQ(0, drag_view->num_drag_exits_);
425 EXPECT_TRUE(drag_view->drag_done_received_); 417 EXPECT_TRUE(drag_view->drag_done_received_);
426 } 418 }
427 419
428 // TODO(win_aura) http://crbug.com/154081 420 // TODO(win_aura) http://crbug.com/154081
429 #if defined(OS_WIN) 421 #if defined(OS_WIN)
430 #define MAYBE_DragDropInMultipleViewsSingleWidgetTest DISABLED_DragDropInMultipl eViewsSingleWidgetTest 422 #define MAYBE_DragDropInMultipleViewsSingleWidgetTest \
423 DISABLED_DragDropInMultipleViewsSingleWidgetTest
431 #else 424 #else
432 #define MAYBE_DragDropInMultipleViewsSingleWidgetTest DragDropInMultipleViewsSin gleWidgetTest 425 #define MAYBE_DragDropInMultipleViewsSingleWidgetTest \
426 DragDropInMultipleViewsSingleWidgetTest
433 #endif 427 #endif
434 TEST_F(DragDropControllerTest, MAYBE_DragDropInMultipleViewsSingleWidgetTest) { 428 TEST_F(DragDropControllerTest, MAYBE_DragDropInMultipleViewsSingleWidgetTest) {
435 std::unique_ptr<views::Widget> widget(CreateNewWidget()); 429 std::unique_ptr<views::Widget> widget(CreateNewWidget());
436 DragTestView* drag_view1 = new DragTestView; 430 DragTestView* drag_view1 = new DragTestView;
437 AddViewToWidgetAndResize(widget.get(), drag_view1); 431 AddViewToWidgetAndResize(widget.get(), drag_view1);
438 DragTestView* drag_view2 = new DragTestView; 432 DragTestView* drag_view2 = new DragTestView;
439 AddViewToWidgetAndResize(widget.get(), drag_view2); 433 AddViewToWidgetAndResize(widget.get(), drag_view2);
440 434
441 ui::OSExchangeData data; 435 ui::OSExchangeData data;
442 data.SetString(base::UTF8ToUTF16("I am being dragged")); 436 data.SetString(base::UTF8ToUTF16("I am being dragged"));
(...skipping 14 matching lines...) Expand all
457 generator.MoveMouseBy(1, 0); 451 generator.MoveMouseBy(1, 0);
458 452
459 // Execute any scheduled draws to process deferred mouse events. 453 // Execute any scheduled draws to process deferred mouse events.
460 RunAllPendingInMessageLoop(); 454 RunAllPendingInMessageLoop();
461 } 455 }
462 456
463 generator.ReleaseLeftButton(); 457 generator.ReleaseLeftButton();
464 458
465 EXPECT_TRUE(drag_drop_controller_->drag_start_received_); 459 EXPECT_TRUE(drag_drop_controller_->drag_start_received_);
466 EXPECT_EQ(num_drags - 1 - drag_view1->HorizontalDragThreshold(), 460 EXPECT_EQ(num_drags - 1 - drag_view1->HorizontalDragThreshold(),
467 drag_drop_controller_->num_drag_updates_); 461 drag_drop_controller_->num_drag_updates_);
468 EXPECT_TRUE(drag_drop_controller_->drop_received_); 462 EXPECT_TRUE(drag_drop_controller_->drop_received_);
469 EXPECT_EQ(base::UTF8ToUTF16("I am being dragged"), 463 EXPECT_EQ(base::UTF8ToUTF16("I am being dragged"),
470 drag_drop_controller_->drag_string_); 464 drag_drop_controller_->drag_string_);
471 465
472 EXPECT_EQ(1, drag_view1->num_drag_enters_); 466 EXPECT_EQ(1, drag_view1->num_drag_enters_);
473 int num_expected_updates = drag_view1->bounds().width() - 467 int num_expected_updates =
474 drag_view1->bounds().CenterPoint().x() - 2; 468 drag_view1->bounds().width() - drag_view1->bounds().CenterPoint().x() - 2;
475 EXPECT_EQ(num_expected_updates - drag_view1->HorizontalDragThreshold(), 469 EXPECT_EQ(num_expected_updates - drag_view1->HorizontalDragThreshold(),
476 drag_view1->num_drag_updates_); 470 drag_view1->num_drag_updates_);
477 EXPECT_EQ(0, drag_view1->num_drops_); 471 EXPECT_EQ(0, drag_view1->num_drops_);
478 EXPECT_EQ(1, drag_view1->num_drag_exits_); 472 EXPECT_EQ(1, drag_view1->num_drag_exits_);
479 EXPECT_TRUE(drag_view1->drag_done_received_); 473 EXPECT_TRUE(drag_view1->drag_done_received_);
480 474
481 EXPECT_EQ(1, drag_view2->num_drag_enters_); 475 EXPECT_EQ(1, drag_view2->num_drag_enters_);
482 num_expected_updates = num_drags - num_expected_updates - 1; 476 num_expected_updates = num_drags - num_expected_updates - 1;
483 EXPECT_EQ(num_expected_updates, drag_view2->num_drag_updates_); 477 EXPECT_EQ(num_expected_updates, drag_view2->num_drag_updates_);
484 EXPECT_EQ(1, drag_view2->num_drops_); 478 EXPECT_EQ(1, drag_view2->num_drops_);
485 EXPECT_EQ(0, drag_view2->num_drag_exits_); 479 EXPECT_EQ(0, drag_view2->num_drag_exits_);
486 EXPECT_FALSE(drag_view2->drag_done_received_); 480 EXPECT_FALSE(drag_view2->drag_done_received_);
487 } 481 }
488 482
489 // TODO(win_aura) http://crbug.com/154081 483 // TODO(win_aura) http://crbug.com/154081
490 #if defined(OS_WIN) 484 #if defined(OS_WIN)
491 #define MAYBE_DragDropInMultipleViewsMultipleWidgetsTest DISABLED_DragDropInMult ipleViewsMultipleWidgetsTest 485 #define MAYBE_DragDropInMultipleViewsMultipleWidgetsTest \
486 DISABLED_DragDropInMultipleViewsMultipleWidgetsTest
492 #else 487 #else
493 #define MAYBE_DragDropInMultipleViewsMultipleWidgetsTest DragDropInMultipleViews MultipleWidgetsTest 488 #define MAYBE_DragDropInMultipleViewsMultipleWidgetsTest \
489 DragDropInMultipleViewsMultipleWidgetsTest
494 #endif 490 #endif
495 TEST_F(DragDropControllerTest, MAYBE_DragDropInMultipleViewsMultipleWidgetsTest) { 491 TEST_F(DragDropControllerTest,
492 MAYBE_DragDropInMultipleViewsMultipleWidgetsTest) {
496 std::unique_ptr<views::Widget> widget1(CreateNewWidget()); 493 std::unique_ptr<views::Widget> widget1(CreateNewWidget());
497 DragTestView* drag_view1 = new DragTestView; 494 DragTestView* drag_view1 = new DragTestView;
498 AddViewToWidgetAndResize(widget1.get(), drag_view1); 495 AddViewToWidgetAndResize(widget1.get(), drag_view1);
499 std::unique_ptr<views::Widget> widget2(CreateNewWidget()); 496 std::unique_ptr<views::Widget> widget2(CreateNewWidget());
500 DragTestView* drag_view2 = new DragTestView; 497 DragTestView* drag_view2 = new DragTestView;
501 AddViewToWidgetAndResize(widget2.get(), drag_view2); 498 AddViewToWidgetAndResize(widget2.get(), drag_view2);
502 gfx::Rect widget1_bounds = widget1->GetClientAreaBoundsInScreen(); 499 gfx::Rect widget1_bounds = widget1->GetClientAreaBoundsInScreen();
503 gfx::Rect widget2_bounds = widget2->GetClientAreaBoundsInScreen(); 500 gfx::Rect widget2_bounds = widget2->GetClientAreaBoundsInScreen();
504 widget2->SetBounds(gfx::Rect(widget1_bounds.width(), 0, 501 widget2->SetBounds(gfx::Rect(widget1_bounds.width(), 0,
505 widget2_bounds.width(), widget2_bounds.height())); 502 widget2_bounds.width(),
503 widget2_bounds.height()));
506 504
507 ui::OSExchangeData data; 505 ui::OSExchangeData data;
508 data.SetString(base::UTF8ToUTF16("I am being dragged")); 506 data.SetString(base::UTF8ToUTF16("I am being dragged"));
509 507
510 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), 508 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(),
511 widget1->GetNativeView()); 509 widget1->GetNativeView());
512 generator.PressLeftButton(); 510 generator.PressLeftButton();
513 511
514 int num_drags = drag_view1->width(); 512 int num_drags = drag_view1->width();
515 for (int i = 0; i < num_drags; ++i) { 513 for (int i = 0; i < num_drags; ++i) {
516 // Because we are not doing a blocking drag and drop, the original 514 // Because we are not doing a blocking drag and drop, the original
517 // OSDragExchangeData object is lost as soon as we return from the drag 515 // OSDragExchangeData object is lost as soon as we return from the drag
518 // initiation in DragDropController::StartDragAndDrop(). Hence we set the 516 // initiation in DragDropController::StartDragAndDrop(). Hence we set the
519 // drag_data_ to a fake drag data object that we created. 517 // drag_data_ to a fake drag data object that we created.
520 if (i > 0) 518 if (i > 0)
521 UpdateDragData(&data); 519 UpdateDragData(&data);
522 generator.MoveMouseBy(1, 0); 520 generator.MoveMouseBy(1, 0);
523 521
524 // Execute any scheduled draws to process deferred mouse events. 522 // Execute any scheduled draws to process deferred mouse events.
525 RunAllPendingInMessageLoop(); 523 RunAllPendingInMessageLoop();
526 } 524 }
527 525
528 generator.ReleaseLeftButton(); 526 generator.ReleaseLeftButton();
529 527
530 EXPECT_TRUE(drag_drop_controller_->drag_start_received_); 528 EXPECT_TRUE(drag_drop_controller_->drag_start_received_);
531 EXPECT_EQ(num_drags - 1 - drag_view1->HorizontalDragThreshold(), 529 EXPECT_EQ(num_drags - 1 - drag_view1->HorizontalDragThreshold(),
532 drag_drop_controller_->num_drag_updates_); 530 drag_drop_controller_->num_drag_updates_);
533 EXPECT_TRUE(drag_drop_controller_->drop_received_); 531 EXPECT_TRUE(drag_drop_controller_->drop_received_);
534 EXPECT_EQ(base::UTF8ToUTF16("I am being dragged"), 532 EXPECT_EQ(base::UTF8ToUTF16("I am being dragged"),
535 drag_drop_controller_->drag_string_); 533 drag_drop_controller_->drag_string_);
536 534
537 EXPECT_EQ(1, drag_view1->num_drag_enters_); 535 EXPECT_EQ(1, drag_view1->num_drag_enters_);
538 int num_expected_updates = drag_view1->bounds().width() - 536 int num_expected_updates =
539 drag_view1->bounds().CenterPoint().x() - 2; 537 drag_view1->bounds().width() - drag_view1->bounds().CenterPoint().x() - 2;
540 EXPECT_EQ(num_expected_updates - drag_view1->HorizontalDragThreshold(), 538 EXPECT_EQ(num_expected_updates - drag_view1->HorizontalDragThreshold(),
541 drag_view1->num_drag_updates_); 539 drag_view1->num_drag_updates_);
542 EXPECT_EQ(0, drag_view1->num_drops_); 540 EXPECT_EQ(0, drag_view1->num_drops_);
543 EXPECT_EQ(1, drag_view1->num_drag_exits_); 541 EXPECT_EQ(1, drag_view1->num_drag_exits_);
544 EXPECT_TRUE(drag_view1->drag_done_received_); 542 EXPECT_TRUE(drag_view1->drag_done_received_);
545 543
546 EXPECT_EQ(1, drag_view2->num_drag_enters_); 544 EXPECT_EQ(1, drag_view2->num_drag_enters_);
547 num_expected_updates = num_drags - num_expected_updates - 1; 545 num_expected_updates = num_drags - num_expected_updates - 1;
548 EXPECT_EQ(num_expected_updates, drag_view2->num_drag_updates_); 546 EXPECT_EQ(num_expected_updates, drag_view2->num_drag_updates_);
549 EXPECT_EQ(1, drag_view2->num_drops_); 547 EXPECT_EQ(1, drag_view2->num_drops_);
550 EXPECT_EQ(0, drag_view2->num_drag_exits_); 548 EXPECT_EQ(0, drag_view2->num_drag_exits_);
551 EXPECT_FALSE(drag_view2->drag_done_received_); 549 EXPECT_FALSE(drag_view2->drag_done_received_);
552 } 550 }
553 551
554 // TODO(win_aura) http://crbug.com/154081 552 // TODO(win_aura) http://crbug.com/154081
555 #if defined(OS_WIN) 553 #if defined(OS_WIN)
556 #define MAYBE_ViewRemovedWhileInDragDropTest DISABLED_ViewRemovedWhileInDragDrop Test 554 #define MAYBE_ViewRemovedWhileInDragDropTest \
555 DISABLED_ViewRemovedWhileInDragDropTest
557 #else 556 #else
558 #define MAYBE_ViewRemovedWhileInDragDropTest ViewRemovedWhileInDragDropTest 557 #define MAYBE_ViewRemovedWhileInDragDropTest ViewRemovedWhileInDragDropTest
559 #endif 558 #endif
560 TEST_F(DragDropControllerTest, MAYBE_ViewRemovedWhileInDragDropTest) { 559 TEST_F(DragDropControllerTest, MAYBE_ViewRemovedWhileInDragDropTest) {
561 std::unique_ptr<views::Widget> widget(CreateNewWidget()); 560 std::unique_ptr<views::Widget> widget(CreateNewWidget());
562 std::unique_ptr<DragTestView> drag_view(new DragTestView); 561 std::unique_ptr<DragTestView> drag_view(new DragTestView);
563 AddViewToWidgetAndResize(widget.get(), drag_view.get()); 562 AddViewToWidgetAndResize(widget.get(), drag_view.get());
564 ui::OSExchangeData data; 563 ui::OSExchangeData data;
565 data.SetString(base::UTF8ToUTF16("I am being dragged")); 564 data.SetString(base::UTF8ToUTF16("I am being dragged"));
566 565
(...skipping 23 matching lines...) Expand all
590 generator.MoveMouseBy(0, 1); 589 generator.MoveMouseBy(0, 1);
591 590
592 // Execute any scheduled draws to process deferred mouse events. 591 // Execute any scheduled draws to process deferred mouse events.
593 RunAllPendingInMessageLoop(); 592 RunAllPendingInMessageLoop();
594 } 593 }
595 594
596 generator.ReleaseLeftButton(); 595 generator.ReleaseLeftButton();
597 596
598 EXPECT_TRUE(drag_drop_controller_->drag_start_received_); 597 EXPECT_TRUE(drag_drop_controller_->drag_start_received_);
599 EXPECT_EQ(num_drags_1 + num_drags_2 - 1 - drag_view->VerticalDragThreshold(), 598 EXPECT_EQ(num_drags_1 + num_drags_2 - 1 - drag_view->VerticalDragThreshold(),
600 drag_drop_controller_->num_drag_updates_); 599 drag_drop_controller_->num_drag_updates_);
601 EXPECT_TRUE(drag_drop_controller_->drop_received_); 600 EXPECT_TRUE(drag_drop_controller_->drop_received_);
602 EXPECT_EQ(base::UTF8ToUTF16("I am being dragged"), 601 EXPECT_EQ(base::UTF8ToUTF16("I am being dragged"),
603 drag_drop_controller_->drag_string_); 602 drag_drop_controller_->drag_string_);
604 603
605 EXPECT_EQ(1, drag_view->num_drag_enters_); 604 EXPECT_EQ(1, drag_view->num_drag_enters_);
606 EXPECT_EQ(num_drags_1 - 1 - drag_view->VerticalDragThreshold(), 605 EXPECT_EQ(num_drags_1 - 1 - drag_view->VerticalDragThreshold(),
607 drag_view->num_drag_updates_); 606 drag_view->num_drag_updates_);
608 EXPECT_EQ(0, drag_view->num_drops_); 607 EXPECT_EQ(0, drag_view->num_drops_);
609 EXPECT_EQ(0, drag_view->num_drag_exits_); 608 EXPECT_EQ(0, drag_view->num_drag_exits_);
610 EXPECT_TRUE(drag_view->drag_done_received_); 609 EXPECT_TRUE(drag_view->drag_done_received_);
611 } 610 }
612 611
613 TEST_F(DragDropControllerTest, DragLeavesClipboardAloneTest) { 612 TEST_F(DragDropControllerTest, DragLeavesClipboardAloneTest) {
614 ui::Clipboard* cb = ui::Clipboard::GetForCurrentThread(); 613 ui::Clipboard* cb = ui::Clipboard::GetForCurrentThread();
615 std::string clip_str("I am on the clipboard"); 614 std::string clip_str("I am on the clipboard");
616 { 615 {
617 // We first copy some text to the clipboard. 616 // We first copy some text to the clipboard.
618 ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE); 617 ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE);
619 scw.WriteText(base::ASCIIToUTF16(clip_str)); 618 scw.WriteText(base::ASCIIToUTF16(clip_str));
620 } 619 }
621 EXPECT_TRUE(cb->IsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(), 620 EXPECT_TRUE(cb->IsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(),
622 ui::CLIPBOARD_TYPE_COPY_PASTE)); 621 ui::CLIPBOARD_TYPE_COPY_PASTE));
623 622
624 std::unique_ptr<views::Widget> widget(CreateNewWidget()); 623 std::unique_ptr<views::Widget> widget(CreateNewWidget());
625 DragTestView* drag_view = new DragTestView; 624 DragTestView* drag_view = new DragTestView;
626 AddViewToWidgetAndResize(widget.get(), drag_view); 625 AddViewToWidgetAndResize(widget.get(), drag_view);
627 626
628 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), 627 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(),
629 widget->GetNativeView()); 628 widget->GetNativeView());
630 ui::OSExchangeData data; 629 ui::OSExchangeData data;
631 std::string data_str("I am being dragged"); 630 std::string data_str("I am being dragged");
632 data.SetString(base::ASCIIToUTF16(data_str)); 631 data.SetString(base::ASCIIToUTF16(data_str));
633 632
634 generator.PressLeftButton(); 633 generator.PressLeftButton();
635 generator.MoveMouseBy(0, drag_view->VerticalDragThreshold() + 1); 634 generator.MoveMouseBy(0, drag_view->VerticalDragThreshold() + 1);
636 635
637 // Execute any scheduled draws to process deferred mouse events. 636 // Execute any scheduled draws to process deferred mouse events.
638 RunAllPendingInMessageLoop(); 637 RunAllPendingInMessageLoop();
639 638
640 // Verify the clipboard contents haven't changed 639 // Verify the clipboard contents haven't changed
641 std::string result; 640 std::string result;
642 EXPECT_TRUE(cb->IsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(), 641 EXPECT_TRUE(cb->IsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(),
643 ui::CLIPBOARD_TYPE_COPY_PASTE)); 642 ui::CLIPBOARD_TYPE_COPY_PASTE));
644 cb->ReadAsciiText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result); 643 cb->ReadAsciiText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result);
645 EXPECT_EQ(clip_str, result); 644 EXPECT_EQ(clip_str, result);
646 // Destory the clipboard here because ash doesn't delete it. 645 // Destory the clipboard here because ash doesn't delete it.
647 // crbug.com/158150. 646 // crbug.com/158150.
648 ui::Clipboard::DestroyClipboardForCurrentThread(); 647 ui::Clipboard::DestroyClipboardForCurrentThread();
649 } 648 }
650 649
651 TEST_F(DragDropControllerTest, WindowDestroyedDuringDragDrop) { 650 TEST_F(DragDropControllerTest, WindowDestroyedDuringDragDrop) {
652 std::unique_ptr<views::Widget> widget(CreateNewWidget()); 651 std::unique_ptr<views::Widget> widget(CreateNewWidget());
653 DragTestView* drag_view = new DragTestView; 652 DragTestView* drag_view = new DragTestView;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
713 if (i > 0) 712 if (i > 0)
714 UpdateDragData(&data); 713 UpdateDragData(&data);
715 generator.MoveMouseBy(0, 1); 714 generator.MoveMouseBy(0, 1);
716 715
717 // We send a unexpected mouse move event. Note that we cannot use 716 // We send a unexpected mouse move event. Note that we cannot use
718 // EventGenerator since it implicitly turns these into mouse drag events. 717 // EventGenerator since it implicitly turns these into mouse drag events.
719 // The DragDropController should simply ignore these events. 718 // The DragDropController should simply ignore these events.
720 gfx::Point mouse_move_location = drag_view->bounds().CenterPoint(); 719 gfx::Point mouse_move_location = drag_view->bounds().CenterPoint();
721 ui::MouseEvent mouse_move(ui::ET_MOUSE_MOVED, mouse_move_location, 720 ui::MouseEvent mouse_move(ui::ET_MOUSE_MOVED, mouse_move_location,
722 mouse_move_location, ui::EventTimeForNow(), 0, 0); 721 mouse_move_location, ui::EventTimeForNow(), 0, 0);
723 ui::EventDispatchDetails details = Shell::GetPrimaryRootWindow()-> 722 ui::EventDispatchDetails details = Shell::GetPrimaryRootWindow()
724 GetHost()->event_processor()->OnEventFromSource(&mouse_move); 723 ->GetHost()
724 ->event_processor()
725 ->OnEventFromSource(&mouse_move);
725 ASSERT_FALSE(details.dispatcher_destroyed); 726 ASSERT_FALSE(details.dispatcher_destroyed);
726 } 727 }
727 728
728 generator.ReleaseLeftButton(); 729 generator.ReleaseLeftButton();
729 730
730 EXPECT_TRUE(drag_drop_controller_->drag_start_received_); 731 EXPECT_TRUE(drag_drop_controller_->drag_start_received_);
731 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(), 732 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(),
732 drag_drop_controller_->num_drag_updates_); 733 drag_drop_controller_->num_drag_updates_);
733 EXPECT_TRUE(drag_drop_controller_->drop_received_); 734 EXPECT_TRUE(drag_drop_controller_->drop_received_);
734 EXPECT_EQ(base::UTF8ToUTF16("I am being dragged"), 735 EXPECT_EQ(base::UTF8ToUTF16("I am being dragged"),
735 drag_drop_controller_->drag_string_); 736 drag_drop_controller_->drag_string_);
736 737
737 EXPECT_EQ(1, drag_view->num_drag_enters_); 738 EXPECT_EQ(1, drag_view->num_drag_enters_);
738 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(), 739 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(),
739 drag_view->num_drag_updates_); 740 drag_view->num_drag_updates_);
740 EXPECT_EQ(1, drag_view->num_drops_); 741 EXPECT_EQ(1, drag_view->num_drops_);
741 EXPECT_EQ(0, drag_view->num_drag_exits_); 742 EXPECT_EQ(0, drag_view->num_drag_exits_);
742 EXPECT_TRUE(drag_view->drag_done_received_); 743 EXPECT_TRUE(drag_view->drag_done_received_);
743 } 744 }
744 745
745 // TODO(win_aura) http://crbug.com/154081 746 // TODO(win_aura) http://crbug.com/154081
746 #if defined(OS_WIN) 747 #if defined(OS_WIN)
747 #define MAYBE_PressingEscapeCancelsDragDrop DISABLED_PressingEscapeCancelsDragDr op 748 #define MAYBE_PressingEscapeCancelsDragDrop \
749 DISABLED_PressingEscapeCancelsDragDrop
748 #define MAYBE_CaptureLostCancelsDragDrop DISABLED_CaptureLostCancelsDragDrop 750 #define MAYBE_CaptureLostCancelsDragDrop DISABLED_CaptureLostCancelsDragDrop
749 #else 751 #else
750 #define MAYBE_PressingEscapeCancelsDragDrop PressingEscapeCancelsDragDrop 752 #define MAYBE_PressingEscapeCancelsDragDrop PressingEscapeCancelsDragDrop
751 #define MAYBE_CaptureLostCancelsDragDrop CaptureLostCancelsDragDrop 753 #define MAYBE_CaptureLostCancelsDragDrop CaptureLostCancelsDragDrop
752 #endif 754 #endif
753 TEST_F(DragDropControllerTest, MAYBE_PressingEscapeCancelsDragDrop) { 755 TEST_F(DragDropControllerTest, MAYBE_PressingEscapeCancelsDragDrop) {
754 std::unique_ptr<views::Widget> widget(CreateNewWidget()); 756 std::unique_ptr<views::Widget> widget(CreateNewWidget());
755 DragTestView* drag_view = new DragTestView; 757 DragTestView* drag_view = new DragTestView;
756 AddViewToWidgetAndResize(widget.get(), drag_view); 758 AddViewToWidgetAndResize(widget.get(), drag_view);
757 ui::OSExchangeData data; 759 ui::OSExchangeData data;
(...skipping 13 matching lines...) Expand all
771 generator.MoveMouseBy(0, 1); 773 generator.MoveMouseBy(0, 1);
772 774
773 // Execute any scheduled draws to process deferred mouse events. 775 // Execute any scheduled draws to process deferred mouse events.
774 RunAllPendingInMessageLoop(); 776 RunAllPendingInMessageLoop();
775 } 777 }
776 778
777 generator.PressKey(ui::VKEY_ESCAPE, 0); 779 generator.PressKey(ui::VKEY_ESCAPE, 0);
778 780
779 EXPECT_TRUE(drag_drop_controller_->drag_start_received_); 781 EXPECT_TRUE(drag_drop_controller_->drag_start_received_);
780 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(), 782 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(),
781 drag_drop_controller_->num_drag_updates_); 783 drag_drop_controller_->num_drag_updates_);
782 EXPECT_FALSE(drag_drop_controller_->drop_received_); 784 EXPECT_FALSE(drag_drop_controller_->drop_received_);
783 EXPECT_TRUE(drag_drop_controller_->drag_canceled_); 785 EXPECT_TRUE(drag_drop_controller_->drag_canceled_);
784 EXPECT_EQ(base::UTF8ToUTF16("I am being dragged"), 786 EXPECT_EQ(base::UTF8ToUTF16("I am being dragged"),
785 drag_drop_controller_->drag_string_); 787 drag_drop_controller_->drag_string_);
786 788
787 EXPECT_EQ(1, drag_view->num_drag_enters_); 789 EXPECT_EQ(1, drag_view->num_drag_enters_);
788 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(), 790 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(),
789 drag_view->num_drag_updates_); 791 drag_view->num_drag_updates_);
790 EXPECT_EQ(0, drag_view->num_drops_); 792 EXPECT_EQ(0, drag_view->num_drops_);
791 EXPECT_EQ(1, drag_view->num_drag_exits_); 793 EXPECT_EQ(1, drag_view->num_drag_exits_);
792 EXPECT_TRUE(drag_view->drag_done_received_); 794 EXPECT_TRUE(drag_view->drag_done_received_);
793 } 795 }
794 796
795 TEST_F(DragDropControllerTest, MAYBE_CaptureLostCancelsDragDrop) { 797 TEST_F(DragDropControllerTest, MAYBE_CaptureLostCancelsDragDrop) {
796 std::unique_ptr<views::Widget> widget(CreateNewWidget()); 798 std::unique_ptr<views::Widget> widget(CreateNewWidget());
797 DragTestView* drag_view = new DragTestView; 799 DragTestView* drag_view = new DragTestView;
798 AddViewToWidgetAndResize(widget.get(), drag_view); 800 AddViewToWidgetAndResize(widget.get(), drag_view);
799 ui::OSExchangeData data; 801 ui::OSExchangeData data;
(...skipping 12 matching lines...) Expand all
812 UpdateDragData(&data); 814 UpdateDragData(&data);
813 generator.MoveMouseBy(0, 1); 815 generator.MoveMouseBy(0, 1);
814 816
815 // Execute any scheduled draws to process deferred mouse events. 817 // Execute any scheduled draws to process deferred mouse events.
816 RunAllPendingInMessageLoop(); 818 RunAllPendingInMessageLoop();
817 } 819 }
818 // Make sure the capture window won't handle mouse events. 820 // Make sure the capture window won't handle mouse events.
819 aura::Window* capture_window = drag_drop_tracker()->capture_window(); 821 aura::Window* capture_window = drag_drop_tracker()->capture_window();
820 ASSERT_TRUE(capture_window); 822 ASSERT_TRUE(capture_window);
821 EXPECT_EQ("0x0", capture_window->bounds().size().ToString()); 823 EXPECT_EQ("0x0", capture_window->bounds().size().ToString());
822 EXPECT_EQ(NULL, 824 EXPECT_EQ(NULL, capture_window->GetEventHandlerForPoint(gfx::Point()));
823 capture_window->GetEventHandlerForPoint(gfx::Point())); 825 EXPECT_EQ(NULL, capture_window->GetTopWindowContainingPoint(gfx::Point()));
824 EXPECT_EQ(NULL,
825 capture_window->GetTopWindowContainingPoint(gfx::Point()));
826 826
827 aura::client::GetCaptureClient(widget->GetNativeView()->GetRootWindow())-> 827 aura::client::GetCaptureClient(widget->GetNativeView()->GetRootWindow())
828 SetCapture(NULL); 828 ->SetCapture(NULL);
829 829
830 EXPECT_TRUE(drag_drop_controller_->drag_start_received_); 830 EXPECT_TRUE(drag_drop_controller_->drag_start_received_);
831 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(), 831 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(),
832 drag_drop_controller_->num_drag_updates_); 832 drag_drop_controller_->num_drag_updates_);
833 EXPECT_FALSE(drag_drop_controller_->drop_received_); 833 EXPECT_FALSE(drag_drop_controller_->drop_received_);
834 EXPECT_TRUE(drag_drop_controller_->drag_canceled_); 834 EXPECT_TRUE(drag_drop_controller_->drag_canceled_);
835 EXPECT_EQ(base::UTF8ToUTF16("I am being dragged"), 835 EXPECT_EQ(base::UTF8ToUTF16("I am being dragged"),
836 drag_drop_controller_->drag_string_); 836 drag_drop_controller_->drag_string_);
837 837
838 EXPECT_EQ(1, drag_view->num_drag_enters_); 838 EXPECT_EQ(1, drag_view->num_drag_enters_);
839 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(), 839 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(),
840 drag_view->num_drag_updates_); 840 drag_view->num_drag_updates_);
841 EXPECT_EQ(0, drag_view->num_drops_); 841 EXPECT_EQ(0, drag_view->num_drops_);
842 EXPECT_EQ(1, drag_view->num_drag_exits_); 842 EXPECT_EQ(1, drag_view->num_drag_exits_);
843 EXPECT_TRUE(drag_view->drag_done_received_); 843 EXPECT_TRUE(drag_view->drag_done_received_);
844 } 844 }
845 845
846 TEST_F(DragDropControllerTest, TouchDragDropInMultipleWindows) { 846 TEST_F(DragDropControllerTest, TouchDragDropInMultipleWindows) {
847 base::CommandLine::ForCurrentProcess()->AppendSwitch( 847 base::CommandLine::ForCurrentProcess()->AppendSwitch(
848 switches::kEnableTouchDragDrop); 848 switches::kEnableTouchDragDrop);
849 std::unique_ptr<views::Widget> widget1(CreateNewWidget()); 849 std::unique_ptr<views::Widget> widget1(CreateNewWidget());
850 DragTestView* drag_view1 = new DragTestView; 850 DragTestView* drag_view1 = new DragTestView;
851 AddViewToWidgetAndResize(widget1.get(), drag_view1); 851 AddViewToWidgetAndResize(widget1.get(), drag_view1);
852 std::unique_ptr<views::Widget> widget2(CreateNewWidget()); 852 std::unique_ptr<views::Widget> widget2(CreateNewWidget());
853 DragTestView* drag_view2 = new DragTestView; 853 DragTestView* drag_view2 = new DragTestView;
854 AddViewToWidgetAndResize(widget2.get(), drag_view2); 854 AddViewToWidgetAndResize(widget2.get(), drag_view2);
855 gfx::Rect widget1_bounds = widget1->GetClientAreaBoundsInScreen(); 855 gfx::Rect widget1_bounds = widget1->GetClientAreaBoundsInScreen();
856 gfx::Rect widget2_bounds = widget2->GetClientAreaBoundsInScreen(); 856 gfx::Rect widget2_bounds = widget2->GetClientAreaBoundsInScreen();
857 widget2->SetBounds(gfx::Rect(widget1_bounds.width(), 0, 857 widget2->SetBounds(gfx::Rect(widget1_bounds.width(), 0,
858 widget2_bounds.width(), widget2_bounds.height())); 858 widget2_bounds.width(),
859 widget2_bounds.height()));
859 860
860 ui::OSExchangeData data; 861 ui::OSExchangeData data;
861 data.SetString(base::UTF8ToUTF16("I am being dragged")); 862 data.SetString(base::UTF8ToUTF16("I am being dragged"));
862 863
863 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), 864 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(),
864 widget1->GetNativeView()); 865 widget1->GetNativeView());
865 generator.PressTouch(); 866 generator.PressTouch();
866 gfx::Point point = gfx::Rect(drag_view1->bounds()).CenterPoint(); 867 gfx::Point point = gfx::Rect(drag_view1->bounds()).CenterPoint();
867 DispatchGesture(ui::ET_GESTURE_LONG_PRESS, point); 868 DispatchGesture(ui::ET_GESTURE_LONG_PRESS, point);
868 // Because we are not doing a blocking drag and drop, the original 869 // Because we are not doing a blocking drag and drop, the original
(...skipping 10 matching lines...) Expand all
879 // Execute any scheduled draws to process deferred mouse events. 880 // Execute any scheduled draws to process deferred mouse events.
880 RunAllPendingInMessageLoop(); 881 RunAllPendingInMessageLoop();
881 } 882 }
882 883
883 DispatchGesture(ui::ET_GESTURE_SCROLL_END, gesture_location); 884 DispatchGesture(ui::ET_GESTURE_SCROLL_END, gesture_location);
884 885
885 EXPECT_TRUE(drag_drop_controller_->drag_start_received_); 886 EXPECT_TRUE(drag_drop_controller_->drag_start_received_);
886 EXPECT_EQ(num_drags, drag_drop_controller_->num_drag_updates_); 887 EXPECT_EQ(num_drags, drag_drop_controller_->num_drag_updates_);
887 EXPECT_TRUE(drag_drop_controller_->drop_received_); 888 EXPECT_TRUE(drag_drop_controller_->drop_received_);
888 EXPECT_EQ(base::UTF8ToUTF16("I am being dragged"), 889 EXPECT_EQ(base::UTF8ToUTF16("I am being dragged"),
889 drag_drop_controller_->drag_string_); 890 drag_drop_controller_->drag_string_);
890 891
891 EXPECT_EQ(1, drag_view1->num_drag_enters_); 892 EXPECT_EQ(1, drag_view1->num_drag_enters_);
892 int num_expected_updates = drag_view1->bounds().width() - 893 int num_expected_updates =
893 drag_view1->bounds().CenterPoint().x() - 1; 894 drag_view1->bounds().width() - drag_view1->bounds().CenterPoint().x() - 1;
894 EXPECT_EQ(num_expected_updates, drag_view1->num_drag_updates_); 895 EXPECT_EQ(num_expected_updates, drag_view1->num_drag_updates_);
895 EXPECT_EQ(0, drag_view1->num_drops_); 896 EXPECT_EQ(0, drag_view1->num_drops_);
896 EXPECT_EQ(1, drag_view1->num_drag_exits_); 897 EXPECT_EQ(1, drag_view1->num_drag_exits_);
897 EXPECT_TRUE(drag_view1->drag_done_received_); 898 EXPECT_TRUE(drag_view1->drag_done_received_);
898 899
899 EXPECT_EQ(1, drag_view2->num_drag_enters_); 900 EXPECT_EQ(1, drag_view2->num_drag_enters_);
900 num_expected_updates = num_drags - num_expected_updates; 901 num_expected_updates = num_drags - num_expected_updates;
901 EXPECT_EQ(num_expected_updates, drag_view2->num_drag_updates_); 902 EXPECT_EQ(num_expected_updates, drag_view2->num_drag_updates_);
902 EXPECT_EQ(1, drag_view2->num_drops_); 903 EXPECT_EQ(1, drag_view2->num_drops_);
903 EXPECT_EQ(0, drag_view2->num_drag_exits_); 904 EXPECT_EQ(0, drag_view2->num_drag_exits_);
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
984 iter != root_windows.end(); ++iter) { 985 iter != root_windows.end(); ++iter) {
985 aura::client::SetDragDropClient(*iter, drag_drop_controller_.get()); 986 aura::client::SetDragDropClient(*iter, drag_drop_controller_.get());
986 } 987 }
987 988
988 ui::OSExchangeData data; 989 ui::OSExchangeData data;
989 data.SetString(base::UTF8ToUTF16("I am being dragged")); 990 data.SetString(base::UTF8ToUTF16("I am being dragged"));
990 { 991 {
991 std::unique_ptr<views::Widget> widget(CreateNewWidget()); 992 std::unique_ptr<views::Widget> widget(CreateNewWidget());
992 aura::Window* window = widget->GetNativeWindow(); 993 aura::Window* window = widget->GetNativeWindow();
993 drag_drop_controller_->StartDragAndDrop( 994 drag_drop_controller_->StartDragAndDrop(
994 data, 995 data, window->GetRootWindow(), window, gfx::Point(5, 5),
995 window->GetRootWindow(),
996 window,
997 gfx::Point(5, 5),
998 ui::DragDropTypes::DRAG_MOVE, 996 ui::DragDropTypes::DRAG_MOVE,
999 ui::DragDropTypes::DRAG_EVENT_SOURCE_MOUSE); 997 ui::DragDropTypes::DRAG_EVENT_SOURCE_MOUSE);
1000 998
1001 DragImageWindowObserver observer; 999 DragImageWindowObserver observer;
1002 ASSERT_TRUE(GetDragImageWindow()); 1000 ASSERT_TRUE(GetDragImageWindow());
1003 GetDragImageWindow()->AddObserver(&observer); 1001 GetDragImageWindow()->AddObserver(&observer);
1004 1002
1005 { 1003 {
1006 ui::MouseEvent e(ui::ET_MOUSE_DRAGGED, gfx::Point(200, 0), 1004 ui::MouseEvent e(ui::ET_MOUSE_DRAGGED, gfx::Point(200, 0),
1007 gfx::Point(200, 0), ui::EventTimeForNow(), ui::EF_NONE, 1005 gfx::Point(200, 0), ui::EventTimeForNow(), ui::EF_NONE,
(...skipping 10 matching lines...) Expand all
1018 drag_drop_controller_->DragCancel(); 1016 drag_drop_controller_->DragCancel();
1019 CompleteCancelAnimation(); 1017 CompleteCancelAnimation();
1020 1018
1021 EXPECT_EQ("5,5", observer.window_location_on_destroying().ToString()); 1019 EXPECT_EQ("5,5", observer.window_location_on_destroying().ToString());
1022 } 1020 }
1023 1021
1024 { 1022 {
1025 std::unique_ptr<views::Widget> widget(CreateNewWidget()); 1023 std::unique_ptr<views::Widget> widget(CreateNewWidget());
1026 aura::Window* window = widget->GetNativeWindow(); 1024 aura::Window* window = widget->GetNativeWindow();
1027 drag_drop_controller_->StartDragAndDrop( 1025 drag_drop_controller_->StartDragAndDrop(
1028 data, 1026 data, window->GetRootWindow(), window, gfx::Point(405, 405),
1029 window->GetRootWindow(),
1030 window,
1031 gfx::Point(405, 405),
1032 ui::DragDropTypes::DRAG_MOVE, 1027 ui::DragDropTypes::DRAG_MOVE,
1033 ui::DragDropTypes::DRAG_EVENT_SOURCE_MOUSE); 1028 ui::DragDropTypes::DRAG_EVENT_SOURCE_MOUSE);
1034 DragImageWindowObserver observer; 1029 DragImageWindowObserver observer;
1035 ASSERT_TRUE(GetDragImageWindow()); 1030 ASSERT_TRUE(GetDragImageWindow());
1036 GetDragImageWindow()->AddObserver(&observer); 1031 GetDragImageWindow()->AddObserver(&observer);
1037 1032
1038 { 1033 {
1039 ui::MouseEvent e(ui::ET_MOUSE_DRAGGED, gfx::Point(600, 0), 1034 ui::MouseEvent e(ui::ET_MOUSE_DRAGGED, gfx::Point(600, 0),
1040 gfx::Point(600, 0), ui::EventTimeForNow(), ui::EF_NONE, 1035 gfx::Point(600, 0), ui::EventTimeForNow(), ui::EF_NONE,
1041 ui::EF_NONE); 1036 ui::EF_NONE);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1101 drag_drop_controller_->drag_string_); 1096 drag_drop_controller_->drag_string_);
1102 EXPECT_EQ(1, drag_view->num_drag_enters_); 1097 EXPECT_EQ(1, drag_view->num_drag_enters_);
1103 EXPECT_EQ(2, drag_view->num_drag_updates_); 1098 EXPECT_EQ(2, drag_view->num_drag_updates_);
1104 EXPECT_EQ(1, drag_view->num_drops_); 1099 EXPECT_EQ(1, drag_view->num_drops_);
1105 EXPECT_EQ(0, drag_view->num_drag_exits_); 1100 EXPECT_EQ(0, drag_view->num_drag_exits_);
1106 EXPECT_TRUE(drag_view->drag_done_received_); 1101 EXPECT_TRUE(drag_view->drag_done_received_);
1107 } 1102 }
1108 1103
1109 } // namespace test 1104 } // namespace test
1110 } // namespace ash 1105 } // namespace ash
OLDNEW
« no previous file with comments | « ash/drag_drop/drag_drop_controller.cc ('k') | ash/drag_drop/drag_drop_interactive_uitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698