OLD | NEW |
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 311 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
322 } | 322 } |
323 | 323 |
324 void CompleteCancelAnimation() { | 324 void CompleteCancelAnimation() { |
325 CompletableLinearAnimation* animation = | 325 CompletableLinearAnimation* animation = |
326 static_cast<CompletableLinearAnimation*>( | 326 static_cast<CompletableLinearAnimation*>( |
327 drag_drop_controller_->cancel_animation_.get()); | 327 drag_drop_controller_->cancel_animation_.get()); |
328 animation->Complete(); | 328 animation->Complete(); |
329 } | 329 } |
330 | 330 |
331 protected: | 331 protected: |
332 scoped_ptr<TestDragDropController> drag_drop_controller_; | 332 std::unique_ptr<TestDragDropController> drag_drop_controller_; |
333 | 333 |
334 private: | 334 private: |
335 DISALLOW_COPY_AND_ASSIGN(DragDropControllerTest); | 335 DISALLOW_COPY_AND_ASSIGN(DragDropControllerTest); |
336 }; | 336 }; |
337 | 337 |
338 // TODO(win_aura) http://crbug.com/154081 | 338 // TODO(win_aura) http://crbug.com/154081 |
339 #if defined(OS_WIN) | 339 #if defined(OS_WIN) |
340 #define MAYBE_DragDropInSingleViewTest DISABLED_DragDropInSingleViewTest | 340 #define MAYBE_DragDropInSingleViewTest DISABLED_DragDropInSingleViewTest |
341 #else | 341 #else |
342 #define MAYBE_DragDropInSingleViewTest DragDropInSingleViewTest | 342 #define MAYBE_DragDropInSingleViewTest DragDropInSingleViewTest |
343 #endif | 343 #endif |
344 TEST_F(DragDropControllerTest, MAYBE_DragDropInSingleViewTest) { | 344 TEST_F(DragDropControllerTest, MAYBE_DragDropInSingleViewTest) { |
345 scoped_ptr<views::Widget> widget(CreateNewWidget()); | 345 std::unique_ptr<views::Widget> widget(CreateNewWidget()); |
346 DragTestView* drag_view = new DragTestView; | 346 DragTestView* drag_view = new DragTestView; |
347 AddViewToWidgetAndResize(widget.get(), drag_view); | 347 AddViewToWidgetAndResize(widget.get(), drag_view); |
348 ui::OSExchangeData data; | 348 ui::OSExchangeData data; |
349 data.SetString(base::UTF8ToUTF16("I am being dragged")); | 349 data.SetString(base::UTF8ToUTF16("I am being dragged")); |
350 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), | 350 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), |
351 widget->GetNativeView()); | 351 widget->GetNativeView()); |
352 generator.PressLeftButton(); | 352 generator.PressLeftButton(); |
353 | 353 |
354 int num_drags = 17; | 354 int num_drags = 17; |
355 SetCheckIfCaptureLost(widget.get(), true); | 355 SetCheckIfCaptureLost(widget.get(), true); |
(...skipping 25 matching lines...) Expand all Loading... |
381 | 381 |
382 EXPECT_EQ(1, drag_view->num_drag_enters_); | 382 EXPECT_EQ(1, drag_view->num_drag_enters_); |
383 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(), | 383 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(), |
384 drag_view->num_drag_updates_); | 384 drag_view->num_drag_updates_); |
385 EXPECT_EQ(1, drag_view->num_drops_); | 385 EXPECT_EQ(1, drag_view->num_drops_); |
386 EXPECT_EQ(0, drag_view->num_drag_exits_); | 386 EXPECT_EQ(0, drag_view->num_drag_exits_); |
387 EXPECT_TRUE(drag_view->drag_done_received_); | 387 EXPECT_TRUE(drag_view->drag_done_received_); |
388 } | 388 } |
389 | 389 |
390 TEST_F(DragDropControllerTest, DragDropWithZeroDragUpdates) { | 390 TEST_F(DragDropControllerTest, DragDropWithZeroDragUpdates) { |
391 scoped_ptr<views::Widget> widget(CreateNewWidget()); | 391 std::unique_ptr<views::Widget> widget(CreateNewWidget()); |
392 DragTestView* drag_view = new DragTestView; | 392 DragTestView* drag_view = new DragTestView; |
393 AddViewToWidgetAndResize(widget.get(), drag_view); | 393 AddViewToWidgetAndResize(widget.get(), drag_view); |
394 ui::OSExchangeData data; | 394 ui::OSExchangeData data; |
395 data.SetString(base::UTF8ToUTF16("I am being dragged")); | 395 data.SetString(base::UTF8ToUTF16("I am being dragged")); |
396 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), | 396 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), |
397 widget->GetNativeView()); | 397 widget->GetNativeView()); |
398 generator.PressLeftButton(); | 398 generator.PressLeftButton(); |
399 | 399 |
400 int num_drags = drag_view->VerticalDragThreshold() + 1; | 400 int num_drags = drag_view->VerticalDragThreshold() + 1; |
401 for (int i = 0; i < num_drags; ++i) { | 401 for (int i = 0; i < num_drags; ++i) { |
(...skipping 23 matching lines...) Expand all Loading... |
425 EXPECT_TRUE(drag_view->drag_done_received_); | 425 EXPECT_TRUE(drag_view->drag_done_received_); |
426 } | 426 } |
427 | 427 |
428 // TODO(win_aura) http://crbug.com/154081 | 428 // TODO(win_aura) http://crbug.com/154081 |
429 #if defined(OS_WIN) | 429 #if defined(OS_WIN) |
430 #define MAYBE_DragDropInMultipleViewsSingleWidgetTest DISABLED_DragDropInMultipl
eViewsSingleWidgetTest | 430 #define MAYBE_DragDropInMultipleViewsSingleWidgetTest DISABLED_DragDropInMultipl
eViewsSingleWidgetTest |
431 #else | 431 #else |
432 #define MAYBE_DragDropInMultipleViewsSingleWidgetTest DragDropInMultipleViewsSin
gleWidgetTest | 432 #define MAYBE_DragDropInMultipleViewsSingleWidgetTest DragDropInMultipleViewsSin
gleWidgetTest |
433 #endif | 433 #endif |
434 TEST_F(DragDropControllerTest, MAYBE_DragDropInMultipleViewsSingleWidgetTest) { | 434 TEST_F(DragDropControllerTest, MAYBE_DragDropInMultipleViewsSingleWidgetTest) { |
435 scoped_ptr<views::Widget> widget(CreateNewWidget()); | 435 std::unique_ptr<views::Widget> widget(CreateNewWidget()); |
436 DragTestView* drag_view1 = new DragTestView; | 436 DragTestView* drag_view1 = new DragTestView; |
437 AddViewToWidgetAndResize(widget.get(), drag_view1); | 437 AddViewToWidgetAndResize(widget.get(), drag_view1); |
438 DragTestView* drag_view2 = new DragTestView; | 438 DragTestView* drag_view2 = new DragTestView; |
439 AddViewToWidgetAndResize(widget.get(), drag_view2); | 439 AddViewToWidgetAndResize(widget.get(), drag_view2); |
440 | 440 |
441 ui::OSExchangeData data; | 441 ui::OSExchangeData data; |
442 data.SetString(base::UTF8ToUTF16("I am being dragged")); | 442 data.SetString(base::UTF8ToUTF16("I am being dragged")); |
443 | 443 |
444 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow()); | 444 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow()); |
445 generator.MoveMouseRelativeTo(widget->GetNativeView(), | 445 generator.MoveMouseRelativeTo(widget->GetNativeView(), |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
486 EXPECT_FALSE(drag_view2->drag_done_received_); | 486 EXPECT_FALSE(drag_view2->drag_done_received_); |
487 } | 487 } |
488 | 488 |
489 // TODO(win_aura) http://crbug.com/154081 | 489 // TODO(win_aura) http://crbug.com/154081 |
490 #if defined(OS_WIN) | 490 #if defined(OS_WIN) |
491 #define MAYBE_DragDropInMultipleViewsMultipleWidgetsTest DISABLED_DragDropInMult
ipleViewsMultipleWidgetsTest | 491 #define MAYBE_DragDropInMultipleViewsMultipleWidgetsTest DISABLED_DragDropInMult
ipleViewsMultipleWidgetsTest |
492 #else | 492 #else |
493 #define MAYBE_DragDropInMultipleViewsMultipleWidgetsTest DragDropInMultipleViews
MultipleWidgetsTest | 493 #define MAYBE_DragDropInMultipleViewsMultipleWidgetsTest DragDropInMultipleViews
MultipleWidgetsTest |
494 #endif | 494 #endif |
495 TEST_F(DragDropControllerTest, MAYBE_DragDropInMultipleViewsMultipleWidgetsTest)
{ | 495 TEST_F(DragDropControllerTest, MAYBE_DragDropInMultipleViewsMultipleWidgetsTest)
{ |
496 scoped_ptr<views::Widget> widget1(CreateNewWidget()); | 496 std::unique_ptr<views::Widget> widget1(CreateNewWidget()); |
497 DragTestView* drag_view1 = new DragTestView; | 497 DragTestView* drag_view1 = new DragTestView; |
498 AddViewToWidgetAndResize(widget1.get(), drag_view1); | 498 AddViewToWidgetAndResize(widget1.get(), drag_view1); |
499 scoped_ptr<views::Widget> widget2(CreateNewWidget()); | 499 std::unique_ptr<views::Widget> widget2(CreateNewWidget()); |
500 DragTestView* drag_view2 = new DragTestView; | 500 DragTestView* drag_view2 = new DragTestView; |
501 AddViewToWidgetAndResize(widget2.get(), drag_view2); | 501 AddViewToWidgetAndResize(widget2.get(), drag_view2); |
502 gfx::Rect widget1_bounds = widget1->GetClientAreaBoundsInScreen(); | 502 gfx::Rect widget1_bounds = widget1->GetClientAreaBoundsInScreen(); |
503 gfx::Rect widget2_bounds = widget2->GetClientAreaBoundsInScreen(); | 503 gfx::Rect widget2_bounds = widget2->GetClientAreaBoundsInScreen(); |
504 widget2->SetBounds(gfx::Rect(widget1_bounds.width(), 0, | 504 widget2->SetBounds(gfx::Rect(widget1_bounds.width(), 0, |
505 widget2_bounds.width(), widget2_bounds.height())); | 505 widget2_bounds.width(), widget2_bounds.height())); |
506 | 506 |
507 ui::OSExchangeData data; | 507 ui::OSExchangeData data; |
508 data.SetString(base::UTF8ToUTF16("I am being dragged")); | 508 data.SetString(base::UTF8ToUTF16("I am being dragged")); |
509 | 509 |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
551 EXPECT_FALSE(drag_view2->drag_done_received_); | 551 EXPECT_FALSE(drag_view2->drag_done_received_); |
552 } | 552 } |
553 | 553 |
554 // TODO(win_aura) http://crbug.com/154081 | 554 // TODO(win_aura) http://crbug.com/154081 |
555 #if defined(OS_WIN) | 555 #if defined(OS_WIN) |
556 #define MAYBE_ViewRemovedWhileInDragDropTest DISABLED_ViewRemovedWhileInDragDrop
Test | 556 #define MAYBE_ViewRemovedWhileInDragDropTest DISABLED_ViewRemovedWhileInDragDrop
Test |
557 #else | 557 #else |
558 #define MAYBE_ViewRemovedWhileInDragDropTest ViewRemovedWhileInDragDropTest | 558 #define MAYBE_ViewRemovedWhileInDragDropTest ViewRemovedWhileInDragDropTest |
559 #endif | 559 #endif |
560 TEST_F(DragDropControllerTest, MAYBE_ViewRemovedWhileInDragDropTest) { | 560 TEST_F(DragDropControllerTest, MAYBE_ViewRemovedWhileInDragDropTest) { |
561 scoped_ptr<views::Widget> widget(CreateNewWidget()); | 561 std::unique_ptr<views::Widget> widget(CreateNewWidget()); |
562 scoped_ptr<DragTestView> drag_view(new DragTestView); | 562 std::unique_ptr<DragTestView> drag_view(new DragTestView); |
563 AddViewToWidgetAndResize(widget.get(), drag_view.get()); | 563 AddViewToWidgetAndResize(widget.get(), drag_view.get()); |
564 gfx::Point point = gfx::Rect(drag_view->bounds()).CenterPoint(); | 564 gfx::Point point = gfx::Rect(drag_view->bounds()).CenterPoint(); |
565 ui::OSExchangeData data; | 565 ui::OSExchangeData data; |
566 data.SetString(base::UTF8ToUTF16("I am being dragged")); | 566 data.SetString(base::UTF8ToUTF16("I am being dragged")); |
567 | 567 |
568 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow()); | 568 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow()); |
569 generator.MoveMouseToCenterOf(widget->GetNativeView()); | 569 generator.MoveMouseToCenterOf(widget->GetNativeView()); |
570 generator.PressLeftButton(); | 570 generator.PressLeftButton(); |
571 | 571 |
572 int num_drags_1 = 17; | 572 int num_drags_1 = 17; |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
615 ui::Clipboard* cb = ui::Clipboard::GetForCurrentThread(); | 615 ui::Clipboard* cb = ui::Clipboard::GetForCurrentThread(); |
616 std::string clip_str("I am on the clipboard"); | 616 std::string clip_str("I am on the clipboard"); |
617 { | 617 { |
618 // We first copy some text to the clipboard. | 618 // We first copy some text to the clipboard. |
619 ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE); | 619 ui::ScopedClipboardWriter scw(ui::CLIPBOARD_TYPE_COPY_PASTE); |
620 scw.WriteText(base::ASCIIToUTF16(clip_str)); | 620 scw.WriteText(base::ASCIIToUTF16(clip_str)); |
621 } | 621 } |
622 EXPECT_TRUE(cb->IsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(), | 622 EXPECT_TRUE(cb->IsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(), |
623 ui::CLIPBOARD_TYPE_COPY_PASTE)); | 623 ui::CLIPBOARD_TYPE_COPY_PASTE)); |
624 | 624 |
625 scoped_ptr<views::Widget> widget(CreateNewWidget()); | 625 std::unique_ptr<views::Widget> widget(CreateNewWidget()); |
626 DragTestView* drag_view = new DragTestView; | 626 DragTestView* drag_view = new DragTestView; |
627 AddViewToWidgetAndResize(widget.get(), drag_view); | 627 AddViewToWidgetAndResize(widget.get(), drag_view); |
628 | 628 |
629 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), | 629 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), |
630 widget->GetNativeView()); | 630 widget->GetNativeView()); |
631 ui::OSExchangeData data; | 631 ui::OSExchangeData data; |
632 std::string data_str("I am being dragged"); | 632 std::string data_str("I am being dragged"); |
633 data.SetString(base::ASCIIToUTF16(data_str)); | 633 data.SetString(base::ASCIIToUTF16(data_str)); |
634 | 634 |
635 generator.PressLeftButton(); | 635 generator.PressLeftButton(); |
636 generator.MoveMouseBy(0, drag_view->VerticalDragThreshold() + 1); | 636 generator.MoveMouseBy(0, drag_view->VerticalDragThreshold() + 1); |
637 | 637 |
638 // Execute any scheduled draws to process deferred mouse events. | 638 // Execute any scheduled draws to process deferred mouse events. |
639 RunAllPendingInMessageLoop(); | 639 RunAllPendingInMessageLoop(); |
640 | 640 |
641 // Verify the clipboard contents haven't changed | 641 // Verify the clipboard contents haven't changed |
642 std::string result; | 642 std::string result; |
643 EXPECT_TRUE(cb->IsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(), | 643 EXPECT_TRUE(cb->IsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(), |
644 ui::CLIPBOARD_TYPE_COPY_PASTE)); | 644 ui::CLIPBOARD_TYPE_COPY_PASTE)); |
645 cb->ReadAsciiText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result); | 645 cb->ReadAsciiText(ui::CLIPBOARD_TYPE_COPY_PASTE, &result); |
646 EXPECT_EQ(clip_str, result); | 646 EXPECT_EQ(clip_str, result); |
647 // Destory the clipboard here because ash doesn't delete it. | 647 // Destory the clipboard here because ash doesn't delete it. |
648 // crbug.com/158150. | 648 // crbug.com/158150. |
649 ui::Clipboard::DestroyClipboardForCurrentThread(); | 649 ui::Clipboard::DestroyClipboardForCurrentThread(); |
650 } | 650 } |
651 | 651 |
652 TEST_F(DragDropControllerTest, WindowDestroyedDuringDragDrop) { | 652 TEST_F(DragDropControllerTest, WindowDestroyedDuringDragDrop) { |
653 scoped_ptr<views::Widget> widget(CreateNewWidget()); | 653 std::unique_ptr<views::Widget> widget(CreateNewWidget()); |
654 DragTestView* drag_view = new DragTestView; | 654 DragTestView* drag_view = new DragTestView; |
655 AddViewToWidgetAndResize(widget.get(), drag_view); | 655 AddViewToWidgetAndResize(widget.get(), drag_view); |
656 aura::Window* window = widget->GetNativeView(); | 656 aura::Window* window = widget->GetNativeView(); |
657 | 657 |
658 ui::OSExchangeData data; | 658 ui::OSExchangeData data; |
659 data.SetString(base::UTF8ToUTF16("I am being dragged")); | 659 data.SetString(base::UTF8ToUTF16("I am being dragged")); |
660 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), | 660 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), |
661 widget->GetNativeView()); | 661 widget->GetNativeView()); |
662 generator.PressLeftButton(); | 662 generator.PressLeftButton(); |
663 | 663 |
(...skipping 25 matching lines...) Expand all Loading... |
689 // We should not crash here. | 689 // We should not crash here. |
690 } | 690 } |
691 | 691 |
692 generator.ReleaseLeftButton(); | 692 generator.ReleaseLeftButton(); |
693 | 693 |
694 EXPECT_TRUE(drag_drop_controller_->drag_start_received_); | 694 EXPECT_TRUE(drag_drop_controller_->drag_start_received_); |
695 EXPECT_TRUE(drag_drop_controller_->drop_received_); | 695 EXPECT_TRUE(drag_drop_controller_->drop_received_); |
696 } | 696 } |
697 | 697 |
698 TEST_F(DragDropControllerTest, SyntheticEventsDuringDragDrop) { | 698 TEST_F(DragDropControllerTest, SyntheticEventsDuringDragDrop) { |
699 scoped_ptr<views::Widget> widget(CreateNewWidget()); | 699 std::unique_ptr<views::Widget> widget(CreateNewWidget()); |
700 DragTestView* drag_view = new DragTestView; | 700 DragTestView* drag_view = new DragTestView; |
701 AddViewToWidgetAndResize(widget.get(), drag_view); | 701 AddViewToWidgetAndResize(widget.get(), drag_view); |
702 ui::OSExchangeData data; | 702 ui::OSExchangeData data; |
703 data.SetString(base::UTF8ToUTF16("I am being dragged")); | 703 data.SetString(base::UTF8ToUTF16("I am being dragged")); |
704 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), | 704 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), |
705 widget->GetNativeView()); | 705 widget->GetNativeView()); |
706 generator.PressLeftButton(); | 706 generator.PressLeftButton(); |
707 | 707 |
708 int num_drags = 17; | 708 int num_drags = 17; |
709 for (int i = 0; i < num_drags; ++i) { | 709 for (int i = 0; i < num_drags; ++i) { |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
745 | 745 |
746 // TODO(win_aura) http://crbug.com/154081 | 746 // TODO(win_aura) http://crbug.com/154081 |
747 #if defined(OS_WIN) | 747 #if defined(OS_WIN) |
748 #define MAYBE_PressingEscapeCancelsDragDrop DISABLED_PressingEscapeCancelsDragDr
op | 748 #define MAYBE_PressingEscapeCancelsDragDrop DISABLED_PressingEscapeCancelsDragDr
op |
749 #define MAYBE_CaptureLostCancelsDragDrop DISABLED_CaptureLostCancelsDragDrop | 749 #define MAYBE_CaptureLostCancelsDragDrop DISABLED_CaptureLostCancelsDragDrop |
750 #else | 750 #else |
751 #define MAYBE_PressingEscapeCancelsDragDrop PressingEscapeCancelsDragDrop | 751 #define MAYBE_PressingEscapeCancelsDragDrop PressingEscapeCancelsDragDrop |
752 #define MAYBE_CaptureLostCancelsDragDrop CaptureLostCancelsDragDrop | 752 #define MAYBE_CaptureLostCancelsDragDrop CaptureLostCancelsDragDrop |
753 #endif | 753 #endif |
754 TEST_F(DragDropControllerTest, MAYBE_PressingEscapeCancelsDragDrop) { | 754 TEST_F(DragDropControllerTest, MAYBE_PressingEscapeCancelsDragDrop) { |
755 scoped_ptr<views::Widget> widget(CreateNewWidget()); | 755 std::unique_ptr<views::Widget> widget(CreateNewWidget()); |
756 DragTestView* drag_view = new DragTestView; | 756 DragTestView* drag_view = new DragTestView; |
757 AddViewToWidgetAndResize(widget.get(), drag_view); | 757 AddViewToWidgetAndResize(widget.get(), drag_view); |
758 ui::OSExchangeData data; | 758 ui::OSExchangeData data; |
759 data.SetString(base::UTF8ToUTF16("I am being dragged")); | 759 data.SetString(base::UTF8ToUTF16("I am being dragged")); |
760 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), | 760 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), |
761 widget->GetNativeView()); | 761 widget->GetNativeView()); |
762 generator.PressLeftButton(); | 762 generator.PressLeftButton(); |
763 | 763 |
764 int num_drags = 17; | 764 int num_drags = 17; |
765 for (int i = 0; i < num_drags; ++i) { | 765 for (int i = 0; i < num_drags; ++i) { |
(...skipping 21 matching lines...) Expand all Loading... |
787 | 787 |
788 EXPECT_EQ(1, drag_view->num_drag_enters_); | 788 EXPECT_EQ(1, drag_view->num_drag_enters_); |
789 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(), | 789 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(), |
790 drag_view->num_drag_updates_); | 790 drag_view->num_drag_updates_); |
791 EXPECT_EQ(0, drag_view->num_drops_); | 791 EXPECT_EQ(0, drag_view->num_drops_); |
792 EXPECT_EQ(1, drag_view->num_drag_exits_); | 792 EXPECT_EQ(1, drag_view->num_drag_exits_); |
793 EXPECT_TRUE(drag_view->drag_done_received_); | 793 EXPECT_TRUE(drag_view->drag_done_received_); |
794 } | 794 } |
795 | 795 |
796 TEST_F(DragDropControllerTest, MAYBE_CaptureLostCancelsDragDrop) { | 796 TEST_F(DragDropControllerTest, MAYBE_CaptureLostCancelsDragDrop) { |
797 scoped_ptr<views::Widget> widget(CreateNewWidget()); | 797 std::unique_ptr<views::Widget> widget(CreateNewWidget()); |
798 DragTestView* drag_view = new DragTestView; | 798 DragTestView* drag_view = new DragTestView; |
799 AddViewToWidgetAndResize(widget.get(), drag_view); | 799 AddViewToWidgetAndResize(widget.get(), drag_view); |
800 ui::OSExchangeData data; | 800 ui::OSExchangeData data; |
801 data.SetString(base::UTF8ToUTF16("I am being dragged")); | 801 data.SetString(base::UTF8ToUTF16("I am being dragged")); |
802 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), | 802 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), |
803 widget->GetNativeView()); | 803 widget->GetNativeView()); |
804 generator.PressLeftButton(); | 804 generator.PressLeftButton(); |
805 | 805 |
806 int num_drags = 17; | 806 int num_drags = 17; |
807 for (int i = 0; i < num_drags; ++i) { | 807 for (int i = 0; i < num_drags; ++i) { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
840 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(), | 840 EXPECT_EQ(num_drags - 1 - drag_view->VerticalDragThreshold(), |
841 drag_view->num_drag_updates_); | 841 drag_view->num_drag_updates_); |
842 EXPECT_EQ(0, drag_view->num_drops_); | 842 EXPECT_EQ(0, drag_view->num_drops_); |
843 EXPECT_EQ(1, drag_view->num_drag_exits_); | 843 EXPECT_EQ(1, drag_view->num_drag_exits_); |
844 EXPECT_TRUE(drag_view->drag_done_received_); | 844 EXPECT_TRUE(drag_view->drag_done_received_); |
845 } | 845 } |
846 | 846 |
847 TEST_F(DragDropControllerTest, TouchDragDropInMultipleWindows) { | 847 TEST_F(DragDropControllerTest, TouchDragDropInMultipleWindows) { |
848 base::CommandLine::ForCurrentProcess()->AppendSwitch( | 848 base::CommandLine::ForCurrentProcess()->AppendSwitch( |
849 switches::kEnableTouchDragDrop); | 849 switches::kEnableTouchDragDrop); |
850 scoped_ptr<views::Widget> widget1(CreateNewWidget()); | 850 std::unique_ptr<views::Widget> widget1(CreateNewWidget()); |
851 DragTestView* drag_view1 = new DragTestView; | 851 DragTestView* drag_view1 = new DragTestView; |
852 AddViewToWidgetAndResize(widget1.get(), drag_view1); | 852 AddViewToWidgetAndResize(widget1.get(), drag_view1); |
853 scoped_ptr<views::Widget> widget2(CreateNewWidget()); | 853 std::unique_ptr<views::Widget> widget2(CreateNewWidget()); |
854 DragTestView* drag_view2 = new DragTestView; | 854 DragTestView* drag_view2 = new DragTestView; |
855 AddViewToWidgetAndResize(widget2.get(), drag_view2); | 855 AddViewToWidgetAndResize(widget2.get(), drag_view2); |
856 gfx::Rect widget1_bounds = widget1->GetClientAreaBoundsInScreen(); | 856 gfx::Rect widget1_bounds = widget1->GetClientAreaBoundsInScreen(); |
857 gfx::Rect widget2_bounds = widget2->GetClientAreaBoundsInScreen(); | 857 gfx::Rect widget2_bounds = widget2->GetClientAreaBoundsInScreen(); |
858 widget2->SetBounds(gfx::Rect(widget1_bounds.width(), 0, | 858 widget2->SetBounds(gfx::Rect(widget1_bounds.width(), 0, |
859 widget2_bounds.width(), widget2_bounds.height())); | 859 widget2_bounds.width(), widget2_bounds.height())); |
860 | 860 |
861 ui::OSExchangeData data; | 861 ui::OSExchangeData data; |
862 data.SetString(base::UTF8ToUTF16("I am being dragged")); | 862 data.SetString(base::UTF8ToUTF16("I am being dragged")); |
863 | 863 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
901 num_expected_updates = num_drags - num_expected_updates; | 901 num_expected_updates = num_drags - num_expected_updates; |
902 EXPECT_EQ(num_expected_updates, drag_view2->num_drag_updates_); | 902 EXPECT_EQ(num_expected_updates, drag_view2->num_drag_updates_); |
903 EXPECT_EQ(1, drag_view2->num_drops_); | 903 EXPECT_EQ(1, drag_view2->num_drops_); |
904 EXPECT_EQ(0, drag_view2->num_drag_exits_); | 904 EXPECT_EQ(0, drag_view2->num_drag_exits_); |
905 EXPECT_FALSE(drag_view2->drag_done_received_); | 905 EXPECT_FALSE(drag_view2->drag_done_received_); |
906 } | 906 } |
907 | 907 |
908 TEST_F(DragDropControllerTest, TouchDragDropCancelsOnLongTap) { | 908 TEST_F(DragDropControllerTest, TouchDragDropCancelsOnLongTap) { |
909 base::CommandLine::ForCurrentProcess()->AppendSwitch( | 909 base::CommandLine::ForCurrentProcess()->AppendSwitch( |
910 switches::kEnableTouchDragDrop); | 910 switches::kEnableTouchDragDrop); |
911 scoped_ptr<views::Widget> widget(CreateNewWidget()); | 911 std::unique_ptr<views::Widget> widget(CreateNewWidget()); |
912 DragTestView* drag_view = new DragTestView; | 912 DragTestView* drag_view = new DragTestView; |
913 AddViewToWidgetAndResize(widget.get(), drag_view); | 913 AddViewToWidgetAndResize(widget.get(), drag_view); |
914 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), | 914 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), |
915 widget->GetNativeView()); | 915 widget->GetNativeView()); |
916 | 916 |
917 generator.PressTouch(); | 917 generator.PressTouch(); |
918 gfx::Point point = gfx::Rect(drag_view->bounds()).CenterPoint(); | 918 gfx::Point point = gfx::Rect(drag_view->bounds()).CenterPoint(); |
919 DispatchGesture(ui::ET_GESTURE_LONG_PRESS, point); | 919 DispatchGesture(ui::ET_GESTURE_LONG_PRESS, point); |
920 DispatchGesture(ui::ET_GESTURE_LONG_TAP, point); | 920 DispatchGesture(ui::ET_GESTURE_LONG_TAP, point); |
921 | 921 |
922 EXPECT_TRUE(drag_drop_controller_->drag_start_received_); | 922 EXPECT_TRUE(drag_drop_controller_->drag_start_received_); |
923 EXPECT_TRUE(drag_drop_controller_->drag_canceled_); | 923 EXPECT_TRUE(drag_drop_controller_->drag_canceled_); |
924 EXPECT_EQ(0, drag_drop_controller_->num_drag_updates_); | 924 EXPECT_EQ(0, drag_drop_controller_->num_drag_updates_); |
925 EXPECT_FALSE(drag_drop_controller_->drop_received_); | 925 EXPECT_FALSE(drag_drop_controller_->drop_received_); |
926 EXPECT_EQ(base::UTF8ToUTF16("I am being dragged"), | 926 EXPECT_EQ(base::UTF8ToUTF16("I am being dragged"), |
927 drag_drop_controller_->drag_string_); | 927 drag_drop_controller_->drag_string_); |
928 EXPECT_EQ(0, drag_view->num_drag_enters_); | 928 EXPECT_EQ(0, drag_view->num_drag_enters_); |
929 EXPECT_EQ(0, drag_view->num_drops_); | 929 EXPECT_EQ(0, drag_view->num_drops_); |
930 EXPECT_EQ(0, drag_view->num_drag_exits_); | 930 EXPECT_EQ(0, drag_view->num_drag_exits_); |
931 EXPECT_TRUE(drag_view->drag_done_received_); | 931 EXPECT_TRUE(drag_view->drag_done_received_); |
932 } | 932 } |
933 | 933 |
934 TEST_F(DragDropControllerTest, TouchDragDropLongTapGestureIsForwarded) { | 934 TEST_F(DragDropControllerTest, TouchDragDropLongTapGestureIsForwarded) { |
935 base::CommandLine::ForCurrentProcess()->AppendSwitch( | 935 base::CommandLine::ForCurrentProcess()->AppendSwitch( |
936 switches::kEnableTouchDragDrop); | 936 switches::kEnableTouchDragDrop); |
937 scoped_ptr<views::Widget> widget(CreateNewWidget()); | 937 std::unique_ptr<views::Widget> widget(CreateNewWidget()); |
938 DragTestView* drag_view = new DragTestView; | 938 DragTestView* drag_view = new DragTestView; |
939 AddViewToWidgetAndResize(widget.get(), drag_view); | 939 AddViewToWidgetAndResize(widget.get(), drag_view); |
940 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), | 940 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), |
941 widget->GetNativeView()); | 941 widget->GetNativeView()); |
942 | 942 |
943 generator.PressTouch(); | 943 generator.PressTouch(); |
944 gfx::Point point = gfx::Rect(drag_view->bounds()).CenterPoint(); | 944 gfx::Point point = gfx::Rect(drag_view->bounds()).CenterPoint(); |
945 DispatchGesture(ui::ET_GESTURE_LONG_PRESS, point); | 945 DispatchGesture(ui::ET_GESTURE_LONG_PRESS, point); |
946 | 946 |
947 // Since we are not running inside a nested loop, the |drag_source_window_| | 947 // Since we are not running inside a nested loop, the |drag_source_window_| |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
982 aura::Window::Windows root_windows = | 982 aura::Window::Windows root_windows = |
983 Shell::GetInstance()->GetAllRootWindows(); | 983 Shell::GetInstance()->GetAllRootWindows(); |
984 for (aura::Window::Windows::iterator iter = root_windows.begin(); | 984 for (aura::Window::Windows::iterator iter = root_windows.begin(); |
985 iter != root_windows.end(); ++iter) { | 985 iter != root_windows.end(); ++iter) { |
986 aura::client::SetDragDropClient(*iter, drag_drop_controller_.get()); | 986 aura::client::SetDragDropClient(*iter, drag_drop_controller_.get()); |
987 } | 987 } |
988 | 988 |
989 ui::OSExchangeData data; | 989 ui::OSExchangeData data; |
990 data.SetString(base::UTF8ToUTF16("I am being dragged")); | 990 data.SetString(base::UTF8ToUTF16("I am being dragged")); |
991 { | 991 { |
992 scoped_ptr<views::Widget> widget(CreateNewWidget()); | 992 std::unique_ptr<views::Widget> widget(CreateNewWidget()); |
993 aura::Window* window = widget->GetNativeWindow(); | 993 aura::Window* window = widget->GetNativeWindow(); |
994 drag_drop_controller_->StartDragAndDrop( | 994 drag_drop_controller_->StartDragAndDrop( |
995 data, | 995 data, |
996 window->GetRootWindow(), | 996 window->GetRootWindow(), |
997 window, | 997 window, |
998 gfx::Point(5, 5), | 998 gfx::Point(5, 5), |
999 ui::DragDropTypes::DRAG_MOVE, | 999 ui::DragDropTypes::DRAG_MOVE, |
1000 ui::DragDropTypes::DRAG_EVENT_SOURCE_MOUSE); | 1000 ui::DragDropTypes::DRAG_EVENT_SOURCE_MOUSE); |
1001 | 1001 |
1002 DragImageWindowObserver observer; | 1002 DragImageWindowObserver observer; |
(...skipping 13 matching lines...) Expand all Loading... |
1016 drag_drop_controller_->DragUpdate(window, e); | 1016 drag_drop_controller_->DragUpdate(window, e); |
1017 } | 1017 } |
1018 | 1018 |
1019 drag_drop_controller_->DragCancel(); | 1019 drag_drop_controller_->DragCancel(); |
1020 CompleteCancelAnimation(); | 1020 CompleteCancelAnimation(); |
1021 | 1021 |
1022 EXPECT_EQ("5,5", observer.window_location_on_destroying().ToString()); | 1022 EXPECT_EQ("5,5", observer.window_location_on_destroying().ToString()); |
1023 } | 1023 } |
1024 | 1024 |
1025 { | 1025 { |
1026 scoped_ptr<views::Widget> widget(CreateNewWidget()); | 1026 std::unique_ptr<views::Widget> widget(CreateNewWidget()); |
1027 aura::Window* window = widget->GetNativeWindow(); | 1027 aura::Window* window = widget->GetNativeWindow(); |
1028 drag_drop_controller_->StartDragAndDrop( | 1028 drag_drop_controller_->StartDragAndDrop( |
1029 data, | 1029 data, |
1030 window->GetRootWindow(), | 1030 window->GetRootWindow(), |
1031 window, | 1031 window, |
1032 gfx::Point(405, 405), | 1032 gfx::Point(405, 405), |
1033 ui::DragDropTypes::DRAG_MOVE, | 1033 ui::DragDropTypes::DRAG_MOVE, |
1034 ui::DragDropTypes::DRAG_EVENT_SOURCE_MOUSE); | 1034 ui::DragDropTypes::DRAG_EVENT_SOURCE_MOUSE); |
1035 DragImageWindowObserver observer; | 1035 DragImageWindowObserver observer; |
1036 ASSERT_TRUE(GetDragImageWindow()); | 1036 ASSERT_TRUE(GetDragImageWindow()); |
(...skipping 21 matching lines...) Expand all Loading... |
1058 iter != root_windows.end(); ++iter) { | 1058 iter != root_windows.end(); ++iter) { |
1059 aura::client::SetDragDropClient(*iter, NULL); | 1059 aura::client::SetDragDropClient(*iter, NULL); |
1060 } | 1060 } |
1061 } | 1061 } |
1062 | 1062 |
1063 TEST_F(DragDropControllerTest, TouchDragDropCompletesOnFling) { | 1063 TEST_F(DragDropControllerTest, TouchDragDropCompletesOnFling) { |
1064 base::CommandLine::ForCurrentProcess()->AppendSwitch( | 1064 base::CommandLine::ForCurrentProcess()->AppendSwitch( |
1065 switches::kEnableTouchDragDrop); | 1065 switches::kEnableTouchDragDrop); |
1066 ui::GestureConfiguration::GetInstance() | 1066 ui::GestureConfiguration::GetInstance() |
1067 ->set_max_touch_move_in_pixels_for_click(1); | 1067 ->set_max_touch_move_in_pixels_for_click(1); |
1068 scoped_ptr<views::Widget> widget(CreateNewWidget()); | 1068 std::unique_ptr<views::Widget> widget(CreateNewWidget()); |
1069 DragTestView* drag_view = new DragTestView; | 1069 DragTestView* drag_view = new DragTestView; |
1070 AddViewToWidgetAndResize(widget.get(), drag_view); | 1070 AddViewToWidgetAndResize(widget.get(), drag_view); |
1071 ui::OSExchangeData data; | 1071 ui::OSExchangeData data; |
1072 data.SetString(base::UTF8ToUTF16("I am being dragged")); | 1072 data.SetString(base::UTF8ToUTF16("I am being dragged")); |
1073 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), | 1073 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow(), |
1074 widget->GetNativeView()); | 1074 widget->GetNativeView()); |
1075 | 1075 |
1076 gfx::Point start = gfx::Rect(drag_view->bounds()).CenterPoint(); | 1076 gfx::Point start = gfx::Rect(drag_view->bounds()).CenterPoint(); |
1077 gfx::Point mid = start + gfx::Vector2d(drag_view->bounds().width() / 6, 0); | 1077 gfx::Point mid = start + gfx::Vector2d(drag_view->bounds().width() / 6, 0); |
1078 gfx::Point end = start + gfx::Vector2d(drag_view->bounds().width() / 3, 0); | 1078 gfx::Point end = start + gfx::Vector2d(drag_view->bounds().width() / 3, 0); |
(...skipping 23 matching lines...) Expand all Loading... |
1102 drag_drop_controller_->drag_string_); | 1102 drag_drop_controller_->drag_string_); |
1103 EXPECT_EQ(1, drag_view->num_drag_enters_); | 1103 EXPECT_EQ(1, drag_view->num_drag_enters_); |
1104 EXPECT_EQ(2, drag_view->num_drag_updates_); | 1104 EXPECT_EQ(2, drag_view->num_drag_updates_); |
1105 EXPECT_EQ(1, drag_view->num_drops_); | 1105 EXPECT_EQ(1, drag_view->num_drops_); |
1106 EXPECT_EQ(0, drag_view->num_drag_exits_); | 1106 EXPECT_EQ(0, drag_view->num_drag_exits_); |
1107 EXPECT_TRUE(drag_view->drag_done_received_); | 1107 EXPECT_TRUE(drag_view->drag_done_received_); |
1108 } | 1108 } |
1109 | 1109 |
1110 } // namespace test | 1110 } // namespace test |
1111 } // namespace ash | 1111 } // namespace ash |
OLD | NEW |