diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-07 23:00:56 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-07 23:00:56 +0000 |
commit | 8b9ff7f90d8297c8baf782ce726b6df1c4fc470c (patch) | |
tree | 538ae1f7eb8833b6acbfb31f0c7269fd571be319 | |
parent | 9e21543b298b395f7c7c7bd072708322022a8ce9 (diff) | |
download | chromium_src-8b9ff7f90d8297c8baf782ce726b6df1c4fc470c.zip chromium_src-8b9ff7f90d8297c8baf782ce726b6df1c4fc470c.tar.gz chromium_src-8b9ff7f90d8297c8baf782ce726b6df1c4fc470c.tar.bz2 |
Strips leading and trailing whitespace from tooltip
Windows was automatically doing this for us before. I can't think of a
good reason not to do it every where.
BUG=331209
TEST=covered by unit test
R=varunjain@chromium.org
Review URL: https://codereview.chromium.org/113923006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243422 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | ui/views/corewm/tooltip_controller.cc | 2 | ||||
-rw-r--r-- | ui/views/corewm/tooltip_controller_unittest.cc | 87 |
2 files changed, 88 insertions, 1 deletions
diff --git a/ui/views/corewm/tooltip_controller.cc b/ui/views/corewm/tooltip_controller.cc index bd3c34d..ec936cd 100644 --- a/ui/views/corewm/tooltip_controller.cc +++ b/ui/views/corewm/tooltip_controller.cc @@ -301,7 +301,7 @@ void TooltipController::UpdateIfRequired() { } else { gfx::Point widget_loc = curr_mouse_loc_ + tooltip_window_->GetBoundsInScreen().OffsetFromOrigin(); - tooltip_->SetText(tooltip_window_, trimmed_text, widget_loc); + tooltip_->SetText(tooltip_window_, whitespace_removed_text, widget_loc); tooltip_->Show(); int timeout = GetTooltipShownTimeout(); if (timeout > 0) { diff --git a/ui/views/corewm/tooltip_controller_unittest.cc b/ui/views/corewm/tooltip_controller_unittest.cc index cf17bf6..731cf9f 100644 --- a/ui/views/corewm/tooltip_controller_unittest.cc +++ b/ui/views/corewm/tooltip_controller_unittest.cc @@ -13,6 +13,7 @@ #include "ui/aura/test/aura_test_base.h" #include "ui/aura/test/event_generator.h" #include "ui/aura/test/test_screen.h" +#include "ui/aura/test/test_window_delegate.h" #include "ui/aura/window.h" #include "ui/base/resource/resource_bundle.h" #include "ui/gfx/font.h" @@ -653,6 +654,92 @@ TEST_F(TooltipControllerTest, TooltipAtTopOfZOrderAfterActivation) { } #endif +namespace { + +class TestTooltip : public Tooltip { + public: + TestTooltip() : is_visible_(false) {} + virtual ~TestTooltip() {} + + const base::string16& tooltip_text() const { return tooltip_text_; } + + // Tooltip: + virtual void SetText(aura::Window* window, + const base::string16& tooltip_text, + const gfx::Point& location) OVERRIDE { + tooltip_text_ = tooltip_text; + } + virtual void Show() OVERRIDE { + is_visible_ = true; + } + virtual void Hide() OVERRIDE { + is_visible_ = false; + } + virtual bool IsVisible() OVERRIDE { + return is_visible_; + } + + private: + bool is_visible_; + base::string16 tooltip_text_; + + DISALLOW_COPY_AND_ASSIGN(TestTooltip); +}; + +} // namespace + +// Use for tests that don't depend upon views. +class TooltipControllerTest2 : public aura::test::AuraTestBase { + public: + TooltipControllerTest2() : test_tooltip_(new TestTooltip) {} + virtual ~TooltipControllerTest2() {} + + virtual void SetUp() OVERRIDE { + wm_state_.reset(new views::corewm::WMState); + aura::test::AuraTestBase::SetUp(); + controller_.reset(new TooltipController( + scoped_ptr<views::corewm::Tooltip>(test_tooltip_))); + root_window()->AddPreTargetHandler(controller_.get()); + SetTooltipClient(root_window(), controller_.get()); + helper_.reset(new TooltipControllerTestHelper(controller_.get())); + generator_.reset(new aura::test::EventGenerator(root_window())); + } + + virtual void TearDown() OVERRIDE { + root_window()->RemovePreTargetHandler(controller_.get()); + aura::client::SetTooltipClient(root_window(), NULL); + controller_.reset(); + generator_.reset(); + helper_.reset(); + aura::test::AuraTestBase::TearDown(); + wm_state_.reset(); + } + + protected: + // Owned by |controller_|. + TestTooltip* test_tooltip_; + scoped_ptr<TooltipControllerTestHelper> helper_; + scoped_ptr<aura::test::EventGenerator> generator_; + + private: + scoped_ptr<TooltipController> controller_; + scoped_ptr<views::corewm::WMState> wm_state_; + + DISALLOW_COPY_AND_ASSIGN(TooltipControllerTest2); +}; + +TEST_F(TooltipControllerTest2, VerifyLeadingTrailingWhitespaceStripped) { + aura::test::TestWindowDelegate test_delegate; + scoped_ptr<aura::Window> window( + CreateNormalWindow(100, root_window(), &test_delegate)); + window->SetBounds(gfx::Rect(0, 0, 300, 300)); + base::string16 tooltip_text(ASCIIToUTF16(" \nx ")); + aura::client::SetTooltipText(window.get(), &tooltip_text); + generator_->MoveMouseToCenterOf(window.get()); + helper_->FireTooltipTimer(); + EXPECT_EQ(ASCIIToUTF16("x"), test_tooltip_->tooltip_text()); +} + } // namespace test } // namespace corewm } // namespace views |