| 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 |