Index: ui/views/corewm/tooltip_controller_unittest.cc |
diff --git a/ui/views/corewm/tooltip_controller_unittest.cc b/ui/views/corewm/tooltip_controller_unittest.cc |
index cf17bf66f2abbe9d42bd037524c5e3b3c5e5d326..731cf9f59e25e1139372acb7d60a698af9d101d6 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 |