OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "ui/views/corewm/tooltip_controller.h" | 5 #include "ui/views/corewm/tooltip_controller.h" |
6 | 6 |
7 #include "base/macros.h" | 7 #include "base/macros.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
10 #include "ui/aura/client/cursor_client.h" | 10 #include "ui/aura/client/cursor_client.h" |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 void SetUp() override { | 82 void SetUp() override { |
83 #if defined(OS_CHROMEOS) | 83 #if defined(OS_CHROMEOS) |
84 views_delegate_.reset(new TestViewsDelegate); | 84 views_delegate_.reset(new TestViewsDelegate); |
85 #else | 85 #else |
86 views_delegate_.reset(new DesktopTestViewsDelegate); | 86 views_delegate_.reset(new DesktopTestViewsDelegate); |
87 #endif | 87 #endif |
88 | 88 |
89 aura::test::AuraTestBase::SetUp(); | 89 aura::test::AuraTestBase::SetUp(); |
90 new wm::DefaultActivationClient(root_window()); | 90 new wm::DefaultActivationClient(root_window()); |
91 #if defined(OS_CHROMEOS) | 91 #if defined(OS_CHROMEOS) |
92 controller_.reset(new TooltipController( | 92 controller_.reset( |
93 scoped_ptr<views::corewm::Tooltip>( | 93 new TooltipController(std::unique_ptr<views::corewm::Tooltip>( |
94 new views::corewm::TooltipAura))); | 94 new views::corewm::TooltipAura))); |
95 root_window()->AddPreTargetHandler(controller_.get()); | 95 root_window()->AddPreTargetHandler(controller_.get()); |
96 SetTooltipClient(root_window(), controller_.get()); | 96 SetTooltipClient(root_window(), controller_.get()); |
97 #endif | 97 #endif |
98 widget_.reset(CreateWidget(root_window())); | 98 widget_.reset(CreateWidget(root_window())); |
99 widget_->SetContentsView(new View); | 99 widget_->SetContentsView(new View); |
100 view_ = new TooltipTestView; | 100 view_ = new TooltipTestView; |
101 widget_->GetContentsView()->AddChildView(view_); | 101 widget_->GetContentsView()->AddChildView(view_); |
102 view_->SetBoundsRect(widget_->GetContentsView()->GetLocalBounds()); | 102 view_->SetBoundsRect(widget_->GetContentsView()->GetLocalBounds()); |
103 helper_.reset(new TooltipControllerTestHelper( | 103 helper_.reset(new TooltipControllerTestHelper( |
104 GetController(widget_.get()))); | 104 GetController(widget_.get()))); |
(...skipping 23 matching lines...) Expand all Loading... |
128 } | 128 } |
129 | 129 |
130 TooltipTestView* PrepareSecondView() { | 130 TooltipTestView* PrepareSecondView() { |
131 TooltipTestView* view2 = new TooltipTestView; | 131 TooltipTestView* view2 = new TooltipTestView; |
132 widget_->GetContentsView()->AddChildView(view2); | 132 widget_->GetContentsView()->AddChildView(view2); |
133 view_->SetBounds(0, 0, 100, 100); | 133 view_->SetBounds(0, 0, 100, 100); |
134 view2->SetBounds(100, 0, 100, 100); | 134 view2->SetBounds(100, 0, 100, 100); |
135 return view2; | 135 return view2; |
136 } | 136 } |
137 | 137 |
138 scoped_ptr<views::Widget> widget_; | 138 std::unique_ptr<views::Widget> widget_; |
139 TooltipTestView* view_; | 139 TooltipTestView* view_; |
140 scoped_ptr<TooltipControllerTestHelper> helper_; | 140 std::unique_ptr<TooltipControllerTestHelper> helper_; |
141 scoped_ptr<ui::test::EventGenerator> generator_; | 141 std::unique_ptr<ui::test::EventGenerator> generator_; |
142 | 142 |
143 private: | 143 private: |
144 scoped_ptr<TooltipController> controller_; | 144 std::unique_ptr<TooltipController> controller_; |
145 | 145 |
146 scoped_ptr<views::TestViewsDelegate> views_delegate_; | 146 std::unique_ptr<views::TestViewsDelegate> views_delegate_; |
147 | 147 |
148 #if defined(OS_WIN) | 148 #if defined(OS_WIN) |
149 ui::ScopedOleInitializer ole_initializer_; | 149 ui::ScopedOleInitializer ole_initializer_; |
150 #endif | 150 #endif |
151 | 151 |
152 DISALLOW_COPY_AND_ASSIGN(TooltipControllerTest); | 152 DISALLOW_COPY_AND_ASSIGN(TooltipControllerTest); |
153 }; | 153 }; |
154 | 154 |
155 TEST_F(TooltipControllerTest, ViewTooltip) { | 155 TEST_F(TooltipControllerTest, ViewTooltip) { |
156 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 156 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
434 #if !defined(OS_CHROMEOS) | 434 #if !defined(OS_CHROMEOS) |
435 gfx::Screen::SetScreenInstance(test_screen()); | 435 gfx::Screen::SetScreenInstance(test_screen()); |
436 desktop_screen_.reset(); | 436 desktop_screen_.reset(); |
437 #endif | 437 #endif |
438 aura::client::SetScreenPositionClient(GetRootWindow(), NULL); | 438 aura::client::SetScreenPositionClient(GetRootWindow(), NULL); |
439 TooltipControllerTest::TearDown(); | 439 TooltipControllerTest::TearDown(); |
440 } | 440 } |
441 | 441 |
442 private: | 442 private: |
443 wm::DefaultScreenPositionClient screen_position_client_; | 443 wm::DefaultScreenPositionClient screen_position_client_; |
444 scoped_ptr<gfx::Screen> desktop_screen_; | 444 std::unique_ptr<gfx::Screen> desktop_screen_; |
445 | 445 |
446 DISALLOW_COPY_AND_ASSIGN(TooltipControllerCaptureTest); | 446 DISALLOW_COPY_AND_ASSIGN(TooltipControllerCaptureTest); |
447 }; | 447 }; |
448 | 448 |
449 // Verifies when capture is released the TooltipController resets state. | 449 // Verifies when capture is released the TooltipController resets state. |
450 // Flaky on all builders. http://crbug.com/388268 | 450 // Flaky on all builders. http://crbug.com/388268 |
451 TEST_F(TooltipControllerCaptureTest, DISABLED_CloseOnCaptureLost) { | 451 TEST_F(TooltipControllerCaptureTest, DISABLED_CloseOnCaptureLost) { |
452 view_->GetWidget()->SetCapture(view_); | 452 view_->GetWidget()->SetCapture(view_); |
453 RunAllPendingInMessageLoop(); | 453 RunAllPendingInMessageLoop(); |
454 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 454 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
(...skipping 20 matching lines...) Expand all Loading... |
475 #define MAYBE_Capture Capture | 475 #define MAYBE_Capture Capture |
476 #endif | 476 #endif |
477 // Verifies the correct window is found for tooltips when there is a capture. | 477 // Verifies the correct window is found for tooltips when there is a capture. |
478 TEST_F(TooltipControllerCaptureTest, MAYBE_Capture) { | 478 TEST_F(TooltipControllerCaptureTest, MAYBE_Capture) { |
479 const base::string16 tooltip_text(ASCIIToUTF16("1")); | 479 const base::string16 tooltip_text(ASCIIToUTF16("1")); |
480 const base::string16 tooltip_text2(ASCIIToUTF16("2")); | 480 const base::string16 tooltip_text2(ASCIIToUTF16("2")); |
481 | 481 |
482 widget_->SetBounds(gfx::Rect(0, 0, 200, 200)); | 482 widget_->SetBounds(gfx::Rect(0, 0, 200, 200)); |
483 view_->set_tooltip_text(tooltip_text); | 483 view_->set_tooltip_text(tooltip_text); |
484 | 484 |
485 scoped_ptr<views::Widget> widget2(CreateWidget(root_window())); | 485 std::unique_ptr<views::Widget> widget2(CreateWidget(root_window())); |
486 widget2->SetContentsView(new View); | 486 widget2->SetContentsView(new View); |
487 TooltipTestView* view2 = new TooltipTestView; | 487 TooltipTestView* view2 = new TooltipTestView; |
488 widget2->GetContentsView()->AddChildView(view2); | 488 widget2->GetContentsView()->AddChildView(view2); |
489 view2->set_tooltip_text(tooltip_text2); | 489 view2->set_tooltip_text(tooltip_text2); |
490 widget2->SetBounds(gfx::Rect(0, 0, 200, 200)); | 490 widget2->SetBounds(gfx::Rect(0, 0, 200, 200)); |
491 view2->SetBoundsRect(widget2->GetContentsView()->GetLocalBounds()); | 491 view2->SetBoundsRect(widget2->GetContentsView()->GetLocalBounds()); |
492 | 492 |
493 widget_->SetCapture(view_); | 493 widget_->SetCapture(view_); |
494 EXPECT_TRUE(widget_->HasCapture()); | 494 EXPECT_TRUE(widget_->HasCapture()); |
495 widget2->Show(); | 495 widget2->Show(); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
559 // Use for tests that don't depend upon views. | 559 // Use for tests that don't depend upon views. |
560 class TooltipControllerTest2 : public aura::test::AuraTestBase { | 560 class TooltipControllerTest2 : public aura::test::AuraTestBase { |
561 public: | 561 public: |
562 TooltipControllerTest2() : test_tooltip_(new TestTooltip) {} | 562 TooltipControllerTest2() : test_tooltip_(new TestTooltip) {} |
563 ~TooltipControllerTest2() override {} | 563 ~TooltipControllerTest2() override {} |
564 | 564 |
565 void SetUp() override { | 565 void SetUp() override { |
566 wm_state_.reset(new wm::WMState); | 566 wm_state_.reset(new wm::WMState); |
567 aura::test::AuraTestBase::SetUp(); | 567 aura::test::AuraTestBase::SetUp(); |
568 new wm::DefaultActivationClient(root_window()); | 568 new wm::DefaultActivationClient(root_window()); |
569 controller_.reset(new TooltipController( | 569 controller_.reset( |
570 scoped_ptr<corewm::Tooltip>(test_tooltip_))); | 570 new TooltipController(std::unique_ptr<corewm::Tooltip>(test_tooltip_))); |
571 root_window()->AddPreTargetHandler(controller_.get()); | 571 root_window()->AddPreTargetHandler(controller_.get()); |
572 SetTooltipClient(root_window(), controller_.get()); | 572 SetTooltipClient(root_window(), controller_.get()); |
573 helper_.reset(new TooltipControllerTestHelper(controller_.get())); | 573 helper_.reset(new TooltipControllerTestHelper(controller_.get())); |
574 generator_.reset(new ui::test::EventGenerator(root_window())); | 574 generator_.reset(new ui::test::EventGenerator(root_window())); |
575 } | 575 } |
576 | 576 |
577 void TearDown() override { | 577 void TearDown() override { |
578 root_window()->RemovePreTargetHandler(controller_.get()); | 578 root_window()->RemovePreTargetHandler(controller_.get()); |
579 aura::client::SetTooltipClient(root_window(), NULL); | 579 aura::client::SetTooltipClient(root_window(), NULL); |
580 controller_.reset(); | 580 controller_.reset(); |
581 generator_.reset(); | 581 generator_.reset(); |
582 helper_.reset(); | 582 helper_.reset(); |
583 aura::test::AuraTestBase::TearDown(); | 583 aura::test::AuraTestBase::TearDown(); |
584 wm_state_.reset(); | 584 wm_state_.reset(); |
585 } | 585 } |
586 | 586 |
587 protected: | 587 protected: |
588 // Owned by |controller_|. | 588 // Owned by |controller_|. |
589 TestTooltip* test_tooltip_; | 589 TestTooltip* test_tooltip_; |
590 scoped_ptr<TooltipControllerTestHelper> helper_; | 590 std::unique_ptr<TooltipControllerTestHelper> helper_; |
591 scoped_ptr<ui::test::EventGenerator> generator_; | 591 std::unique_ptr<ui::test::EventGenerator> generator_; |
592 | 592 |
593 private: | 593 private: |
594 scoped_ptr<TooltipController> controller_; | 594 std::unique_ptr<TooltipController> controller_; |
595 scoped_ptr<wm::WMState> wm_state_; | 595 std::unique_ptr<wm::WMState> wm_state_; |
596 | 596 |
597 DISALLOW_COPY_AND_ASSIGN(TooltipControllerTest2); | 597 DISALLOW_COPY_AND_ASSIGN(TooltipControllerTest2); |
598 }; | 598 }; |
599 | 599 |
600 TEST_F(TooltipControllerTest2, VerifyLeadingTrailingWhitespaceStripped) { | 600 TEST_F(TooltipControllerTest2, VerifyLeadingTrailingWhitespaceStripped) { |
601 aura::test::TestWindowDelegate test_delegate; | 601 aura::test::TestWindowDelegate test_delegate; |
602 scoped_ptr<aura::Window> window( | 602 std::unique_ptr<aura::Window> window( |
603 CreateNormalWindow(100, root_window(), &test_delegate)); | 603 CreateNormalWindow(100, root_window(), &test_delegate)); |
604 window->SetBounds(gfx::Rect(0, 0, 300, 300)); | 604 window->SetBounds(gfx::Rect(0, 0, 300, 300)); |
605 base::string16 tooltip_text(ASCIIToUTF16(" \nx ")); | 605 base::string16 tooltip_text(ASCIIToUTF16(" \nx ")); |
606 aura::client::SetTooltipText(window.get(), &tooltip_text); | 606 aura::client::SetTooltipText(window.get(), &tooltip_text); |
607 generator_->MoveMouseToCenterOf(window.get()); | 607 generator_->MoveMouseToCenterOf(window.get()); |
608 helper_->FireTooltipTimer(); | 608 helper_->FireTooltipTimer(); |
609 EXPECT_EQ(ASCIIToUTF16("x"), test_tooltip_->tooltip_text()); | 609 EXPECT_EQ(ASCIIToUTF16("x"), test_tooltip_->tooltip_text()); |
610 } | 610 } |
611 | 611 |
612 // Verifies that tooltip is hidden and tooltip window closed upon cancel mode. | 612 // Verifies that tooltip is hidden and tooltip window closed upon cancel mode. |
613 TEST_F(TooltipControllerTest2, CloseOnCancelMode) { | 613 TEST_F(TooltipControllerTest2, CloseOnCancelMode) { |
614 aura::test::TestWindowDelegate test_delegate; | 614 aura::test::TestWindowDelegate test_delegate; |
615 scoped_ptr<aura::Window> window( | 615 std::unique_ptr<aura::Window> window( |
616 CreateNormalWindow(100, root_window(), &test_delegate)); | 616 CreateNormalWindow(100, root_window(), &test_delegate)); |
617 window->SetBounds(gfx::Rect(0, 0, 300, 300)); | 617 window->SetBounds(gfx::Rect(0, 0, 300, 300)); |
618 base::string16 tooltip_text(ASCIIToUTF16("Tooltip Text")); | 618 base::string16 tooltip_text(ASCIIToUTF16("Tooltip Text")); |
619 aura::client::SetTooltipText(window.get(), &tooltip_text); | 619 aura::client::SetTooltipText(window.get(), &tooltip_text); |
620 generator_->MoveMouseToCenterOf(window.get()); | 620 generator_->MoveMouseToCenterOf(window.get()); |
621 | 621 |
622 // Fire tooltip timer so tooltip becomes visible. | 622 // Fire tooltip timer so tooltip becomes visible. |
623 helper_->FireTooltipTimer(); | 623 helper_->FireTooltipTimer(); |
624 EXPECT_TRUE(helper_->IsTooltipVisible()); | 624 EXPECT_TRUE(helper_->IsTooltipVisible()); |
625 | 625 |
(...skipping 17 matching lines...) Expand all Loading... |
643 new wm::DefaultActivationClient(root_window()); | 643 new wm::DefaultActivationClient(root_window()); |
644 | 644 |
645 widget_.reset(CreateWidget(root_window())); | 645 widget_.reset(CreateWidget(root_window())); |
646 widget_->SetContentsView(new View); | 646 widget_->SetContentsView(new View); |
647 view_ = new TooltipTestView; | 647 view_ = new TooltipTestView; |
648 widget_->GetContentsView()->AddChildView(view_); | 648 widget_->GetContentsView()->AddChildView(view_); |
649 view_->SetBoundsRect(widget_->GetContentsView()->GetLocalBounds()); | 649 view_->SetBoundsRect(widget_->GetContentsView()->GetLocalBounds()); |
650 | 650 |
651 generator_.reset(new ui::test::EventGenerator(GetRootWindow())); | 651 generator_.reset(new ui::test::EventGenerator(GetRootWindow())); |
652 controller_.reset(new TooltipController( | 652 controller_.reset(new TooltipController( |
653 scoped_ptr<views::corewm::Tooltip>(test_tooltip_))); | 653 std::unique_ptr<views::corewm::Tooltip>(test_tooltip_))); |
654 GetRootWindow()->RemovePreTargetHandler( | 654 GetRootWindow()->RemovePreTargetHandler( |
655 static_cast<TooltipController*>(aura::client::GetTooltipClient( | 655 static_cast<TooltipController*>(aura::client::GetTooltipClient( |
656 widget_->GetNativeWindow()->GetRootWindow()))); | 656 widget_->GetNativeWindow()->GetRootWindow()))); |
657 GetRootWindow()->AddPreTargetHandler(controller_.get()); | 657 GetRootWindow()->AddPreTargetHandler(controller_.get()); |
658 helper_.reset(new TooltipControllerTestHelper(controller_.get())); | 658 helper_.reset(new TooltipControllerTestHelper(controller_.get())); |
659 SetTooltipClient(GetRootWindow(), controller_.get()); | 659 SetTooltipClient(GetRootWindow(), controller_.get()); |
660 } | 660 } |
661 | 661 |
662 void TearDown() override { | 662 void TearDown() override { |
663 GetRootWindow()->RemovePreTargetHandler(controller_.get()); | 663 GetRootWindow()->RemovePreTargetHandler(controller_.get()); |
664 aura::client::SetTooltipClient(GetRootWindow(), NULL); | 664 aura::client::SetTooltipClient(GetRootWindow(), NULL); |
665 | 665 |
666 controller_.reset(); | 666 controller_.reset(); |
667 generator_.reset(); | 667 generator_.reset(); |
668 helper_.reset(); | 668 helper_.reset(); |
669 widget_.reset(); | 669 widget_.reset(); |
670 aura::test::AuraTestBase::TearDown(); | 670 aura::test::AuraTestBase::TearDown(); |
671 wm_state_.reset(); | 671 wm_state_.reset(); |
672 } | 672 } |
673 | 673 |
674 aura::Window* GetWindow() { return widget_->GetNativeWindow(); } | 674 aura::Window* GetWindow() { return widget_->GetNativeWindow(); } |
675 | 675 |
676 protected: | 676 protected: |
677 // Owned by |controller_|. | 677 // Owned by |controller_|. |
678 TestTooltip* test_tooltip_; | 678 TestTooltip* test_tooltip_; |
679 scoped_ptr<TooltipControllerTestHelper> helper_; | 679 std::unique_ptr<TooltipControllerTestHelper> helper_; |
680 scoped_ptr<ui::test::EventGenerator> generator_; | 680 std::unique_ptr<ui::test::EventGenerator> generator_; |
681 scoped_ptr<views::Widget> widget_; | 681 std::unique_ptr<views::Widget> widget_; |
682 TooltipTestView* view_; | 682 TooltipTestView* view_; |
683 | 683 |
684 private: | 684 private: |
685 scoped_ptr<TooltipController> controller_; | 685 std::unique_ptr<TooltipController> controller_; |
686 scoped_ptr<wm::WMState> wm_state_; | 686 std::unique_ptr<wm::WMState> wm_state_; |
687 | 687 |
688 #if defined(OS_WIN) | 688 #if defined(OS_WIN) |
689 ui::ScopedOleInitializer ole_initializer_; | 689 ui::ScopedOleInitializer ole_initializer_; |
690 #endif | 690 #endif |
691 | 691 |
692 aura::Window* GetRootWindow() { return GetWindow()->GetRootWindow(); } | 692 aura::Window* GetRootWindow() { return GetWindow()->GetRootWindow(); } |
693 | 693 |
694 DISALLOW_COPY_AND_ASSIGN(TooltipControllerTest3); | 694 DISALLOW_COPY_AND_ASSIGN(TooltipControllerTest3); |
695 }; | 695 }; |
696 | 696 |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
795 helper_->FireTooltipTimer(); | 795 helper_->FireTooltipTimer(); |
796 tooltip_bounds1 = test_tooltip_->location(); | 796 tooltip_bounds1 = test_tooltip_->location(); |
797 | 797 |
798 EXPECT_NE(tooltip_bounds1_1, tooltip_bounds1); | 798 EXPECT_NE(tooltip_bounds1_1, tooltip_bounds1); |
799 EXPECT_EQ(reference_string, helper_->GetTooltipText()); | 799 EXPECT_EQ(reference_string, helper_->GetTooltipText()); |
800 } | 800 } |
801 | 801 |
802 } // namespace test | 802 } // namespace test |
803 } // namespace corewm | 803 } // namespace corewm |
804 } // namespace views | 804 } // namespace views |
OLD | NEW |