summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-07 23:00:56 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-07 23:00:56 +0000
commit8b9ff7f90d8297c8baf782ce726b6df1c4fc470c (patch)
tree538ae1f7eb8833b6acbfb31f0c7269fd571be319
parent9e21543b298b395f7c7c7bd072708322022a8ce9 (diff)
downloadchromium_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.cc2
-rw-r--r--ui/views/corewm/tooltip_controller_unittest.cc87
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