| 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/macros.h" | 7 #include "base/macros.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
| 10 #include "ui/aura/client/cursor_client.h" | 10 #include "ui/aura/client/cursor_client.h" |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 180 | 180 |
| 181 TEST_F(TooltipControllerTest, ViewTooltip) { | 181 TEST_F(TooltipControllerTest, ViewTooltip) { |
| 182 // TODO: these tests use GetContext(). That should go away for aura-mus | 182 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 183 // client. http://crbug.com/663781. | 183 // client. http://crbug.com/663781. |
| 184 if (IsMus()) | 184 if (IsMus()) |
| 185 return; | 185 return; |
| 186 | 186 |
| 187 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 187 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
| 188 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); | 188 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 189 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 189 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 190 |
| 191 // Mouse event will trigger tooltip update so tooltip becomes visible. |
| 190 generator_->MoveMouseToCenterOf(GetWindow()); | 192 generator_->MoveMouseToCenterOf(GetWindow()); |
| 191 | 193 |
| 192 EXPECT_EQ(GetWindow(), GetRootWindow()->GetEventHandlerForPoint( | 194 EXPECT_EQ(GetWindow(), GetRootWindow()->GetEventHandlerForPoint( |
| 193 generator_->current_location())); | 195 generator_->current_location())); |
| 194 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 196 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
| 195 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 197 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
| 196 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); | 198 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 197 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 199 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
| 198 | 200 |
| 199 // Fire tooltip timer so tooltip becomes visible. | |
| 200 helper_->FireTooltipTimer(); | |
| 201 | |
| 202 EXPECT_TRUE(helper_->IsTooltipVisible()); | 201 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 203 generator_->MoveMouseBy(1, 0); | 202 generator_->MoveMouseBy(1, 0); |
| 204 | 203 |
| 205 EXPECT_TRUE(helper_->IsTooltipVisible()); | 204 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 206 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 205 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
| 207 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 206 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 208 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 207 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
| 209 } | 208 } |
| 210 | 209 |
| 211 #if defined(OS_CHROMEOS) | 210 #if defined(OS_CHROMEOS) |
| 212 // crbug.com/664370. | 211 // crbug.com/664370. |
| 213 TEST_F(TooltipControllerTest, MaxWidth) { | 212 TEST_F(TooltipControllerTest, MaxWidth) { |
| 214 // TODO: these tests use GetContext(). That should go away for mus client. | 213 // TODO: these tests use GetContext(). That should go away for mus client. |
| 215 // http://crbug.com/663781. | 214 // http://crbug.com/663781. |
| 216 if (IsMus()) | 215 if (IsMus()) |
| 217 return; | 216 return; |
| 218 | 217 |
| 219 base::string16 text = base::ASCIIToUTF16( | 218 base::string16 text = base::ASCIIToUTF16( |
| 220 "Really really realy long long long long long tooltips that exceeds max " | 219 "Really really realy long long long long long tooltips that exceeds max " |
| 221 "width"); | 220 "width"); |
| 222 view_->set_tooltip_text(text); | 221 view_->set_tooltip_text(text); |
| 223 gfx::Point center = GetWindow()->bounds().CenterPoint(); | 222 gfx::Point center = GetWindow()->bounds().CenterPoint(); |
| 223 |
| 224 // Mouse event will trigger tooltip update so tooltip becomes visible. |
| 224 generator_->MoveMouseTo(center); | 225 generator_->MoveMouseTo(center); |
| 225 | 226 |
| 226 // Fire tooltip timer so tooltip becomes visible. | |
| 227 helper_->FireTooltipTimer(); | |
| 228 | |
| 229 EXPECT_TRUE(helper_->IsTooltipVisible()); | 227 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 230 gfx::RenderText* render_text = | 228 gfx::RenderText* render_text = |
| 231 test::TooltipAuraTestApi(tooltip_aura_).GetRenderText(); | 229 test::TooltipAuraTestApi(tooltip_aura_).GetRenderText(); |
| 232 | 230 |
| 233 int max = helper_->controller()->GetMaxWidth(center); | 231 int max = helper_->controller()->GetMaxWidth(center); |
| 234 EXPECT_EQ(max, render_text->display_rect().width()); | 232 EXPECT_EQ(max, render_text->display_rect().width()); |
| 235 } | 233 } |
| 236 #endif | 234 #endif |
| 237 | 235 |
| 238 TEST_F(TooltipControllerTest, TooltipsInMultipleViews) { | 236 TEST_F(TooltipControllerTest, TooltipsInMultipleViews) { |
| 239 // TODO: these tests use GetContext(). That should go away for aura-mus | 237 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 240 // client. http://crbug.com/663781. | 238 // client. http://crbug.com/663781. |
| 241 if (IsMus()) | 239 if (IsMus()) |
| 242 return; | 240 return; |
| 243 | 241 |
| 244 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 242 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
| 245 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); | 243 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 246 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 244 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 247 | 245 |
| 248 PrepareSecondView(); | 246 PrepareSecondView(); |
| 249 aura::Window* window = GetWindow(); | 247 aura::Window* window = GetWindow(); |
| 250 aura::Window* root_window = GetRootWindow(); | 248 aura::Window* root_window = GetRootWindow(); |
| 251 | 249 |
| 252 // Fire tooltip timer so tooltip becomes visible. | 250 // Mouse event will trigger tooltip update so tooltip becomes visible. |
| 253 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); | 251 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); |
| 254 helper_->FireTooltipTimer(); | |
| 255 EXPECT_TRUE(helper_->IsTooltipVisible()); | 252 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 256 for (int i = 0; i < 49; ++i) { | 253 for (int i = 0; i < 49; ++i) { |
| 257 generator_->MoveMouseBy(1, 0); | 254 generator_->MoveMouseBy(1, 0); |
| 258 EXPECT_TRUE(helper_->IsTooltipVisible()); | 255 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 259 EXPECT_EQ(window, root_window->GetEventHandlerForPoint( | 256 EXPECT_EQ(window, root_window->GetEventHandlerForPoint( |
| 260 generator_->current_location())); | 257 generator_->current_location())); |
| 261 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 258 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
| 262 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 259 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
| 263 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 260 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 264 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 261 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 278 TEST_F(TooltipControllerTest, EnableOrDisableTooltips) { | 275 TEST_F(TooltipControllerTest, EnableOrDisableTooltips) { |
| 279 // TODO: these tests use GetContext(). That should go away for aura-mus | 276 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 280 // client. http://crbug.com/663781. | 277 // client. http://crbug.com/663781. |
| 281 if (IsMus()) | 278 if (IsMus()) |
| 282 return; | 279 return; |
| 283 | 280 |
| 284 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 281 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
| 285 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); | 282 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 286 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 283 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 287 | 284 |
| 285 // Mouse event will trigger tooltip update so tooltip becomes visible. |
| 288 generator_->MoveMouseRelativeTo(GetWindow(), view_->bounds().CenterPoint()); | 286 generator_->MoveMouseRelativeTo(GetWindow(), view_->bounds().CenterPoint()); |
| 289 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | |
| 290 | |
| 291 // Fire tooltip timer so tooltip becomes visible. | |
| 292 helper_->FireTooltipTimer(); | |
| 293 EXPECT_TRUE(helper_->IsTooltipVisible()); | 287 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 294 | 288 |
| 295 // Disable tooltips and check again. | 289 // Disable tooltips and check again. |
| 296 helper_->controller()->SetTooltipsEnabled(false); | 290 helper_->controller()->SetTooltipsEnabled(false); |
| 297 EXPECT_FALSE(helper_->IsTooltipVisible()); | 291 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 298 helper_->FireTooltipTimer(); | 292 helper_->UpdateIfRequired(); |
| 299 EXPECT_FALSE(helper_->IsTooltipVisible()); | 293 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 300 | 294 |
| 301 // Enable tooltips back and check again. | 295 // Enable tooltips back and check again. |
| 302 helper_->controller()->SetTooltipsEnabled(true); | 296 helper_->controller()->SetTooltipsEnabled(true); |
| 303 EXPECT_FALSE(helper_->IsTooltipVisible()); | 297 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 304 helper_->FireTooltipTimer(); | 298 helper_->UpdateIfRequired(); |
| 305 EXPECT_TRUE(helper_->IsTooltipVisible()); | 299 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 306 } | 300 } |
| 307 | 301 |
| 308 // Verifies tooltip isn't shown if tooltip text consists entirely of whitespace. | 302 // Verifies tooltip isn't shown if tooltip text consists entirely of whitespace. |
| 309 TEST_F(TooltipControllerTest, DontShowEmptyTooltips) { | 303 TEST_F(TooltipControllerTest, DontShowEmptyTooltips) { |
| 310 // TODO: these tests use GetContext(). That should go away for aura-mus | 304 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 311 // client. http://crbug.com/663781. | 305 // client. http://crbug.com/663781. |
| 312 if (IsMus()) | 306 if (IsMus()) |
| 313 return; | 307 return; |
| 314 | 308 |
| 315 view_->set_tooltip_text(ASCIIToUTF16(" ")); | 309 view_->set_tooltip_text(ASCIIToUTF16(" ")); |
| 316 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); | 310 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 317 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 311 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 318 | 312 |
| 313 // Mouse event will trigger tooltip update so tooltip becomes visible. |
| 319 generator_->MoveMouseRelativeTo(GetWindow(), view_->bounds().CenterPoint()); | 314 generator_->MoveMouseRelativeTo(GetWindow(), view_->bounds().CenterPoint()); |
| 320 | |
| 321 helper_->FireTooltipTimer(); | |
| 322 EXPECT_FALSE(helper_->IsTooltipVisible()); | 315 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 323 } | 316 } |
| 324 | 317 |
| 325 TEST_F(TooltipControllerTest, TooltipHidesOnKeyPressAndStaysHiddenUntilChange) { | 318 TEST_F(TooltipControllerTest, TooltipHidesOnKeyPressAndStaysHiddenUntilChange) { |
| 326 // TODO: these tests use GetContext(). That should go away for aura-mus | 319 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 327 // client. http://crbug.com/663781. | 320 // client. http://crbug.com/663781. |
| 328 if (IsMus()) | 321 if (IsMus()) |
| 329 return; | 322 return; |
| 330 | 323 |
| 331 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 1")); | 324 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 1")); |
| 332 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); | 325 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 333 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 326 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 334 | 327 |
| 335 TooltipTestView* view2 = PrepareSecondView(); | 328 TooltipTestView* view2 = PrepareSecondView(); |
| 336 view2->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 2")); | 329 view2->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 2")); |
| 337 | 330 |
| 338 aura::Window* window = GetWindow(); | 331 aura::Window* window = GetWindow(); |
| 339 | 332 |
| 340 // Fire tooltip timer so tooltip becomes visible. | 333 // Mouse event will trigger tooltip update so tooltip becomes visible. |
| 341 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); | 334 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); |
| 342 helper_->FireTooltipTimer(); | |
| 343 EXPECT_TRUE(helper_->IsTooltipVisible()); | 335 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 344 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); | 336 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); |
| 345 | 337 |
| 346 generator_->PressKey(ui::VKEY_1, 0); | 338 generator_->PressKey(ui::VKEY_1, 0); |
| 347 EXPECT_FALSE(helper_->IsTooltipVisible()); | 339 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 348 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); | |
| 349 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); | 340 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); |
| 350 | 341 |
| 351 // Moving the mouse inside |view1| should not change the state of the tooltip | 342 // Moving the mouse inside |view1| should not change the state of the tooltip |
| 352 // or the timers. | 343 // or the timers. |
| 353 for (int i = 0; i < 49; i++) { | 344 for (int i = 0; i < 49; i++) { |
| 354 generator_->MoveMouseBy(1, 0); | 345 generator_->MoveMouseBy(1, 0); |
| 355 EXPECT_FALSE(helper_->IsTooltipVisible()); | 346 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 356 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); | |
| 357 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); | 347 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); |
| 358 EXPECT_EQ(window, | 348 EXPECT_EQ(window, |
| 359 GetRootWindow()->GetEventHandlerForPoint( | 349 GetRootWindow()->GetEventHandlerForPoint( |
| 360 generator_->current_location())); | 350 generator_->current_location())); |
| 361 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 1"); | 351 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 1"); |
| 362 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 352 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
| 363 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 353 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 364 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 354 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
| 365 } | 355 } |
| 366 | 356 |
| 367 // Now we move the mouse on to |view2|. It should re-start the tooltip timer. | 357 // Now we move the mouse on to |view2|. It should update the tooltip. |
| 368 generator_->MoveMouseBy(1, 0); | 358 generator_->MoveMouseBy(1, 0); |
| 369 EXPECT_TRUE(helper_->IsTooltipTimerRunning()); | 359 helper_->UpdateIfRequired(); |
| 370 helper_->FireTooltipTimer(); | |
| 371 EXPECT_TRUE(helper_->IsTooltipVisible()); | 360 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 372 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); | 361 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); |
| 373 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 2"); | 362 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 2"); |
| 374 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 363 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
| 375 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 364 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 376 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 365 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
| 377 } | 366 } |
| 378 | 367 |
| 379 TEST_F(TooltipControllerTest, TooltipHidesOnTimeoutAndStaysHiddenUntilChange) { | 368 TEST_F(TooltipControllerTest, TooltipHidesOnTimeoutAndStaysHiddenUntilChange) { |
| 380 // TODO: these tests use GetContext(). That should go away for aura-mus | 369 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 381 // client. http://crbug.com/663781. | 370 // client. http://crbug.com/663781. |
| 382 if (IsMus()) | 371 if (IsMus()) |
| 383 return; | 372 return; |
| 384 | 373 |
| 385 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 1")); | 374 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 1")); |
| 386 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); | 375 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 387 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 376 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 388 | 377 |
| 389 TooltipTestView* view2 = PrepareSecondView(); | 378 TooltipTestView* view2 = PrepareSecondView(); |
| 390 view2->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 2")); | 379 view2->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 2")); |
| 391 | 380 |
| 392 aura::Window* window = GetWindow(); | 381 aura::Window* window = GetWindow(); |
| 393 | 382 |
| 394 // Fire tooltip timer so tooltip becomes visible. | 383 // Update tooltip so tooltip becomes visible. |
| 395 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); | 384 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); |
| 396 helper_->FireTooltipTimer(); | |
| 397 EXPECT_TRUE(helper_->IsTooltipVisible()); | 385 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 398 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); | 386 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); |
| 399 | 387 |
| 400 helper_->FireTooltipShownTimer(); | 388 helper_->FireTooltipShownTimer(); |
| 401 EXPECT_FALSE(helper_->IsTooltipVisible()); | 389 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 402 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); | |
| 403 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); | 390 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); |
| 404 | 391 |
| 405 // Moving the mouse inside |view1| should not change the state of the tooltip | 392 // Moving the mouse inside |view1| should not change the state of the tooltip |
| 406 // or the timers. | 393 // or the timers. |
| 407 for (int i = 0; i < 49; ++i) { | 394 for (int i = 0; i < 49; ++i) { |
| 408 generator_->MoveMouseBy(1, 0); | 395 generator_->MoveMouseBy(1, 0); |
| 409 EXPECT_FALSE(helper_->IsTooltipVisible()); | 396 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 410 EXPECT_FALSE(helper_->IsTooltipTimerRunning()); | |
| 411 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); | 397 EXPECT_FALSE(helper_->IsTooltipShownTimerRunning()); |
| 412 EXPECT_EQ(window, GetRootWindow()->GetEventHandlerForPoint( | 398 EXPECT_EQ(window, GetRootWindow()->GetEventHandlerForPoint( |
| 413 generator_->current_location())); | 399 generator_->current_location())); |
| 414 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 1"); | 400 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 1"); |
| 415 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 401 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
| 416 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 402 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 417 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 403 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
| 418 } | 404 } |
| 419 | 405 |
| 420 // Now we move the mouse on to |view2|. It should re-start the tooltip timer. | 406 // Now we move the mouse on to |view2|. It should update the tooltip. |
| 421 generator_->MoveMouseBy(1, 0); | 407 generator_->MoveMouseBy(1, 0); |
| 422 EXPECT_TRUE(helper_->IsTooltipTimerRunning()); | 408 helper_->UpdateIfRequired(); |
| 423 helper_->FireTooltipTimer(); | |
| 424 EXPECT_TRUE(helper_->IsTooltipVisible()); | 409 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 425 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); | 410 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); |
| 426 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 2"); | 411 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 2"); |
| 427 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 412 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
| 428 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 413 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 429 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 414 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
| 430 } | 415 } |
| 431 | 416 |
| 432 // Verifies a mouse exit event hides the tooltips. | 417 // Verifies a mouse exit event hides the tooltips. |
| 433 TEST_F(TooltipControllerTest, HideOnExit) { | 418 TEST_F(TooltipControllerTest, HideOnExit) { |
| 434 // TODO: these tests use GetContext(). That should go away for aura-mus | 419 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 435 // client. http://crbug.com/663781. | 420 // client. http://crbug.com/663781. |
| 436 if (IsMus()) | 421 if (IsMus()) |
| 437 return; | 422 return; |
| 438 | 423 |
| 439 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 424 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
| 440 generator_->MoveMouseToCenterOf(GetWindow()); | 425 generator_->MoveMouseToCenterOf(GetWindow()); |
| 441 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 426 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
| 442 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 427 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
| 443 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); | 428 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 444 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 429 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
| 445 | 430 |
| 446 // Fire tooltip timer so tooltip becomes visible. | |
| 447 helper_->FireTooltipTimer(); | |
| 448 | |
| 449 EXPECT_TRUE(helper_->IsTooltipVisible()); | 431 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 450 generator_->SendMouseExit(); | 432 generator_->SendMouseExit(); |
| 451 EXPECT_FALSE(helper_->IsTooltipVisible()); | 433 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 452 } | 434 } |
| 453 | 435 |
| 454 TEST_F(TooltipControllerTest, ReshowOnClickAfterEnterExit) { | 436 TEST_F(TooltipControllerTest, ReshowOnClickAfterEnterExit) { |
| 455 // TODO: these tests use GetContext(). That should go away for aura-mus | 437 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 456 // client. http://crbug.com/663781. | 438 // client. http://crbug.com/663781. |
| 457 if (IsMus()) | 439 if (IsMus()) |
| 458 return; | 440 return; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 469 v2->SetBoundsRect(view_bounds); | 451 v2->SetBoundsRect(view_bounds); |
| 470 const base::string16 v1_tt(ASCIIToUTF16("v1")); | 452 const base::string16 v1_tt(ASCIIToUTF16("v1")); |
| 471 const base::string16 v2_tt(ASCIIToUTF16("v2")); | 453 const base::string16 v2_tt(ASCIIToUTF16("v2")); |
| 472 v1->set_tooltip_text(v1_tt); | 454 v1->set_tooltip_text(v1_tt); |
| 473 v2->set_tooltip_text(v2_tt); | 455 v2->set_tooltip_text(v2_tt); |
| 474 | 456 |
| 475 gfx::Point v1_point(1, 1); | 457 gfx::Point v1_point(1, 1); |
| 476 View::ConvertPointToWidget(v1, &v1_point); | 458 View::ConvertPointToWidget(v1, &v1_point); |
| 477 generator_->MoveMouseRelativeTo(GetWindow(), v1_point); | 459 generator_->MoveMouseRelativeTo(GetWindow(), v1_point); |
| 478 | 460 |
| 479 // Fire tooltip timer so tooltip becomes visible. | |
| 480 helper_->FireTooltipTimer(); | |
| 481 EXPECT_TRUE(helper_->IsTooltipVisible()); | 461 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 482 EXPECT_EQ(v1_tt, helper_->GetTooltipText()); | 462 EXPECT_EQ(v1_tt, helper_->GetTooltipText()); |
| 483 | 463 |
| 484 // Press the mouse, move to v2 and back to v1. | 464 // Press the mouse, move to v2 and back to v1. |
| 485 generator_->ClickLeftButton(); | 465 generator_->ClickLeftButton(); |
| 486 | 466 |
| 487 gfx::Point v2_point(1, 1); | 467 gfx::Point v2_point(1, 1); |
| 488 View::ConvertPointToWidget(v2, &v2_point); | 468 View::ConvertPointToWidget(v2, &v2_point); |
| 489 generator_->MoveMouseRelativeTo(GetWindow(), v2_point); | 469 generator_->MoveMouseRelativeTo(GetWindow(), v2_point); |
| 490 generator_->MoveMouseRelativeTo(GetWindow(), v1_point); | 470 generator_->MoveMouseRelativeTo(GetWindow(), v1_point); |
| 491 | 471 |
| 492 helper_->FireTooltipTimer(); | |
| 493 EXPECT_TRUE(helper_->IsTooltipVisible()); | 472 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 494 EXPECT_EQ(v1_tt, helper_->GetTooltipText()); | 473 EXPECT_EQ(v1_tt, helper_->GetTooltipText()); |
| 495 } | 474 } |
| 496 | 475 |
| 497 namespace { | 476 namespace { |
| 498 | 477 |
| 499 // Returns the index of |window| in its parent's children. | 478 // Returns the index of |window| in its parent's children. |
| 500 int IndexInParent(const aura::Window* window) { | 479 int IndexInParent(const aura::Window* window) { |
| 501 aura::Window::Windows::const_iterator i = | 480 aura::Window::Windows::const_iterator i = |
| 502 std::find(window->parent()->children().begin(), | 481 std::find(window->parent()->children().begin(), |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 547 | 526 |
| 548 view_->GetWidget()->SetCapture(view_); | 527 view_->GetWidget()->SetCapture(view_); |
| 549 RunPendingMessages(); | 528 RunPendingMessages(); |
| 550 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 529 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
| 551 generator_->MoveMouseToCenterOf(GetWindow()); | 530 generator_->MoveMouseToCenterOf(GetWindow()); |
| 552 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 531 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
| 553 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 532 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
| 554 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); | 533 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 555 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 534 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
| 556 | 535 |
| 557 // Fire tooltip timer so tooltip becomes visible. | |
| 558 helper_->FireTooltipTimer(); | |
| 559 | |
| 560 EXPECT_TRUE(helper_->IsTooltipVisible()); | 536 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 561 view_->GetWidget()->ReleaseCapture(); | 537 view_->GetWidget()->ReleaseCapture(); |
| 562 EXPECT_FALSE(helper_->IsTooltipVisible()); | 538 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 563 EXPECT_TRUE(helper_->GetTooltipWindow() == NULL); | 539 EXPECT_TRUE(helper_->GetTooltipWindow() == NULL); |
| 564 } | 540 } |
| 565 | 541 |
| 566 // Disabled on linux as DesktopScreenX11::GetWindowAtScreenPoint() doesn't | 542 // Disabled on linux as DesktopScreenX11::GetWindowAtScreenPoint() doesn't |
| 567 // consider z-order. | 543 // consider z-order. |
| 568 // Disabled on Windows due to failing bots. http://crbug.com/604479 | 544 // Disabled on Windows due to failing bots. http://crbug.com/604479 |
| 569 #if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_WIN) | 545 #if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_WIN) |
| (...skipping 25 matching lines...) Expand all Loading... |
| 595 | 571 |
| 596 widget_->SetCapture(view_); | 572 widget_->SetCapture(view_); |
| 597 EXPECT_TRUE(widget_->HasCapture()); | 573 EXPECT_TRUE(widget_->HasCapture()); |
| 598 widget2->Show(); | 574 widget2->Show(); |
| 599 EXPECT_GE(IndexInParent(widget2->GetNativeWindow()), | 575 EXPECT_GE(IndexInParent(widget2->GetNativeWindow()), |
| 600 IndexInParent(widget_->GetNativeWindow())); | 576 IndexInParent(widget_->GetNativeWindow())); |
| 601 | 577 |
| 602 generator_->MoveMouseRelativeTo(widget_->GetNativeWindow(), | 578 generator_->MoveMouseRelativeTo(widget_->GetNativeWindow(), |
| 603 view_->bounds().CenterPoint()); | 579 view_->bounds().CenterPoint()); |
| 604 | 580 |
| 605 EXPECT_TRUE(helper_->IsTooltipTimerRunning()); | |
| 606 helper_->FireTooltipTimer(); | |
| 607 // Even though the mouse is over a window with a tooltip it shouldn't be | 581 // Even though the mouse is over a window with a tooltip it shouldn't be |
| 608 // picked up because the windows don't have the same value for | 582 // picked up because the windows don't have the same value for |
| 609 // |TooltipManager::kGroupingPropertyKey|. | 583 // |TooltipManager::kGroupingPropertyKey|. |
| 610 EXPECT_TRUE(helper_->GetTooltipText().empty()); | 584 EXPECT_TRUE(helper_->GetTooltipText().empty()); |
| 611 | 585 |
| 612 // Now make both the windows have same transient value for | 586 // Now make both the windows have same transient value for |
| 613 // kGroupingPropertyKey. In this case the tooltip should be picked up from | 587 // kGroupingPropertyKey. In this case the tooltip should be picked up from |
| 614 // |widget2| (because the mouse is over it). | 588 // |widget2| (because the mouse is over it). |
| 615 const int grouping_key = 1; | 589 const int grouping_key = 1; |
| 616 widget_->SetNativeWindowProperty(TooltipManager::kGroupingPropertyKey, | 590 widget_->SetNativeWindowProperty(TooltipManager::kGroupingPropertyKey, |
| 617 reinterpret_cast<void*>(grouping_key)); | 591 reinterpret_cast<void*>(grouping_key)); |
| 618 widget2->SetNativeWindowProperty(TooltipManager::kGroupingPropertyKey, | 592 widget2->SetNativeWindowProperty(TooltipManager::kGroupingPropertyKey, |
| 619 reinterpret_cast<void*>(grouping_key)); | 593 reinterpret_cast<void*>(grouping_key)); |
| 620 generator_->MoveMouseBy(1, 10); | 594 generator_->MoveMouseBy(1, 10); |
| 621 EXPECT_TRUE(helper_->IsTooltipTimerRunning()); | |
| 622 helper_->FireTooltipTimer(); | |
| 623 EXPECT_EQ(tooltip_text2, helper_->GetTooltipText()); | 595 EXPECT_EQ(tooltip_text2, helper_->GetTooltipText()); |
| 624 | 596 |
| 625 widget2.reset(); | 597 widget2.reset(); |
| 626 } | 598 } |
| 627 | 599 |
| 628 namespace { | 600 namespace { |
| 629 | 601 |
| 630 class TestTooltip : public Tooltip { | 602 class TestTooltip : public Tooltip { |
| 631 public: | 603 public: |
| 632 TestTooltip() : is_visible_(false) {} | 604 TestTooltip() : is_visible_(false) {} |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 698 }; | 670 }; |
| 699 | 671 |
| 700 TEST_F(TooltipControllerTest2, VerifyLeadingTrailingWhitespaceStripped) { | 672 TEST_F(TooltipControllerTest2, VerifyLeadingTrailingWhitespaceStripped) { |
| 701 aura::test::TestWindowDelegate test_delegate; | 673 aura::test::TestWindowDelegate test_delegate; |
| 702 std::unique_ptr<aura::Window> window( | 674 std::unique_ptr<aura::Window> window( |
| 703 CreateNormalWindow(100, root_window(), &test_delegate)); | 675 CreateNormalWindow(100, root_window(), &test_delegate)); |
| 704 window->SetBounds(gfx::Rect(0, 0, 300, 300)); | 676 window->SetBounds(gfx::Rect(0, 0, 300, 300)); |
| 705 base::string16 tooltip_text(ASCIIToUTF16(" \nx ")); | 677 base::string16 tooltip_text(ASCIIToUTF16(" \nx ")); |
| 706 aura::client::SetTooltipText(window.get(), &tooltip_text); | 678 aura::client::SetTooltipText(window.get(), &tooltip_text); |
| 707 generator_->MoveMouseToCenterOf(window.get()); | 679 generator_->MoveMouseToCenterOf(window.get()); |
| 708 helper_->FireTooltipTimer(); | |
| 709 EXPECT_EQ(ASCIIToUTF16("x"), test_tooltip_->tooltip_text()); | 680 EXPECT_EQ(ASCIIToUTF16("x"), test_tooltip_->tooltip_text()); |
| 710 } | 681 } |
| 711 | 682 |
| 712 // Verifies that tooltip is hidden and tooltip window closed upon cancel mode. | 683 // Verifies that tooltip is hidden and tooltip window closed upon cancel mode. |
| 713 TEST_F(TooltipControllerTest2, CloseOnCancelMode) { | 684 TEST_F(TooltipControllerTest2, CloseOnCancelMode) { |
| 714 aura::test::TestWindowDelegate test_delegate; | 685 aura::test::TestWindowDelegate test_delegate; |
| 715 std::unique_ptr<aura::Window> window( | 686 std::unique_ptr<aura::Window> window( |
| 716 CreateNormalWindow(100, root_window(), &test_delegate)); | 687 CreateNormalWindow(100, root_window(), &test_delegate)); |
| 717 window->SetBounds(gfx::Rect(0, 0, 300, 300)); | 688 window->SetBounds(gfx::Rect(0, 0, 300, 300)); |
| 718 base::string16 tooltip_text(ASCIIToUTF16("Tooltip Text")); | 689 base::string16 tooltip_text(ASCIIToUTF16("Tooltip Text")); |
| 719 aura::client::SetTooltipText(window.get(), &tooltip_text); | 690 aura::client::SetTooltipText(window.get(), &tooltip_text); |
| 720 generator_->MoveMouseToCenterOf(window.get()); | 691 generator_->MoveMouseToCenterOf(window.get()); |
| 721 | 692 |
| 722 // Fire tooltip timer so tooltip becomes visible. | |
| 723 helper_->FireTooltipTimer(); | |
| 724 EXPECT_TRUE(helper_->IsTooltipVisible()); | 693 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 725 | 694 |
| 726 // Send OnCancelMode event and verify that tooltip becomes invisible and | 695 // Send OnCancelMode event and verify that tooltip becomes invisible and |
| 727 // the tooltip window is closed. | 696 // the tooltip window is closed. |
| 728 ui::CancelModeEvent event; | 697 ui::CancelModeEvent event; |
| 729 helper_->controller()->OnCancelMode(&event); | 698 helper_->controller()->OnCancelMode(&event); |
| 730 EXPECT_FALSE(helper_->IsTooltipVisible()); | 699 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 731 EXPECT_TRUE(helper_->GetTooltipWindow() == NULL); | 700 EXPECT_TRUE(helper_->GetTooltipWindow() == NULL); |
| 732 } | 701 } |
| 733 | 702 |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 842 v1->SetBoundsRect(view_bounds); | 811 v1->SetBoundsRect(view_bounds); |
| 843 v1_1->SetBounds(0, 0, 3, 3); | 812 v1_1->SetBounds(0, 0, 3, 3); |
| 844 view_bounds.set_y(view_bounds.height()); | 813 view_bounds.set_y(view_bounds.height()); |
| 845 v2->SetBoundsRect(view_bounds); | 814 v2->SetBoundsRect(view_bounds); |
| 846 v2_2->SetBounds(view_bounds.width() - 3, view_bounds.height() - 3, 3, 3); | 815 v2_2->SetBounds(view_bounds.width() - 3, view_bounds.height() - 3, 3, 3); |
| 847 v2_1->SetBounds(0, 0, 3, 3); | 816 v2_1->SetBounds(0, 0, 3, 3); |
| 848 | 817 |
| 849 // Test whether a toolbar appears on v1 | 818 // Test whether a toolbar appears on v1 |
| 850 gfx::Point center = v1->bounds().CenterPoint(); | 819 gfx::Point center = v1->bounds().CenterPoint(); |
| 851 generator_->MoveMouseRelativeTo(GetWindow(), center); | 820 generator_->MoveMouseRelativeTo(GetWindow(), center); |
| 852 helper_->FireTooltipTimer(); | |
| 853 EXPECT_TRUE(helper_->IsTooltipVisible()); | 821 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 854 EXPECT_EQ(reference_string, helper_->GetTooltipText()); | 822 EXPECT_EQ(reference_string, helper_->GetTooltipText()); |
| 855 gfx::Point tooltip_bounds1 = test_tooltip_->location(); | 823 gfx::Point tooltip_bounds1 = test_tooltip_->location(); |
| 856 | 824 |
| 857 // Test whether the toolbar changes position on mouse over v2 | 825 // Test whether the toolbar changes position on mouse over v2 |
| 858 center = v2->bounds().CenterPoint(); | 826 center = v2->bounds().CenterPoint(); |
| 859 generator_->MoveMouseRelativeTo(GetWindow(), center); | 827 generator_->MoveMouseRelativeTo(GetWindow(), center); |
| 860 helper_->FireTooltipTimer(); | |
| 861 EXPECT_TRUE(helper_->IsTooltipVisible()); | 828 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 862 EXPECT_EQ(reference_string, helper_->GetTooltipText()); | 829 EXPECT_EQ(reference_string, helper_->GetTooltipText()); |
| 863 gfx::Point tooltip_bounds2 = test_tooltip_->location(); | 830 gfx::Point tooltip_bounds2 = test_tooltip_->location(); |
| 864 | 831 |
| 865 EXPECT_NE(tooltip_bounds1, gfx::Point()); | 832 EXPECT_NE(tooltip_bounds1, gfx::Point()); |
| 866 EXPECT_NE(tooltip_bounds2, gfx::Point()); | 833 EXPECT_NE(tooltip_bounds2, gfx::Point()); |
| 867 EXPECT_NE(tooltip_bounds1, tooltip_bounds2); | 834 EXPECT_NE(tooltip_bounds1, tooltip_bounds2); |
| 868 | 835 |
| 869 // Test if the toolbar does not change position on encountering a contained | 836 // Test if the toolbar does not change position on encountering a contained |
| 870 // view with the same tooltip text | 837 // view with the same tooltip text |
| 871 center = v2_1->GetLocalBounds().CenterPoint(); | 838 center = v2_1->GetLocalBounds().CenterPoint(); |
| 872 views::View::ConvertPointToTarget(v2_1, view_, ¢er); | 839 views::View::ConvertPointToTarget(v2_1, view_, ¢er); |
| 873 generator_->MoveMouseRelativeTo(GetWindow(), center); | 840 generator_->MoveMouseRelativeTo(GetWindow(), center); |
| 874 helper_->FireTooltipTimer(); | |
| 875 gfx::Point tooltip_bounds2_1 = test_tooltip_->location(); | 841 gfx::Point tooltip_bounds2_1 = test_tooltip_->location(); |
| 876 | 842 |
| 877 EXPECT_NE(tooltip_bounds2, tooltip_bounds2_1); | 843 EXPECT_NE(tooltip_bounds2, tooltip_bounds2_1); |
| 878 EXPECT_TRUE(helper_->IsTooltipVisible()); | 844 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 879 EXPECT_EQ(reference_string, helper_->GetTooltipText()); | 845 EXPECT_EQ(reference_string, helper_->GetTooltipText()); |
| 880 | 846 |
| 881 // Test if the toolbar changes position on encountering a contained | 847 // Test if the toolbar changes position on encountering a contained |
| 882 // view with a different tooltip text | 848 // view with a different tooltip text |
| 883 center = v2_2->GetLocalBounds().CenterPoint(); | 849 center = v2_2->GetLocalBounds().CenterPoint(); |
| 884 views::View::ConvertPointToTarget(v2_2, view_, ¢er); | 850 views::View::ConvertPointToTarget(v2_2, view_, ¢er); |
| 885 generator_->MoveMouseRelativeTo(GetWindow(), center); | 851 generator_->MoveMouseRelativeTo(GetWindow(), center); |
| 886 helper_->FireTooltipTimer(); | |
| 887 gfx::Point tooltip_bounds2_2 = test_tooltip_->location(); | 852 gfx::Point tooltip_bounds2_2 = test_tooltip_->location(); |
| 888 | 853 |
| 889 EXPECT_NE(tooltip_bounds2_1, tooltip_bounds2_2); | 854 EXPECT_NE(tooltip_bounds2_1, tooltip_bounds2_2); |
| 890 EXPECT_TRUE(helper_->IsTooltipVisible()); | 855 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 891 EXPECT_EQ(alternative_string, helper_->GetTooltipText()); | 856 EXPECT_EQ(alternative_string, helper_->GetTooltipText()); |
| 892 | 857 |
| 893 // Test if moving from a view that is contained by a larger view, both with | 858 // Test if moving from a view that is contained by a larger view, both with |
| 894 // the same tooltip text, does not change tooltip's position. | 859 // the same tooltip text, does not change tooltip's position. |
| 895 center = v1_1->GetLocalBounds().CenterPoint(); | 860 center = v1_1->GetLocalBounds().CenterPoint(); |
| 896 views::View::ConvertPointToTarget(v1_1, view_, ¢er); | 861 views::View::ConvertPointToTarget(v1_1, view_, ¢er); |
| 897 generator_->MoveMouseRelativeTo(GetWindow(), center); | 862 generator_->MoveMouseRelativeTo(GetWindow(), center); |
| 898 helper_->FireTooltipTimer(); | |
| 899 gfx::Point tooltip_bounds1_1 = test_tooltip_->location(); | 863 gfx::Point tooltip_bounds1_1 = test_tooltip_->location(); |
| 900 | 864 |
| 901 EXPECT_TRUE(helper_->IsTooltipVisible()); | 865 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 902 EXPECT_EQ(reference_string, helper_->GetTooltipText()); | 866 EXPECT_EQ(reference_string, helper_->GetTooltipText()); |
| 903 | 867 |
| 904 center = v1->bounds().CenterPoint(); | 868 center = v1->bounds().CenterPoint(); |
| 905 generator_->MoveMouseRelativeTo(GetWindow(), center); | 869 generator_->MoveMouseRelativeTo(GetWindow(), center); |
| 906 helper_->FireTooltipTimer(); | |
| 907 tooltip_bounds1 = test_tooltip_->location(); | 870 tooltip_bounds1 = test_tooltip_->location(); |
| 908 | 871 |
| 909 EXPECT_NE(tooltip_bounds1_1, tooltip_bounds1); | 872 EXPECT_NE(tooltip_bounds1_1, tooltip_bounds1); |
| 910 EXPECT_EQ(reference_string, helper_->GetTooltipText()); | 873 EXPECT_EQ(reference_string, helper_->GetTooltipText()); |
| 911 } | 874 } |
| 912 | 875 |
| 913 } // namespace test | 876 } // namespace test |
| 914 } // namespace corewm | 877 } // namespace corewm |
| 915 } // namespace views | 878 } // namespace views |
| OLD | NEW |