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/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
8 #include "ui/aura/client/cursor_client.h" | 8 #include "ui/aura/client/cursor_client.h" |
9 #include "ui/aura/client/screen_position_client.h" | 9 #include "ui/aura/client/screen_position_client.h" |
10 #include "ui/aura/env.h" | 10 #include "ui/aura/env.h" |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 return static_cast<TooltipController*>( | 68 return static_cast<TooltipController*>( |
69 aura::client::GetTooltipClient( | 69 aura::client::GetTooltipClient( |
70 widget->GetNativeWindow()->GetRootWindow())); | 70 widget->GetNativeWindow()->GetRootWindow())); |
71 } | 71 } |
72 | 72 |
73 } // namespace | 73 } // namespace |
74 | 74 |
75 class TooltipControllerTest : public aura::test::AuraTestBase { | 75 class TooltipControllerTest : public aura::test::AuraTestBase { |
76 public: | 76 public: |
77 TooltipControllerTest() : view_(NULL) {} | 77 TooltipControllerTest() : view_(NULL) {} |
78 virtual ~TooltipControllerTest() {} | 78 ~TooltipControllerTest() override {} |
79 | 79 |
80 virtual void SetUp() override { | 80 void SetUp() override { |
81 #if defined(OS_CHROMEOS) | 81 #if defined(OS_CHROMEOS) |
82 views_delegate_.reset(new TestViewsDelegate); | 82 views_delegate_.reset(new TestViewsDelegate); |
83 #else | 83 #else |
84 views_delegate_.reset(new DesktopTestViewsDelegate); | 84 views_delegate_.reset(new DesktopTestViewsDelegate); |
85 #endif | 85 #endif |
86 | 86 |
87 aura::test::AuraTestBase::SetUp(); | 87 aura::test::AuraTestBase::SetUp(); |
88 new wm::DefaultActivationClient(root_window()); | 88 new wm::DefaultActivationClient(root_window()); |
89 #if defined(OS_CHROMEOS) | 89 #if defined(OS_CHROMEOS) |
90 controller_.reset(new TooltipController( | 90 controller_.reset(new TooltipController( |
91 scoped_ptr<views::corewm::Tooltip>( | 91 scoped_ptr<views::corewm::Tooltip>( |
92 new views::corewm::TooltipAura(gfx::SCREEN_TYPE_ALTERNATE)))); | 92 new views::corewm::TooltipAura(gfx::SCREEN_TYPE_ALTERNATE)))); |
93 root_window()->AddPreTargetHandler(controller_.get()); | 93 root_window()->AddPreTargetHandler(controller_.get()); |
94 SetTooltipClient(root_window(), controller_.get()); | 94 SetTooltipClient(root_window(), controller_.get()); |
95 #endif | 95 #endif |
96 widget_.reset(CreateWidget(root_window())); | 96 widget_.reset(CreateWidget(root_window())); |
97 widget_->SetContentsView(new View); | 97 widget_->SetContentsView(new View); |
98 view_ = new TooltipTestView; | 98 view_ = new TooltipTestView; |
99 widget_->GetContentsView()->AddChildView(view_); | 99 widget_->GetContentsView()->AddChildView(view_); |
100 view_->SetBoundsRect(widget_->GetContentsView()->GetLocalBounds()); | 100 view_->SetBoundsRect(widget_->GetContentsView()->GetLocalBounds()); |
101 helper_.reset(new TooltipControllerTestHelper( | 101 helper_.reset(new TooltipControllerTestHelper( |
102 GetController(widget_.get()))); | 102 GetController(widget_.get()))); |
103 generator_.reset(new ui::test::EventGenerator(GetRootWindow())); | 103 generator_.reset(new ui::test::EventGenerator(GetRootWindow())); |
104 } | 104 } |
105 | 105 |
106 virtual void TearDown() override { | 106 void TearDown() override { |
107 #if defined(OS_CHROMEOS) | 107 #if defined(OS_CHROMEOS) |
108 root_window()->RemovePreTargetHandler(controller_.get()); | 108 root_window()->RemovePreTargetHandler(controller_.get()); |
109 aura::client::SetTooltipClient(root_window(), NULL); | 109 aura::client::SetTooltipClient(root_window(), NULL); |
110 controller_.reset(); | 110 controller_.reset(); |
111 #endif | 111 #endif |
112 generator_.reset(); | 112 generator_.reset(); |
113 helper_.reset(); | 113 helper_.reset(); |
114 widget_.reset(); | 114 widget_.reset(); |
115 aura::test::AuraTestBase::TearDown(); | 115 aura::test::AuraTestBase::TearDown(); |
116 views_delegate_.reset(); | 116 views_delegate_.reset(); |
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
407 std::find(window->parent()->children().begin(), | 407 std::find(window->parent()->children().begin(), |
408 window->parent()->children().end(), | 408 window->parent()->children().end(), |
409 window); | 409 window); |
410 return i == window->parent()->children().end() ? -1 : | 410 return i == window->parent()->children().end() ? -1 : |
411 static_cast<int>(i - window->parent()->children().begin()); | 411 static_cast<int>(i - window->parent()->children().begin()); |
412 } | 412 } |
413 | 413 |
414 class TestScreenPositionClient : public aura::client::ScreenPositionClient { | 414 class TestScreenPositionClient : public aura::client::ScreenPositionClient { |
415 public: | 415 public: |
416 TestScreenPositionClient() {} | 416 TestScreenPositionClient() {} |
417 virtual ~TestScreenPositionClient() {} | 417 ~TestScreenPositionClient() override {} |
418 | 418 |
419 // ScreenPositionClient overrides: | 419 // ScreenPositionClient overrides: |
420 virtual void ConvertPointToScreen(const aura::Window* window, | 420 void ConvertPointToScreen(const aura::Window* window, |
421 gfx::Point* point) override { | 421 gfx::Point* point) override {} |
422 } | 422 void ConvertPointFromScreen(const aura::Window* window, |
423 virtual void ConvertPointFromScreen(const aura::Window* window, | 423 gfx::Point* point) override {} |
424 gfx::Point* point) override { | 424 void ConvertHostPointToScreen(aura::Window* root_gwindow, |
425 } | 425 gfx::Point* point) override { |
426 virtual void ConvertHostPointToScreen(aura::Window* root_gwindow, | |
427 gfx::Point* point) override { | |
428 NOTREACHED(); | 426 NOTREACHED(); |
429 } | 427 } |
430 virtual void SetBounds(aura::Window* window, | 428 void SetBounds(aura::Window* window, |
431 const gfx::Rect& bounds, | 429 const gfx::Rect& bounds, |
432 const gfx::Display& display) override { | 430 const gfx::Display& display) override { |
433 window->SetBounds(bounds); | 431 window->SetBounds(bounds); |
434 } | 432 } |
435 | 433 |
436 private: | 434 private: |
437 DISALLOW_COPY_AND_ASSIGN(TestScreenPositionClient); | 435 DISALLOW_COPY_AND_ASSIGN(TestScreenPositionClient); |
438 }; | 436 }; |
439 | 437 |
440 } // namespace | 438 } // namespace |
441 | 439 |
442 class TooltipControllerCaptureTest : public TooltipControllerTest { | 440 class TooltipControllerCaptureTest : public TooltipControllerTest { |
443 public: | 441 public: |
444 TooltipControllerCaptureTest() {} | 442 TooltipControllerCaptureTest() {} |
445 virtual ~TooltipControllerCaptureTest() {} | 443 ~TooltipControllerCaptureTest() override {} |
446 | 444 |
447 virtual void SetUp() override { | 445 void SetUp() override { |
448 TooltipControllerTest::SetUp(); | 446 TooltipControllerTest::SetUp(); |
449 aura::client::SetScreenPositionClient(GetRootWindow(), | 447 aura::client::SetScreenPositionClient(GetRootWindow(), |
450 &screen_position_client_); | 448 &screen_position_client_); |
451 #if !defined(OS_CHROMEOS) | 449 #if !defined(OS_CHROMEOS) |
452 desktop_screen_.reset(CreateDesktopScreen()); | 450 desktop_screen_.reset(CreateDesktopScreen()); |
453 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, | 451 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, |
454 desktop_screen_.get()); | 452 desktop_screen_.get()); |
455 #endif | 453 #endif |
456 } | 454 } |
457 | 455 |
458 virtual void TearDown() override { | 456 void TearDown() override { |
459 #if !defined(OS_CHROMEOS) | 457 #if !defined(OS_CHROMEOS) |
460 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, test_screen()); | 458 gfx::Screen::SetScreenInstance(gfx::SCREEN_TYPE_NATIVE, test_screen()); |
461 desktop_screen_.reset(); | 459 desktop_screen_.reset(); |
462 #endif | 460 #endif |
463 aura::client::SetScreenPositionClient(GetRootWindow(), NULL); | 461 aura::client::SetScreenPositionClient(GetRootWindow(), NULL); |
464 TooltipControllerTest::TearDown(); | 462 TooltipControllerTest::TearDown(); |
465 } | 463 } |
466 | 464 |
467 private: | 465 private: |
468 TestScreenPositionClient screen_position_client_; | 466 TestScreenPositionClient screen_position_client_; |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
545 EXPECT_EQ(tooltip_text2, helper_->GetTooltipText()); | 543 EXPECT_EQ(tooltip_text2, helper_->GetTooltipText()); |
546 | 544 |
547 widget2.reset(); | 545 widget2.reset(); |
548 } | 546 } |
549 | 547 |
550 namespace { | 548 namespace { |
551 | 549 |
552 class TestTooltip : public Tooltip { | 550 class TestTooltip : public Tooltip { |
553 public: | 551 public: |
554 TestTooltip() : is_visible_(false) {} | 552 TestTooltip() : is_visible_(false) {} |
555 virtual ~TestTooltip() {} | 553 ~TestTooltip() override {} |
556 | 554 |
557 const base::string16& tooltip_text() const { return tooltip_text_; } | 555 const base::string16& tooltip_text() const { return tooltip_text_; } |
558 | 556 |
559 // Tooltip: | 557 // Tooltip: |
560 virtual void SetText(aura::Window* window, | 558 void SetText(aura::Window* window, |
561 const base::string16& tooltip_text, | 559 const base::string16& tooltip_text, |
562 const gfx::Point& location) override { | 560 const gfx::Point& location) override { |
563 tooltip_text_ = tooltip_text; | 561 tooltip_text_ = tooltip_text; |
564 location_ = location; | 562 location_ = location; |
565 } | 563 } |
566 virtual void Show() override { | 564 void Show() override { is_visible_ = true; } |
567 is_visible_ = true; | 565 void Hide() override { is_visible_ = false; } |
568 } | 566 bool IsVisible() override { return is_visible_; } |
569 virtual void Hide() override { | |
570 is_visible_ = false; | |
571 } | |
572 virtual bool IsVisible() override { | |
573 return is_visible_; | |
574 } | |
575 const gfx::Point& location() { return location_; } | 567 const gfx::Point& location() { return location_; } |
576 | 568 |
577 private: | 569 private: |
578 bool is_visible_; | 570 bool is_visible_; |
579 base::string16 tooltip_text_; | 571 base::string16 tooltip_text_; |
580 gfx::Point location_; | 572 gfx::Point location_; |
581 | 573 |
582 DISALLOW_COPY_AND_ASSIGN(TestTooltip); | 574 DISALLOW_COPY_AND_ASSIGN(TestTooltip); |
583 }; | 575 }; |
584 | 576 |
585 } // namespace | 577 } // namespace |
586 | 578 |
587 // Use for tests that don't depend upon views. | 579 // Use for tests that don't depend upon views. |
588 class TooltipControllerTest2 : public aura::test::AuraTestBase { | 580 class TooltipControllerTest2 : public aura::test::AuraTestBase { |
589 public: | 581 public: |
590 TooltipControllerTest2() : test_tooltip_(new TestTooltip) {} | 582 TooltipControllerTest2() : test_tooltip_(new TestTooltip) {} |
591 virtual ~TooltipControllerTest2() {} | 583 ~TooltipControllerTest2() override {} |
592 | 584 |
593 virtual void SetUp() override { | 585 void SetUp() override { |
594 wm_state_.reset(new wm::WMState); | 586 wm_state_.reset(new wm::WMState); |
595 aura::test::AuraTestBase::SetUp(); | 587 aura::test::AuraTestBase::SetUp(); |
596 new wm::DefaultActivationClient(root_window()); | 588 new wm::DefaultActivationClient(root_window()); |
597 controller_.reset(new TooltipController( | 589 controller_.reset(new TooltipController( |
598 scoped_ptr<corewm::Tooltip>(test_tooltip_))); | 590 scoped_ptr<corewm::Tooltip>(test_tooltip_))); |
599 root_window()->AddPreTargetHandler(controller_.get()); | 591 root_window()->AddPreTargetHandler(controller_.get()); |
600 SetTooltipClient(root_window(), controller_.get()); | 592 SetTooltipClient(root_window(), controller_.get()); |
601 helper_.reset(new TooltipControllerTestHelper(controller_.get())); | 593 helper_.reset(new TooltipControllerTestHelper(controller_.get())); |
602 generator_.reset(new ui::test::EventGenerator(root_window())); | 594 generator_.reset(new ui::test::EventGenerator(root_window())); |
603 } | 595 } |
604 | 596 |
605 virtual void TearDown() override { | 597 void TearDown() override { |
606 root_window()->RemovePreTargetHandler(controller_.get()); | 598 root_window()->RemovePreTargetHandler(controller_.get()); |
607 aura::client::SetTooltipClient(root_window(), NULL); | 599 aura::client::SetTooltipClient(root_window(), NULL); |
608 controller_.reset(); | 600 controller_.reset(); |
609 generator_.reset(); | 601 generator_.reset(); |
610 helper_.reset(); | 602 helper_.reset(); |
611 aura::test::AuraTestBase::TearDown(); | 603 aura::test::AuraTestBase::TearDown(); |
612 wm_state_.reset(); | 604 wm_state_.reset(); |
613 } | 605 } |
614 | 606 |
615 protected: | 607 protected: |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
656 ui::CancelModeEvent event; | 648 ui::CancelModeEvent event; |
657 helper_->controller()->OnCancelMode(&event); | 649 helper_->controller()->OnCancelMode(&event); |
658 EXPECT_FALSE(helper_->IsTooltipVisible()); | 650 EXPECT_FALSE(helper_->IsTooltipVisible()); |
659 EXPECT_TRUE(helper_->GetTooltipWindow() == NULL); | 651 EXPECT_TRUE(helper_->GetTooltipWindow() == NULL); |
660 } | 652 } |
661 | 653 |
662 // Use for tests that need both views and a TestTooltip. | 654 // Use for tests that need both views and a TestTooltip. |
663 class TooltipControllerTest3 : public aura::test::AuraTestBase { | 655 class TooltipControllerTest3 : public aura::test::AuraTestBase { |
664 public: | 656 public: |
665 TooltipControllerTest3() : test_tooltip_(new TestTooltip) {} | 657 TooltipControllerTest3() : test_tooltip_(new TestTooltip) {} |
666 virtual ~TooltipControllerTest3() {} | 658 ~TooltipControllerTest3() override {} |
667 | 659 |
668 virtual void SetUp() override { | 660 void SetUp() override { |
669 wm_state_.reset(new wm::WMState); | 661 wm_state_.reset(new wm::WMState); |
670 aura::test::AuraTestBase::SetUp(); | 662 aura::test::AuraTestBase::SetUp(); |
671 new wm::DefaultActivationClient(root_window()); | 663 new wm::DefaultActivationClient(root_window()); |
672 | 664 |
673 widget_.reset(CreateWidget(root_window())); | 665 widget_.reset(CreateWidget(root_window())); |
674 widget_->SetContentsView(new View); | 666 widget_->SetContentsView(new View); |
675 view_ = new TooltipTestView; | 667 view_ = new TooltipTestView; |
676 widget_->GetContentsView()->AddChildView(view_); | 668 widget_->GetContentsView()->AddChildView(view_); |
677 view_->SetBoundsRect(widget_->GetContentsView()->GetLocalBounds()); | 669 view_->SetBoundsRect(widget_->GetContentsView()->GetLocalBounds()); |
678 | 670 |
679 generator_.reset(new ui::test::EventGenerator(GetRootWindow())); | 671 generator_.reset(new ui::test::EventGenerator(GetRootWindow())); |
680 controller_.reset(new TooltipController( | 672 controller_.reset(new TooltipController( |
681 scoped_ptr<views::corewm::Tooltip>(test_tooltip_))); | 673 scoped_ptr<views::corewm::Tooltip>(test_tooltip_))); |
682 GetRootWindow()->RemovePreTargetHandler( | 674 GetRootWindow()->RemovePreTargetHandler( |
683 static_cast<TooltipController*>(aura::client::GetTooltipClient( | 675 static_cast<TooltipController*>(aura::client::GetTooltipClient( |
684 widget_->GetNativeWindow()->GetRootWindow()))); | 676 widget_->GetNativeWindow()->GetRootWindow()))); |
685 GetRootWindow()->AddPreTargetHandler(controller_.get()); | 677 GetRootWindow()->AddPreTargetHandler(controller_.get()); |
686 helper_.reset(new TooltipControllerTestHelper(controller_.get())); | 678 helper_.reset(new TooltipControllerTestHelper(controller_.get())); |
687 SetTooltipClient(GetRootWindow(), controller_.get()); | 679 SetTooltipClient(GetRootWindow(), controller_.get()); |
688 } | 680 } |
689 | 681 |
690 virtual void TearDown() override { | 682 void TearDown() override { |
691 GetRootWindow()->RemovePreTargetHandler(controller_.get()); | 683 GetRootWindow()->RemovePreTargetHandler(controller_.get()); |
692 aura::client::SetTooltipClient(GetRootWindow(), NULL); | 684 aura::client::SetTooltipClient(GetRootWindow(), NULL); |
693 | 685 |
694 controller_.reset(); | 686 controller_.reset(); |
695 generator_.reset(); | 687 generator_.reset(); |
696 helper_.reset(); | 688 helper_.reset(); |
697 widget_.reset(); | 689 widget_.reset(); |
698 aura::test::AuraTestBase::TearDown(); | 690 aura::test::AuraTestBase::TearDown(); |
699 wm_state_.reset(); | 691 wm_state_.reset(); |
700 } | 692 } |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
823 helper_->FireTooltipTimer(); | 815 helper_->FireTooltipTimer(); |
824 tooltip_bounds1 = test_tooltip_->location(); | 816 tooltip_bounds1 = test_tooltip_->location(); |
825 | 817 |
826 EXPECT_NE(tooltip_bounds1_1, tooltip_bounds1); | 818 EXPECT_NE(tooltip_bounds1_1, tooltip_bounds1); |
827 EXPECT_EQ(reference_string, helper_->GetTooltipText()); | 819 EXPECT_EQ(reference_string, helper_->GetTooltipText()); |
828 } | 820 } |
829 | 821 |
830 } // namespace test | 822 } // namespace test |
831 } // namespace corewm | 823 } // namespace corewm |
832 } // namespace views | 824 } // namespace views |
OLD | NEW |