OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ash/shell.h" | 5 #include "ash/shell.h" |
6 #include "ash/test/ash_test_base.h" | 6 #include "ash/test/ash_test_base.h" |
7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
8 #include "ui/aura/env.h" | 8 #include "ui/aura/env.h" |
9 #include "ui/aura/test/event_generator.h" | |
10 #include "ui/aura/window.h" | 9 #include "ui/aura/window.h" |
11 #include "ui/aura/window_event_dispatcher.h" | 10 #include "ui/aura/window_event_dispatcher.h" |
12 #include "ui/base/resource/resource_bundle.h" | 11 #include "ui/base/resource/resource_bundle.h" |
| 12 #include "ui/events/test/event_generator.h" |
13 #include "ui/gfx/font.h" | 13 #include "ui/gfx/font.h" |
14 #include "ui/gfx/point.h" | 14 #include "ui/gfx/point.h" |
15 #include "ui/views/corewm/tooltip_controller.h" | 15 #include "ui/views/corewm/tooltip_controller.h" |
16 #include "ui/views/corewm/tooltip_controller_test_helper.h" | 16 #include "ui/views/corewm/tooltip_controller_test_helper.h" |
17 #include "ui/views/view.h" | 17 #include "ui/views/view.h" |
18 #include "ui/views/widget/widget.h" | 18 #include "ui/views/widget/widget.h" |
19 #include "ui/wm/public/tooltip_client.h" | 19 #include "ui/wm/public/tooltip_client.h" |
20 | 20 |
21 using views::corewm::TooltipController; | 21 using views::corewm::TooltipController; |
22 using views::corewm::test::TooltipTestView; | 22 using views::corewm::test::TooltipTestView; |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 } | 98 } |
99 | 99 |
100 TEST_F(TooltipControllerTest, HideTooltipWhenCursorHidden) { | 100 TEST_F(TooltipControllerTest, HideTooltipWhenCursorHidden) { |
101 scoped_ptr<views::Widget> widget(CreateNewWidgetOn(0)); | 101 scoped_ptr<views::Widget> widget(CreateNewWidgetOn(0)); |
102 TooltipTestView* view = new TooltipTestView; | 102 TooltipTestView* view = new TooltipTestView; |
103 AddViewToWidgetAndResize(widget.get(), view); | 103 AddViewToWidgetAndResize(widget.get(), view); |
104 view->set_tooltip_text(base::ASCIIToUTF16("Tooltip Text")); | 104 view->set_tooltip_text(base::ASCIIToUTF16("Tooltip Text")); |
105 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); | 105 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
106 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 106 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
107 | 107 |
108 aura::test::EventGenerator generator(Shell::GetPrimaryRootWindow()); | 108 ui::test::EventGenerator generator(Shell::GetPrimaryRootWindow()); |
109 generator.MoveMouseRelativeTo(widget->GetNativeView(), | 109 generator.MoveMouseRelativeTo(widget->GetNativeView(), |
110 view->bounds().CenterPoint()); | 110 view->bounds().CenterPoint()); |
111 base::string16 expected_tooltip = base::ASCIIToUTF16("Tooltip Text"); | 111 base::string16 expected_tooltip = base::ASCIIToUTF16("Tooltip Text"); |
112 | 112 |
113 // Fire tooltip timer so tooltip becomes visible. | 113 // Fire tooltip timer so tooltip becomes visible. |
114 helper_->FireTooltipTimer(); | 114 helper_->FireTooltipTimer(); |
115 EXPECT_TRUE(helper_->IsTooltipVisible()); | 115 EXPECT_TRUE(helper_->IsTooltipVisible()); |
116 | 116 |
117 // Hide the cursor and check again. | 117 // Hide the cursor and check again. |
118 ash::Shell::GetInstance()->cursor_manager()->DisableMouseEvents(); | 118 ash::Shell::GetInstance()->cursor_manager()->DisableMouseEvents(); |
(...skipping 22 matching lines...) Expand all Loading... |
141 EXPECT_EQ(widget1->GetNativeView()->GetRootWindow(), root_windows[0]); | 141 EXPECT_EQ(widget1->GetNativeView()->GetRootWindow(), root_windows[0]); |
142 | 142 |
143 scoped_ptr<views::Widget> widget2(CreateNewWidgetWithBoundsOn( | 143 scoped_ptr<views::Widget> widget2(CreateNewWidgetWithBoundsOn( |
144 1, gfx::Rect(1200, 10, 100, 100))); | 144 1, gfx::Rect(1200, 10, 100, 100))); |
145 TooltipTestView* view2 = new TooltipTestView; | 145 TooltipTestView* view2 = new TooltipTestView; |
146 AddViewToWidgetAndResize(widget2.get(), view2); | 146 AddViewToWidgetAndResize(widget2.get(), view2); |
147 view2->set_tooltip_text(base::ASCIIToUTF16("Tooltip Text for view 2")); | 147 view2->set_tooltip_text(base::ASCIIToUTF16("Tooltip Text for view 2")); |
148 EXPECT_EQ(widget2->GetNativeView()->GetRootWindow(), root_windows[1]); | 148 EXPECT_EQ(widget2->GetNativeView()->GetRootWindow(), root_windows[1]); |
149 | 149 |
150 // Show tooltip on second display. | 150 // Show tooltip on second display. |
151 aura::test::EventGenerator generator(root_windows[1]); | 151 ui::test::EventGenerator generator(root_windows[1]); |
152 generator.MoveMouseRelativeTo(widget2->GetNativeView(), | 152 generator.MoveMouseRelativeTo(widget2->GetNativeView(), |
153 view2->bounds().CenterPoint()); | 153 view2->bounds().CenterPoint()); |
154 helper_->FireTooltipTimer(); | 154 helper_->FireTooltipTimer(); |
155 EXPECT_TRUE(helper_->IsTooltipVisible()); | 155 EXPECT_TRUE(helper_->IsTooltipVisible()); |
156 | 156 |
157 // Get rid of secondary display. This destroy's the tooltip's aura window. If | 157 // Get rid of secondary display. This destroy's the tooltip's aura window. If |
158 // we have handled this case, we will not crash in the following statement. | 158 // we have handled this case, we will not crash in the following statement. |
159 UpdateDisplay("1000x600"); | 159 UpdateDisplay("1000x600"); |
160 #if !defined(OS_WIN) | 160 #if !defined(OS_WIN) |
161 // TODO(cpu): Detangle the window destruction notification. Currently | 161 // TODO(cpu): Detangle the window destruction notification. Currently |
162 // the TooltipController::OnWindowDestroyed is not being called then the | 162 // the TooltipController::OnWindowDestroyed is not being called then the |
163 // display is torn down so the tooltip is is still there. | 163 // display is torn down so the tooltip is is still there. |
164 EXPECT_FALSE(helper_->IsTooltipVisible()); | 164 EXPECT_FALSE(helper_->IsTooltipVisible()); |
165 #endif | 165 #endif |
166 EXPECT_EQ(widget2->GetNativeView()->GetRootWindow(), root_windows[0]); | 166 EXPECT_EQ(widget2->GetNativeView()->GetRootWindow(), root_windows[0]); |
167 | 167 |
168 // The tooltip should create a new aura window for itself, so we should still | 168 // The tooltip should create a new aura window for itself, so we should still |
169 // be able to show tooltips on the primary display. | 169 // be able to show tooltips on the primary display. |
170 aura::test::EventGenerator generator1(root_windows[0]); | 170 ui::test::EventGenerator generator1(root_windows[0]); |
171 generator1.MoveMouseRelativeTo(widget1->GetNativeView(), | 171 generator1.MoveMouseRelativeTo(widget1->GetNativeView(), |
172 view1->bounds().CenterPoint()); | 172 view1->bounds().CenterPoint()); |
173 helper_->FireTooltipTimer(); | 173 helper_->FireTooltipTimer(); |
174 EXPECT_TRUE(helper_->IsTooltipVisible()); | 174 EXPECT_TRUE(helper_->IsTooltipVisible()); |
175 } | 175 } |
176 | 176 |
177 } // namespace test | 177 } // namespace test |
178 } // namespace ash | 178 } // namespace ash |
OLD | NEW |