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/client/tooltip_client.h" | 10 #include "ui/aura/client/tooltip_client.h" |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 scoped_ptr<TooltipController> controller_; | 128 scoped_ptr<TooltipController> controller_; |
129 #if defined(OS_WIN) | 129 #if defined(OS_WIN) |
130 ui::ScopedOleInitializer ole_initializer_; | 130 ui::ScopedOleInitializer ole_initializer_; |
131 #endif | 131 #endif |
132 | 132 |
133 DISALLOW_COPY_AND_ASSIGN(TooltipControllerTest); | 133 DISALLOW_COPY_AND_ASSIGN(TooltipControllerTest); |
134 }; | 134 }; |
135 | 135 |
136 TEST_F(TooltipControllerTest, ViewTooltip) { | 136 TEST_F(TooltipControllerTest, ViewTooltip) { |
137 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 137 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
138 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 138 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
139 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 139 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
140 generator_->MoveMouseToCenterOf(GetWindow()); | 140 generator_->MoveMouseToCenterOf(GetWindow()); |
141 | 141 |
142 EXPECT_EQ(GetWindow(), GetRootWindow()->GetEventHandlerForPoint( | 142 EXPECT_EQ(GetWindow(), GetRootWindow()->GetEventHandlerForPoint( |
143 generator_->current_location())); | 143 generator_->current_location())); |
144 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 144 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
145 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 145 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
146 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 146 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
147 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 147 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
148 | 148 |
149 // Fire tooltip timer so tooltip becomes visible. | 149 // Fire tooltip timer so tooltip becomes visible. |
150 helper_->FireTooltipTimer(); | 150 helper_->FireTooltipTimer(); |
151 | 151 |
152 EXPECT_TRUE(helper_->IsTooltipVisible()); | 152 EXPECT_TRUE(helper_->IsTooltipVisible()); |
153 generator_->MoveMouseBy(1, 0); | 153 generator_->MoveMouseBy(1, 0); |
154 | 154 |
155 EXPECT_TRUE(helper_->IsTooltipVisible()); | 155 EXPECT_TRUE(helper_->IsTooltipVisible()); |
156 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 156 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
157 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 157 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
158 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 158 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
159 } | 159 } |
160 | 160 |
161 TEST_F(TooltipControllerTest, TooltipsInMultipleViews) { | 161 TEST_F(TooltipControllerTest, TooltipsInMultipleViews) { |
162 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 162 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
163 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 163 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
164 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 164 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
165 | 165 |
166 PrepareSecondView(); | 166 PrepareSecondView(); |
167 aura::Window* window = GetWindow(); | 167 aura::Window* window = GetWindow(); |
168 aura::Window* root_window = GetRootWindow(); | 168 aura::Window* root_window = GetRootWindow(); |
169 | 169 |
170 // Fire tooltip timer so tooltip becomes visible. | 170 // Fire tooltip timer so tooltip becomes visible. |
171 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); | 171 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); |
172 helper_->FireTooltipTimer(); | 172 helper_->FireTooltipTimer(); |
173 EXPECT_TRUE(helper_->IsTooltipVisible()); | 173 EXPECT_TRUE(helper_->IsTooltipVisible()); |
174 for (int i = 0; i < 49; ++i) { | 174 for (int i = 0; i < 49; ++i) { |
175 generator_->MoveMouseBy(1, 0); | 175 generator_->MoveMouseBy(1, 0); |
176 EXPECT_TRUE(helper_->IsTooltipVisible()); | 176 EXPECT_TRUE(helper_->IsTooltipVisible()); |
177 EXPECT_EQ(window, root_window->GetEventHandlerForPoint( | 177 EXPECT_EQ(window, root_window->GetEventHandlerForPoint( |
178 generator_->current_location())); | 178 generator_->current_location())); |
179 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 179 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
180 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 180 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
181 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 181 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
182 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 182 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
183 } | 183 } |
184 for (int i = 0; i < 49; ++i) { | 184 for (int i = 0; i < 49; ++i) { |
185 generator_->MoveMouseBy(1, 0); | 185 generator_->MoveMouseBy(1, 0); |
186 EXPECT_FALSE(helper_->IsTooltipVisible()); | 186 EXPECT_FALSE(helper_->IsTooltipVisible()); |
187 EXPECT_EQ(window, root_window->GetEventHandlerForPoint( | 187 EXPECT_EQ(window, root_window->GetEventHandlerForPoint( |
188 generator_->current_location())); | 188 generator_->current_location())); |
189 string16 expected_tooltip; // = "" | 189 base::string16 expected_tooltip; // = "" |
190 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 190 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
191 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 191 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
192 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 192 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
193 } | 193 } |
194 } | 194 } |
195 | 195 |
196 TEST_F(TooltipControllerTest, EnableOrDisableTooltips) { | 196 TEST_F(TooltipControllerTest, EnableOrDisableTooltips) { |
197 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 197 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
198 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 198 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
199 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 199 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
200 | 200 |
201 generator_->MoveMouseRelativeTo(GetWindow(), view_->bounds().CenterPoint()); | 201 generator_->MoveMouseRelativeTo(GetWindow(), view_->bounds().CenterPoint()); |
202 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 202 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
203 | 203 |
204 // Fire tooltip timer so tooltip becomes visible. | 204 // Fire tooltip timer so tooltip becomes visible. |
205 helper_->FireTooltipTimer(); | 205 helper_->FireTooltipTimer(); |
206 EXPECT_TRUE(helper_->IsTooltipVisible()); | 206 EXPECT_TRUE(helper_->IsTooltipVisible()); |
207 | 207 |
208 // Disable tooltips and check again. | 208 // Disable tooltips and check again. |
209 helper_->controller()->SetTooltipsEnabled(false); | 209 helper_->controller()->SetTooltipsEnabled(false); |
210 EXPECT_FALSE(helper_->IsTooltipVisible()); | 210 EXPECT_FALSE(helper_->IsTooltipVisible()); |
211 helper_->FireTooltipTimer(); | 211 helper_->FireTooltipTimer(); |
212 EXPECT_FALSE(helper_->IsTooltipVisible()); | 212 EXPECT_FALSE(helper_->IsTooltipVisible()); |
213 | 213 |
214 // Enable tooltips back and check again. | 214 // Enable tooltips back and check again. |
215 helper_->controller()->SetTooltipsEnabled(true); | 215 helper_->controller()->SetTooltipsEnabled(true); |
216 EXPECT_FALSE(helper_->IsTooltipVisible()); | 216 EXPECT_FALSE(helper_->IsTooltipVisible()); |
217 helper_->FireTooltipTimer(); | 217 helper_->FireTooltipTimer(); |
218 EXPECT_TRUE(helper_->IsTooltipVisible()); | 218 EXPECT_TRUE(helper_->IsTooltipVisible()); |
219 } | 219 } |
220 | 220 |
221 // Verifies tooltip isn't shown if tooltip text consists entirely of whitespace. | 221 // Verifies tooltip isn't shown if tooltip text consists entirely of whitespace. |
222 TEST_F(TooltipControllerTest, DontShowEmptyTooltips) { | 222 TEST_F(TooltipControllerTest, DontShowEmptyTooltips) { |
223 view_->set_tooltip_text(ASCIIToUTF16(" ")); | 223 view_->set_tooltip_text(ASCIIToUTF16(" ")); |
224 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 224 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
225 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 225 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
226 | 226 |
227 generator_->MoveMouseRelativeTo(GetWindow(), view_->bounds().CenterPoint()); | 227 generator_->MoveMouseRelativeTo(GetWindow(), view_->bounds().CenterPoint()); |
228 | 228 |
229 helper_->FireTooltipTimer(); | 229 helper_->FireTooltipTimer(); |
230 EXPECT_FALSE(helper_->IsTooltipVisible()); | 230 EXPECT_FALSE(helper_->IsTooltipVisible()); |
231 } | 231 } |
232 | 232 |
233 TEST_F(TooltipControllerTest, TooltipHidesOnKeyPressAndStaysHiddenUntilChange) { | 233 TEST_F(TooltipControllerTest, TooltipHidesOnKeyPressAndStaysHiddenUntilChange) { |
234 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 1")); | 234 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 1")); |
235 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 235 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
236 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 236 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
237 | 237 |
238 TooltipTestView* view2 = PrepareSecondView(); | 238 TooltipTestView* view2 = PrepareSecondView(); |
239 view2->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 2")); | 239 view2->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 2")); |
240 | 240 |
241 aura::Window* window = GetWindow(); | 241 aura::Window* window = GetWindow(); |
242 | 242 |
243 // Fire tooltip timer so tooltip becomes visible. | 243 // Fire tooltip timer so tooltip becomes visible. |
244 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); | 244 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); |
245 helper_->FireTooltipTimer(); | 245 helper_->FireTooltipTimer(); |
246 EXPECT_TRUE(helper_->IsTooltipVisible()); | 246 EXPECT_TRUE(helper_->IsTooltipVisible()); |
247 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); | 247 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); |
248 | 248 |
249 generator_->PressKey(ui::VKEY_1, 0); | 249 generator_->PressKey(ui::VKEY_1, 0); |
250 EXPECT_FALSE(helper_->IsTooltipVisible()); | 250 EXPECT_FALSE(helper_->IsTooltipVisible()); |
251 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); | 251 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); |
252 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); | 252 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); |
253 | 253 |
254 // Moving the mouse inside |view1| should not change the state of the tooltip | 254 // Moving the mouse inside |view1| should not change the state of the tooltip |
255 // or the timers. | 255 // or the timers. |
256 for (int i = 0; i < 49; i++) { | 256 for (int i = 0; i < 49; i++) { |
257 generator_->MoveMouseBy(1, 0); | 257 generator_->MoveMouseBy(1, 0); |
258 EXPECT_FALSE(helper_->IsTooltipVisible()); | 258 EXPECT_FALSE(helper_->IsTooltipVisible()); |
259 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); | 259 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); |
260 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); | 260 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); |
261 EXPECT_EQ(window, | 261 EXPECT_EQ(window, |
262 GetRootWindow()->GetEventHandlerForPoint( | 262 GetRootWindow()->GetEventHandlerForPoint( |
263 generator_->current_location())); | 263 generator_->current_location())); |
264 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 1"); | 264 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 1"); |
265 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 265 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
266 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 266 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
267 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 267 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
268 } | 268 } |
269 | 269 |
270 // Now we move the mouse on to |view2|. It should re-start the tooltip timer. | 270 // Now we move the mouse on to |view2|. It should re-start the tooltip timer. |
271 generator_->MoveMouseBy(1, 0); | 271 generator_->MoveMouseBy(1, 0); |
272 EXPECT_TRUE(helper_->IsTooltipTimerRunning()); | 272 EXPECT_TRUE(helper_->IsTooltipTimerRunning()); |
273 helper_->FireTooltipTimer(); | 273 helper_->FireTooltipTimer(); |
274 EXPECT_TRUE(helper_->IsTooltipVisible()); | 274 EXPECT_TRUE(helper_->IsTooltipVisible()); |
275 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); | 275 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); |
276 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 2"); | 276 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 2"); |
277 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 277 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
278 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 278 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
279 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 279 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
280 } | 280 } |
281 | 281 |
282 TEST_F(TooltipControllerTest, TooltipHidesOnTimeoutAndStaysHiddenUntilChange) { | 282 TEST_F(TooltipControllerTest, TooltipHidesOnTimeoutAndStaysHiddenUntilChange) { |
283 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 1")); | 283 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 1")); |
284 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 284 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
285 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 285 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
286 | 286 |
287 TooltipTestView* view2 = PrepareSecondView(); | 287 TooltipTestView* view2 = PrepareSecondView(); |
288 view2->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 2")); | 288 view2->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 2")); |
289 | 289 |
290 aura::Window* window = GetWindow(); | 290 aura::Window* window = GetWindow(); |
291 | 291 |
292 // Fire tooltip timer so tooltip becomes visible. | 292 // Fire tooltip timer so tooltip becomes visible. |
293 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); | 293 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); |
294 helper_->FireTooltipTimer(); | 294 helper_->FireTooltipTimer(); |
295 EXPECT_TRUE(helper_->IsTooltipVisible()); | 295 EXPECT_TRUE(helper_->IsTooltipVisible()); |
296 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); | 296 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); |
297 | 297 |
298 helper_->FireTooltipShownTimer(); | 298 helper_->FireTooltipShownTimer(); |
299 EXPECT_FALSE(helper_->IsTooltipVisible()); | 299 EXPECT_FALSE(helper_->IsTooltipVisible()); |
300 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); | 300 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); |
301 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); | 301 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); |
302 | 302 |
303 // Moving the mouse inside |view1| should not change the state of the tooltip | 303 // Moving the mouse inside |view1| should not change the state of the tooltip |
304 // or the timers. | 304 // or the timers. |
305 for (int i = 0; i < 49; ++i) { | 305 for (int i = 0; i < 49; ++i) { |
306 generator_->MoveMouseBy(1, 0); | 306 generator_->MoveMouseBy(1, 0); |
307 EXPECT_FALSE(helper_->IsTooltipVisible()); | 307 EXPECT_FALSE(helper_->IsTooltipVisible()); |
308 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); | 308 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); |
309 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); | 309 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); |
310 EXPECT_EQ(window, GetRootWindow()->GetEventHandlerForPoint( | 310 EXPECT_EQ(window, GetRootWindow()->GetEventHandlerForPoint( |
311 generator_->current_location())); | 311 generator_->current_location())); |
312 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 1"); | 312 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 1"); |
313 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 313 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
314 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 314 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
315 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 315 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
316 } | 316 } |
317 | 317 |
318 // Now we move the mouse on to |view2|. It should re-start the tooltip timer. | 318 // Now we move the mouse on to |view2|. It should re-start the tooltip timer. |
319 generator_->MoveMouseBy(1, 0); | 319 generator_->MoveMouseBy(1, 0); |
320 EXPECT_TRUE(helper_->IsTooltipTimerRunning()); | 320 EXPECT_TRUE(helper_->IsTooltipTimerRunning()); |
321 helper_->FireTooltipTimer(); | 321 helper_->FireTooltipTimer(); |
322 EXPECT_TRUE(helper_->IsTooltipVisible()); | 322 EXPECT_TRUE(helper_->IsTooltipVisible()); |
323 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); | 323 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); |
324 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 2"); | 324 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 2"); |
325 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 325 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
326 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 326 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
327 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 327 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
328 } | 328 } |
329 | 329 |
330 // Verifies a mouse exit event hides the tooltips. | 330 // Verifies a mouse exit event hides the tooltips. |
331 TEST_F(TooltipControllerTest, HideOnExit) { | 331 TEST_F(TooltipControllerTest, HideOnExit) { |
332 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 332 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
333 generator_->MoveMouseToCenterOf(GetWindow()); | 333 generator_->MoveMouseToCenterOf(GetWindow()); |
334 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 334 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
335 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 335 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
336 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 336 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
337 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 337 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
338 | 338 |
339 // Fire tooltip timer so tooltip becomes visible. | 339 // Fire tooltip timer so tooltip becomes visible. |
340 helper_->FireTooltipTimer(); | 340 helper_->FireTooltipTimer(); |
341 | 341 |
342 EXPECT_TRUE(helper_->IsTooltipVisible()); | 342 EXPECT_TRUE(helper_->IsTooltipVisible()); |
343 generator_->SendMouseExit(); | 343 generator_->SendMouseExit(); |
344 EXPECT_FALSE(helper_->IsTooltipVisible()); | 344 EXPECT_FALSE(helper_->IsTooltipVisible()); |
345 } | 345 } |
346 | 346 |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
452 scoped_ptr<gfx::Screen> desktop_screen_; | 452 scoped_ptr<gfx::Screen> desktop_screen_; |
453 | 453 |
454 DISALLOW_COPY_AND_ASSIGN(TooltipControllerCaptureTest); | 454 DISALLOW_COPY_AND_ASSIGN(TooltipControllerCaptureTest); |
455 }; | 455 }; |
456 | 456 |
457 // Verifies when capture is released the TooltipController resets state. | 457 // Verifies when capture is released the TooltipController resets state. |
458 TEST_F(TooltipControllerCaptureTest, CloseOnCaptureLost) { | 458 TEST_F(TooltipControllerCaptureTest, CloseOnCaptureLost) { |
459 view_->GetWidget()->SetCapture(view_); | 459 view_->GetWidget()->SetCapture(view_); |
460 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 460 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
461 generator_->MoveMouseToCenterOf(GetWindow()); | 461 generator_->MoveMouseToCenterOf(GetWindow()); |
462 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 462 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
463 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 463 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
464 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 464 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
465 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 465 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
466 | 466 |
467 // Fire tooltip timer so tooltip becomes visible. | 467 // Fire tooltip timer so tooltip becomes visible. |
468 helper_->FireTooltipTimer(); | 468 helper_->FireTooltipTimer(); |
469 | 469 |
470 EXPECT_TRUE(helper_->IsTooltipVisible()); | 470 EXPECT_TRUE(helper_->IsTooltipVisible()); |
471 view_->GetWidget()->ReleaseCapture(); | 471 view_->GetWidget()->ReleaseCapture(); |
472 EXPECT_FALSE(helper_->IsTooltipVisible()); | 472 EXPECT_FALSE(helper_->IsTooltipVisible()); |
473 EXPECT_TRUE(helper_->GetTooltipWindow() == NULL); | 473 EXPECT_TRUE(helper_->GetTooltipWindow() == NULL); |
474 } | 474 } |
475 | 475 |
476 // Disabled on linux as DesktopScreenX11::GetWindowAtScreenPoint() doesn't | 476 // Disabled on linux as DesktopScreenX11::GetWindowAtScreenPoint() doesn't |
477 // consider z-order. | 477 // consider z-order. |
478 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) | 478 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
479 #define MAYBE_Capture DISABLED_Capture | 479 #define MAYBE_Capture DISABLED_Capture |
480 #else | 480 #else |
481 #define MAYBE_Capture Capture | 481 #define MAYBE_Capture Capture |
482 #endif | 482 #endif |
483 // Verifies the correct window is found for tooltips when there is a capture. | 483 // Verifies the correct window is found for tooltips when there is a capture. |
484 TEST_F(TooltipControllerCaptureTest, MAYBE_Capture) { | 484 TEST_F(TooltipControllerCaptureTest, MAYBE_Capture) { |
485 const string16 tooltip_text(ASCIIToUTF16("1")); | 485 const base::string16 tooltip_text(ASCIIToUTF16("1")); |
486 const string16 tooltip_text2(ASCIIToUTF16("2")); | 486 const base::string16 tooltip_text2(ASCIIToUTF16("2")); |
487 | 487 |
488 widget_->SetBounds(gfx::Rect(0, 0, 200, 200)); | 488 widget_->SetBounds(gfx::Rect(0, 0, 200, 200)); |
489 view_->set_tooltip_text(tooltip_text); | 489 view_->set_tooltip_text(tooltip_text); |
490 | 490 |
491 scoped_ptr<views::Widget> widget2(CreateWidget(root_window())); | 491 scoped_ptr<views::Widget> widget2(CreateWidget(root_window())); |
492 widget2->SetContentsView(new View); | 492 widget2->SetContentsView(new View); |
493 TooltipTestView* view2 = new TooltipTestView; | 493 TooltipTestView* view2 = new TooltipTestView; |
494 widget2->GetContentsView()->AddChildView(view2); | 494 widget2->GetContentsView()->AddChildView(view2); |
495 view2->set_tooltip_text(tooltip_text2); | 495 view2->set_tooltip_text(tooltip_text2); |
496 widget2->SetBounds(gfx::Rect(0, 0, 200, 200)); | 496 widget2->SetBounds(gfx::Rect(0, 0, 200, 200)); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
528 widget2.reset(); | 528 widget2.reset(); |
529 } | 529 } |
530 | 530 |
531 #if !defined(OS_CHROMEOS) | 531 #if !defined(OS_CHROMEOS) |
532 // This test creates two top level windows and verifies that the tooltip | 532 // This test creates two top level windows and verifies that the tooltip |
533 // displays correctly when mouse moves are dispatched to these windows. | 533 // displays correctly when mouse moves are dispatched to these windows. |
534 // Additionally it also verifies that the tooltip is reparented to the new | 534 // Additionally it also verifies that the tooltip is reparented to the new |
535 // window when mouse moves are dispatched to it. | 535 // window when mouse moves are dispatched to it. |
536 TEST_F(TooltipControllerTest, TooltipsInMultipleRootWindows) { | 536 TEST_F(TooltipControllerTest, TooltipsInMultipleRootWindows) { |
537 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text For RootWindow1")); | 537 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text For RootWindow1")); |
538 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 538 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
539 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 539 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
540 | 540 |
541 aura::Window* window = GetWindow(); | 541 aura::Window* window = GetWindow(); |
542 aura::Window* root_window = GetRootWindow(); | 542 aura::Window* root_window = GetRootWindow(); |
543 | 543 |
544 // Fire tooltip timer so tooltip becomes visible. | 544 // Fire tooltip timer so tooltip becomes visible. |
545 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); | 545 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); |
546 helper_->FireTooltipTimer(); | 546 helper_->FireTooltipTimer(); |
547 EXPECT_TRUE(helper_->IsTooltipVisible()); | 547 EXPECT_TRUE(helper_->IsTooltipVisible()); |
548 for (int i = 0; i < 49; ++i) { | 548 for (int i = 0; i < 49; ++i) { |
549 generator_->MoveMouseBy(1, 0); | 549 generator_->MoveMouseBy(1, 0); |
550 EXPECT_TRUE(helper_->IsTooltipVisible()); | 550 EXPECT_TRUE(helper_->IsTooltipVisible()); |
551 EXPECT_EQ(window, root_window->GetEventHandlerForPoint( | 551 EXPECT_EQ(window, root_window->GetEventHandlerForPoint( |
552 generator_->current_location())); | 552 generator_->current_location())); |
553 string16 expected_tooltip = | 553 base::string16 expected_tooltip = |
554 ASCIIToUTF16("Tooltip Text For RootWindow1"); | 554 ASCIIToUTF16("Tooltip Text For RootWindow1"); |
555 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 555 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
556 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 556 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
557 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 557 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
558 } | 558 } |
559 | 559 |
560 views::Widget* widget2 = CreateWidget(NULL); | 560 views::Widget* widget2 = CreateWidget(NULL); |
561 widget2->SetContentsView(new View); | 561 widget2->SetContentsView(new View); |
562 TooltipTestView* view2 = new TooltipTestView; | 562 TooltipTestView* view2 = new TooltipTestView; |
563 widget2->GetContentsView()->AddChildView(view2); | 563 widget2->GetContentsView()->AddChildView(view2); |
(...skipping 12 matching lines...) Expand all Loading... |
576 helper_->FireTooltipTimer(); | 576 helper_->FireTooltipTimer(); |
577 | 577 |
578 EXPECT_NE(root_window, root_window2); | 578 EXPECT_NE(root_window, root_window2); |
579 EXPECT_NE(window, window2); | 579 EXPECT_NE(window, window2); |
580 | 580 |
581 for (int i = 0; i < 49; ++i) { | 581 for (int i = 0; i < 49; ++i) { |
582 generator_->MoveMouseBy(1, 0); | 582 generator_->MoveMouseBy(1, 0); |
583 EXPECT_TRUE(helper_->IsTooltipVisible()); | 583 EXPECT_TRUE(helper_->IsTooltipVisible()); |
584 EXPECT_EQ(window2, root_window2->GetEventHandlerForPoint( | 584 EXPECT_EQ(window2, root_window2->GetEventHandlerForPoint( |
585 generator_->current_location())); | 585 generator_->current_location())); |
586 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text For RootWindow2"); | 586 base::string16 expected_tooltip = |
| 587 ASCIIToUTF16("Tooltip Text For RootWindow2"); |
587 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window2)); | 588 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window2)); |
588 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 589 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
589 EXPECT_EQ(window2, helper_->GetTooltipWindow()); | 590 EXPECT_EQ(window2, helper_->GetTooltipWindow()); |
590 } | 591 } |
591 | 592 |
592 bool tooltip_reparented = false; | 593 bool tooltip_reparented = false; |
593 for (size_t i = 0; i < root_window2->children().size(); ++i) { | 594 for (size_t i = 0; i < root_window2->children().size(); ++i) { |
594 if (root_window2->children()[i]->type() == | 595 if (root_window2->children()[i]->type() == |
595 aura::client::WINDOW_TYPE_TOOLTIP) { | 596 aura::client::WINDOW_TYPE_TOOLTIP) { |
596 tooltip_reparented = true; | 597 tooltip_reparented = true; |
597 break; | 598 break; |
598 } | 599 } |
599 } | 600 } |
600 EXPECT_TRUE(tooltip_reparented); | 601 EXPECT_TRUE(tooltip_reparented); |
601 widget2->Close(); | 602 widget2->Close(); |
602 } | 603 } |
603 | 604 |
604 // This test validates whether the tooltip after becoming visible stays at the | 605 // This test validates whether the tooltip after becoming visible stays at the |
605 // top of the ZOrder in its root window after activation changes. | 606 // top of the ZOrder in its root window after activation changes. |
606 TEST_F(TooltipControllerTest, TooltipAtTopOfZOrderAfterActivation) { | 607 TEST_F(TooltipControllerTest, TooltipAtTopOfZOrderAfterActivation) { |
607 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 608 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
608 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 609 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
609 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 610 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
610 generator_->MoveMouseToCenterOf(GetWindow()); | 611 generator_->MoveMouseToCenterOf(GetWindow()); |
611 | 612 |
612 EXPECT_EQ(GetWindow(), GetRootWindow()->GetEventHandlerForPoint( | 613 EXPECT_EQ(GetWindow(), GetRootWindow()->GetEventHandlerForPoint( |
613 generator_->current_location())); | 614 generator_->current_location())); |
614 string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 615 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
615 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 616 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
616 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 617 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
617 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 618 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
618 | 619 |
619 // Fire tooltip timer so tooltip becomes visible. | 620 // Fire tooltip timer so tooltip becomes visible. |
620 helper_->FireTooltipTimer(); | 621 helper_->FireTooltipTimer(); |
621 | 622 |
622 EXPECT_TRUE(helper_->IsTooltipVisible()); | 623 EXPECT_TRUE(helper_->IsTooltipVisible()); |
623 generator_->MoveMouseBy(1, 0); | 624 generator_->MoveMouseBy(1, 0); |
624 | 625 |
625 EXPECT_TRUE(helper_->IsTooltipVisible()); | 626 EXPECT_TRUE(helper_->IsTooltipVisible()); |
626 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 627 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
(...skipping 12 matching lines...) Expand all Loading... |
639 EXPECT_EQ( | 640 EXPECT_EQ( |
640 widget_->GetNativeWindow()->GetRootWindow()->children().back()->type(), | 641 widget_->GetNativeWindow()->GetRootWindow()->children().back()->type(), |
641 aura::client::WINDOW_TYPE_TOOLTIP); | 642 aura::client::WINDOW_TYPE_TOOLTIP); |
642 } | 643 } |
643 | 644 |
644 #endif | 645 #endif |
645 | 646 |
646 } // namespace test | 647 } // namespace test |
647 } // namespace corewm | 648 } // namespace corewm |
648 } // namespace views | 649 } // namespace views |
OLD | NEW |