| 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 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 class TooltipControllerTest : public ViewsTestBase { | 81 class TooltipControllerTest : public ViewsTestBase { |
| 82 public: | 82 public: |
| 83 TooltipControllerTest() : view_(NULL) {} | 83 TooltipControllerTest() : view_(NULL) {} |
| 84 ~TooltipControllerTest() override {} | 84 ~TooltipControllerTest() override {} |
| 85 | 85 |
| 86 void SetUp() override { | 86 void SetUp() override { |
| 87 ViewsTestBase::SetUp(); | 87 ViewsTestBase::SetUp(); |
| 88 | 88 |
| 89 // TODO: these tests use GetContext(). That should go away for aura-mus | 89 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 90 // client. http://crbug.com/663781. | 90 // client. http://crbug.com/663781. |
| 91 if (IsAuraMusClient()) | 91 if (IsMus()) |
| 92 return; | 92 return; |
| 93 | 93 |
| 94 aura::Window* root_window = GetContext(); | 94 aura::Window* root_window = GetContext(); |
| 95 | 95 |
| 96 new wm::DefaultActivationClient(root_window); | 96 new wm::DefaultActivationClient(root_window); |
| 97 #if defined(OS_CHROMEOS) | 97 #if defined(OS_CHROMEOS) |
| 98 tooltip_aura_ = new views::corewm::TooltipAura(); | 98 tooltip_aura_ = new views::corewm::TooltipAura(); |
| 99 controller_.reset(new TooltipController( | 99 controller_.reset(new TooltipController( |
| 100 std::unique_ptr<views::corewm::Tooltip>(tooltip_aura_))); | 100 std::unique_ptr<views::corewm::Tooltip>(tooltip_aura_))); |
| 101 root_window->AddPreTargetHandler(controller_.get()); | 101 root_window->AddPreTargetHandler(controller_.get()); |
| 102 SetTooltipClient(root_window, controller_.get()); | 102 SetTooltipClient(root_window, controller_.get()); |
| 103 #endif | 103 #endif |
| 104 widget_.reset(CreateWidget(root_window)); | 104 widget_.reset(CreateWidget(root_window)); |
| 105 widget_->SetContentsView(new View); | 105 widget_->SetContentsView(new View); |
| 106 view_ = new TooltipTestView; | 106 view_ = new TooltipTestView; |
| 107 widget_->GetContentsView()->AddChildView(view_); | 107 widget_->GetContentsView()->AddChildView(view_); |
| 108 view_->SetBoundsRect(widget_->GetContentsView()->GetLocalBounds()); | 108 view_->SetBoundsRect(widget_->GetContentsView()->GetLocalBounds()); |
| 109 helper_.reset(new TooltipControllerTestHelper( | 109 helper_.reset(new TooltipControllerTestHelper( |
| 110 GetController(widget_.get()))); | 110 GetController(widget_.get()))); |
| 111 generator_.reset(new ui::test::EventGenerator(GetRootWindow())); | 111 generator_.reset(new ui::test::EventGenerator(GetRootWindow())); |
| 112 } | 112 } |
| 113 | 113 |
| 114 void TearDown() override { | 114 void TearDown() override { |
| 115 if (!IsAuraMusClient()) { | 115 if (!IsMus()) { |
| 116 #if defined(OS_CHROMEOS) | 116 #if defined(OS_CHROMEOS) |
| 117 aura::Window* root_window = GetContext(); | 117 aura::Window* root_window = GetContext(); |
| 118 root_window->RemovePreTargetHandler(controller_.get()); | 118 root_window->RemovePreTargetHandler(controller_.get()); |
| 119 aura::client::SetTooltipClient(root_window, NULL); | 119 aura::client::SetTooltipClient(root_window, NULL); |
| 120 controller_.reset(); | 120 controller_.reset(); |
| 121 #endif | 121 #endif |
| 122 generator_.reset(); | 122 generator_.reset(); |
| 123 helper_.reset(); | 123 helper_.reset(); |
| 124 widget_.reset(); | 124 widget_.reset(); |
| 125 } | 125 } |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 174 #if defined(OS_WIN) | 174 #if defined(OS_WIN) |
| 175 ui::ScopedOleInitializer ole_initializer_; | 175 ui::ScopedOleInitializer ole_initializer_; |
| 176 #endif | 176 #endif |
| 177 | 177 |
| 178 DISALLOW_COPY_AND_ASSIGN(TooltipControllerTest); | 178 DISALLOW_COPY_AND_ASSIGN(TooltipControllerTest); |
| 179 }; | 179 }; |
| 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 (IsAuraMusClient()) | 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 generator_->MoveMouseToCenterOf(GetWindow()); | 190 generator_->MoveMouseToCenterOf(GetWindow()); |
| 191 | 191 |
| 192 EXPECT_EQ(GetWindow(), GetRootWindow()->GetEventHandlerForPoint( | 192 EXPECT_EQ(GetWindow(), GetRootWindow()->GetEventHandlerForPoint( |
| 193 generator_->current_location())); | 193 generator_->current_location())); |
| 194 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 194 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
| 195 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 195 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
| 196 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); | 196 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 197 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 197 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
| 198 | 198 |
| 199 // Fire tooltip timer so tooltip becomes visible. | 199 // Fire tooltip timer so tooltip becomes visible. |
| 200 helper_->FireTooltipTimer(); | 200 helper_->FireTooltipTimer(); |
| 201 | 201 |
| 202 EXPECT_TRUE(helper_->IsTooltipVisible()); | 202 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 203 generator_->MoveMouseBy(1, 0); | 203 generator_->MoveMouseBy(1, 0); |
| 204 | 204 |
| 205 EXPECT_TRUE(helper_->IsTooltipVisible()); | 205 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 206 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 206 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
| 207 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 207 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 208 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 208 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
| 209 } | 209 } |
| 210 | 210 |
| 211 #if defined(OS_CHROMEOS) | 211 #if defined(OS_CHROMEOS) |
| 212 // crbug.com/664370. | 212 // crbug.com/664370. |
| 213 TEST_F(TooltipControllerTest, MaxWidth) { | 213 TEST_F(TooltipControllerTest, MaxWidth) { |
| 214 // TODO: these tests use GetContext(). That should go away for aura-mus | 214 // TODO: these tests use GetContext(). That should go away for mus client. |
| 215 // client. http://crbug.com/663781. | 215 // http://crbug.com/663781. |
| 216 if (IsAuraMusClient() || IsMus()) | 216 if (IsMus()) |
| 217 return; | 217 return; |
| 218 | 218 |
| 219 base::string16 text = base::ASCIIToUTF16( | 219 base::string16 text = base::ASCIIToUTF16( |
| 220 "Really really realy long long long long long tooltips that exceeds max " | 220 "Really really realy long long long long long tooltips that exceeds max " |
| 221 "width"); | 221 "width"); |
| 222 view_->set_tooltip_text(text); | 222 view_->set_tooltip_text(text); |
| 223 gfx::Point center = GetWindow()->bounds().CenterPoint(); | 223 gfx::Point center = GetWindow()->bounds().CenterPoint(); |
| 224 generator_->MoveMouseTo(center); | 224 generator_->MoveMouseTo(center); |
| 225 | 225 |
| 226 // Fire tooltip timer so tooltip becomes visible. | 226 // Fire tooltip timer so tooltip becomes visible. |
| 227 helper_->FireTooltipTimer(); | 227 helper_->FireTooltipTimer(); |
| 228 | 228 |
| 229 EXPECT_TRUE(helper_->IsTooltipVisible()); | 229 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 230 gfx::RenderText* render_text = | 230 gfx::RenderText* render_text = |
| 231 test::TooltipAuraTestApi(tooltip_aura_).GetRenderText(); | 231 test::TooltipAuraTestApi(tooltip_aura_).GetRenderText(); |
| 232 | 232 |
| 233 int max = helper_->controller()->GetMaxWidth(center); | 233 int max = helper_->controller()->GetMaxWidth(center); |
| 234 EXPECT_EQ(max, render_text->display_rect().width()); | 234 EXPECT_EQ(max, render_text->display_rect().width()); |
| 235 } | 235 } |
| 236 #endif | 236 #endif |
| 237 | 237 |
| 238 TEST_F(TooltipControllerTest, TooltipsInMultipleViews) { | 238 TEST_F(TooltipControllerTest, TooltipsInMultipleViews) { |
| 239 // TODO: these tests use GetContext(). That should go away for aura-mus | 239 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 240 // client. http://crbug.com/663781. | 240 // client. http://crbug.com/663781. |
| 241 if (IsAuraMusClient()) | 241 if (IsMus()) |
| 242 return; | 242 return; |
| 243 | 243 |
| 244 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 244 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
| 245 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); | 245 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 246 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 246 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 247 | 247 |
| 248 PrepareSecondView(); | 248 PrepareSecondView(); |
| 249 aura::Window* window = GetWindow(); | 249 aura::Window* window = GetWindow(); |
| 250 aura::Window* root_window = GetRootWindow(); | 250 aura::Window* root_window = GetRootWindow(); |
| 251 | 251 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 271 base::string16 expected_tooltip; // = "" | 271 base::string16 expected_tooltip; // = "" |
| 272 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 272 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
| 273 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 273 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 274 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 274 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
| 275 } | 275 } |
| 276 } | 276 } |
| 277 | 277 |
| 278 TEST_F(TooltipControllerTest, EnableOrDisableTooltips) { | 278 TEST_F(TooltipControllerTest, EnableOrDisableTooltips) { |
| 279 // TODO: these tests use GetContext(). That should go away for aura-mus | 279 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 280 // client. http://crbug.com/663781. | 280 // client. http://crbug.com/663781. |
| 281 if (IsAuraMusClient()) | 281 if (IsMus()) |
| 282 return; | 282 return; |
| 283 | 283 |
| 284 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 284 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
| 285 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); | 285 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 286 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 286 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 287 | 287 |
| 288 generator_->MoveMouseRelativeTo(GetWindow(), view_->bounds().CenterPoint()); | 288 generator_->MoveMouseRelativeTo(GetWindow(), view_->bounds().CenterPoint()); |
| 289 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 289 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
| 290 | 290 |
| 291 // Fire tooltip timer so tooltip becomes visible. | 291 // Fire tooltip timer so tooltip becomes visible. |
| (...skipping 10 matching lines...) Expand all Loading... |
| 302 helper_->controller()->SetTooltipsEnabled(true); | 302 helper_->controller()->SetTooltipsEnabled(true); |
| 303 EXPECT_FALSE(helper_->IsTooltipVisible()); | 303 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 304 helper_->FireTooltipTimer(); | 304 helper_->FireTooltipTimer(); |
| 305 EXPECT_TRUE(helper_->IsTooltipVisible()); | 305 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 306 } | 306 } |
| 307 | 307 |
| 308 // Verifies tooltip isn't shown if tooltip text consists entirely of whitespace. | 308 // Verifies tooltip isn't shown if tooltip text consists entirely of whitespace. |
| 309 TEST_F(TooltipControllerTest, DontShowEmptyTooltips) { | 309 TEST_F(TooltipControllerTest, DontShowEmptyTooltips) { |
| 310 // TODO: these tests use GetContext(). That should go away for aura-mus | 310 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 311 // client. http://crbug.com/663781. | 311 // client. http://crbug.com/663781. |
| 312 if (IsAuraMusClient()) | 312 if (IsMus()) |
| 313 return; | 313 return; |
| 314 | 314 |
| 315 view_->set_tooltip_text(ASCIIToUTF16(" ")); | 315 view_->set_tooltip_text(ASCIIToUTF16(" ")); |
| 316 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); | 316 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 317 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 317 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 318 | 318 |
| 319 generator_->MoveMouseRelativeTo(GetWindow(), view_->bounds().CenterPoint()); | 319 generator_->MoveMouseRelativeTo(GetWindow(), view_->bounds().CenterPoint()); |
| 320 | 320 |
| 321 helper_->FireTooltipTimer(); | 321 helper_->FireTooltipTimer(); |
| 322 EXPECT_FALSE(helper_->IsTooltipVisible()); | 322 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 323 } | 323 } |
| 324 | 324 |
| 325 TEST_F(TooltipControllerTest, TooltipHidesOnKeyPressAndStaysHiddenUntilChange) { | 325 TEST_F(TooltipControllerTest, TooltipHidesOnKeyPressAndStaysHiddenUntilChange) { |
| 326 // TODO: these tests use GetContext(). That should go away for aura-mus | 326 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 327 // client. http://crbug.com/663781. | 327 // client. http://crbug.com/663781. |
| 328 if (IsAuraMusClient()) | 328 if (IsMus()) |
| 329 return; | 329 return; |
| 330 | 330 |
| 331 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 1")); | 331 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 1")); |
| 332 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); | 332 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 333 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 333 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 334 | 334 |
| 335 TooltipTestView* view2 = PrepareSecondView(); | 335 TooltipTestView* view2 = PrepareSecondView(); |
| 336 view2->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 2")); | 336 view2->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 2")); |
| 337 | 337 |
| 338 aura::Window* window = GetWindow(); | 338 aura::Window* window = GetWindow(); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 372 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); | 372 EXPECT_TRUE(helper_->IsTooltipShownTimerRunning()); |
| 373 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 2"); | 373 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 2"); |
| 374 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 374 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
| 375 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 375 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 376 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 376 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
| 377 } | 377 } |
| 378 | 378 |
| 379 TEST_F(TooltipControllerTest, TooltipHidesOnTimeoutAndStaysHiddenUntilChange) { | 379 TEST_F(TooltipControllerTest, TooltipHidesOnTimeoutAndStaysHiddenUntilChange) { |
| 380 // TODO: these tests use GetContext(). That should go away for aura-mus | 380 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 381 // client. http://crbug.com/663781. | 381 // client. http://crbug.com/663781. |
| 382 if (IsAuraMusClient()) | 382 if (IsMus()) |
| 383 return; | 383 return; |
| 384 | 384 |
| 385 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 1")); | 385 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 1")); |
| 386 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); | 386 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 387 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 387 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 388 | 388 |
| 389 TooltipTestView* view2 = PrepareSecondView(); | 389 TooltipTestView* view2 = PrepareSecondView(); |
| 390 view2->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 2")); | 390 view2->set_tooltip_text(ASCIIToUTF16("Tooltip Text for view 2")); |
| 391 | 391 |
| 392 aura::Window* window = GetWindow(); | 392 aura::Window* window = GetWindow(); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 426 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 2"); | 426 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text for view 2"); |
| 427 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 427 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
| 428 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 428 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 429 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 429 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
| 430 } | 430 } |
| 431 | 431 |
| 432 // Verifies a mouse exit event hides the tooltips. | 432 // Verifies a mouse exit event hides the tooltips. |
| 433 TEST_F(TooltipControllerTest, HideOnExit) { | 433 TEST_F(TooltipControllerTest, HideOnExit) { |
| 434 // TODO: these tests use GetContext(). That should go away for aura-mus | 434 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 435 // client. http://crbug.com/663781. | 435 // client. http://crbug.com/663781. |
| 436 if (IsAuraMusClient()) | 436 if (IsMus()) |
| 437 return; | 437 return; |
| 438 | 438 |
| 439 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 439 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
| 440 generator_->MoveMouseToCenterOf(GetWindow()); | 440 generator_->MoveMouseToCenterOf(GetWindow()); |
| 441 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 441 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
| 442 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 442 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
| 443 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); | 443 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 444 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 444 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
| 445 | 445 |
| 446 // Fire tooltip timer so tooltip becomes visible. | 446 // Fire tooltip timer so tooltip becomes visible. |
| 447 helper_->FireTooltipTimer(); | 447 helper_->FireTooltipTimer(); |
| 448 | 448 |
| 449 EXPECT_TRUE(helper_->IsTooltipVisible()); | 449 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 450 generator_->SendMouseExit(); | 450 generator_->SendMouseExit(); |
| 451 EXPECT_FALSE(helper_->IsTooltipVisible()); | 451 EXPECT_FALSE(helper_->IsTooltipVisible()); |
| 452 } | 452 } |
| 453 | 453 |
| 454 TEST_F(TooltipControllerTest, ReshowOnClickAfterEnterExit) { | 454 TEST_F(TooltipControllerTest, ReshowOnClickAfterEnterExit) { |
| 455 // TODO: these tests use GetContext(). That should go away for aura-mus | 455 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 456 // client. http://crbug.com/663781. | 456 // client. http://crbug.com/663781. |
| 457 if (IsAuraMusClient()) | 457 if (IsMus()) |
| 458 return; | 458 return; |
| 459 | 459 |
| 460 // Owned by |view_|. | 460 // Owned by |view_|. |
| 461 TooltipTestView* v1 = new TooltipTestView; | 461 TooltipTestView* v1 = new TooltipTestView; |
| 462 TooltipTestView* v2 = new TooltipTestView; | 462 TooltipTestView* v2 = new TooltipTestView; |
| 463 view_->AddChildView(v1); | 463 view_->AddChildView(v1); |
| 464 view_->AddChildView(v2); | 464 view_->AddChildView(v2); |
| 465 gfx::Rect view_bounds(view_->GetLocalBounds()); | 465 gfx::Rect view_bounds(view_->GetLocalBounds()); |
| 466 view_bounds.set_height(view_bounds.height() / 2); | 466 view_bounds.set_height(view_bounds.height() / 2); |
| 467 v1->SetBoundsRect(view_bounds); | 467 v1->SetBoundsRect(view_bounds); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 510 | 510 |
| 511 class TooltipControllerCaptureTest : public TooltipControllerTest { | 511 class TooltipControllerCaptureTest : public TooltipControllerTest { |
| 512 public: | 512 public: |
| 513 TooltipControllerCaptureTest() {} | 513 TooltipControllerCaptureTest() {} |
| 514 ~TooltipControllerCaptureTest() override {} | 514 ~TooltipControllerCaptureTest() override {} |
| 515 | 515 |
| 516 void SetUp() override { | 516 void SetUp() override { |
| 517 TooltipControllerTest::SetUp(); | 517 TooltipControllerTest::SetUp(); |
| 518 // TODO: these tests use GetContext(). That should go away for aura-mus | 518 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 519 // client. http://crbug.com/663781. | 519 // client. http://crbug.com/663781. |
| 520 if (IsAuraMusClient()) | 520 if (IsMus()) |
| 521 return; | 521 return; |
| 522 | 522 |
| 523 aura::client::SetScreenPositionClient(GetRootWindow(), | 523 aura::client::SetScreenPositionClient(GetRootWindow(), |
| 524 &screen_position_client_); | 524 &screen_position_client_); |
| 525 } | 525 } |
| 526 | 526 |
| 527 void TearDown() override { | 527 void TearDown() override { |
| 528 if (!IsAuraMusClient()) | 528 if (!IsMus()) |
| 529 aura::client::SetScreenPositionClient(GetRootWindow(), NULL); | 529 aura::client::SetScreenPositionClient(GetRootWindow(), NULL); |
| 530 TooltipControllerTest::TearDown(); | 530 TooltipControllerTest::TearDown(); |
| 531 } | 531 } |
| 532 | 532 |
| 533 private: | 533 private: |
| 534 wm::DefaultScreenPositionClient screen_position_client_; | 534 wm::DefaultScreenPositionClient screen_position_client_; |
| 535 std::unique_ptr<display::Screen> desktop_screen_; | 535 std::unique_ptr<display::Screen> desktop_screen_; |
| 536 | 536 |
| 537 DISALLOW_COPY_AND_ASSIGN(TooltipControllerCaptureTest); | 537 DISALLOW_COPY_AND_ASSIGN(TooltipControllerCaptureTest); |
| 538 }; | 538 }; |
| 539 | 539 |
| 540 // Verifies when capture is released the TooltipController resets state. | 540 // Verifies when capture is released the TooltipController resets state. |
| 541 // Flaky on all builders. http://crbug.com/388268 | 541 // Flaky on all builders. http://crbug.com/388268 |
| 542 TEST_F(TooltipControllerCaptureTest, DISABLED_CloseOnCaptureLost) { | 542 TEST_F(TooltipControllerCaptureTest, DISABLED_CloseOnCaptureLost) { |
| 543 // TODO: these tests use GetContext(). That should go away for aura-mus | 543 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 544 // client. http://crbug.com/663781. | 544 // client. http://crbug.com/663781. |
| 545 if (IsAuraMusClient()) | 545 if (IsMus()) |
| 546 return; | 546 return; |
| 547 | 547 |
| 548 view_->GetWidget()->SetCapture(view_); | 548 view_->GetWidget()->SetCapture(view_); |
| 549 RunPendingMessages(); | 549 RunPendingMessages(); |
| 550 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 550 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
| 551 generator_->MoveMouseToCenterOf(GetWindow()); | 551 generator_->MoveMouseToCenterOf(GetWindow()); |
| 552 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); | 552 base::string16 expected_tooltip = ASCIIToUTF16("Tooltip Text"); |
| 553 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); | 553 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(GetWindow())); |
| 554 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); | 554 EXPECT_EQ(base::string16(), helper_->GetTooltipText()); |
| 555 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 555 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 567 // consider z-order. | 567 // consider z-order. |
| 568 // Disabled on Windows due to failing bots. http://crbug.com/604479 | 568 // Disabled on Windows due to failing bots. http://crbug.com/604479 |
| 569 #if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_WIN) | 569 #if (defined(OS_LINUX) && !defined(OS_CHROMEOS)) || defined(OS_WIN) |
| 570 #define MAYBE_Capture DISABLED_Capture | 570 #define MAYBE_Capture DISABLED_Capture |
| 571 #else | 571 #else |
| 572 #define MAYBE_Capture Capture | 572 #define MAYBE_Capture Capture |
| 573 #endif | 573 #endif |
| 574 // Verifies the correct window is found for tooltips when there is a capture. | 574 // Verifies the correct window is found for tooltips when there is a capture. |
| 575 TEST_F(TooltipControllerCaptureTest, MAYBE_Capture) { | 575 TEST_F(TooltipControllerCaptureTest, MAYBE_Capture) { |
| 576 // Currently, capture in one test affects capture in other tests. | 576 // Currently, capture in one test affects capture in other tests. |
| 577 // TODO: these tests use GetContext(). That should go away for aura-mus | 577 // TODO: these tests use GetContext(). That should go away for mus client. |
| 578 // client. http://crbug.com/663781. | 578 // http://crbug.com/663781. |
| 579 if (IsMus() || IsAuraMusClient()) | 579 if (IsMus()) |
| 580 return; | 580 return; |
| 581 | 581 |
| 582 const base::string16 tooltip_text(ASCIIToUTF16("1")); | 582 const base::string16 tooltip_text(ASCIIToUTF16("1")); |
| 583 const base::string16 tooltip_text2(ASCIIToUTF16("2")); | 583 const base::string16 tooltip_text2(ASCIIToUTF16("2")); |
| 584 | 584 |
| 585 widget_->SetBounds(gfx::Rect(0, 0, 200, 200)); | 585 widget_->SetBounds(gfx::Rect(0, 0, 200, 200)); |
| 586 view_->set_tooltip_text(tooltip_text); | 586 view_->set_tooltip_text(tooltip_text); |
| 587 | 587 |
| 588 std::unique_ptr<views::Widget> widget2(CreateWidget(GetContext())); | 588 std::unique_ptr<views::Widget> widget2(CreateWidget(GetContext())); |
| 589 widget2->SetContentsView(new View); | 589 widget2->SetContentsView(new View); |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 735 class TooltipControllerTest3 : public ViewsTestBase { | 735 class TooltipControllerTest3 : public ViewsTestBase { |
| 736 public: | 736 public: |
| 737 TooltipControllerTest3() : test_tooltip_(new TestTooltip) {} | 737 TooltipControllerTest3() : test_tooltip_(new TestTooltip) {} |
| 738 ~TooltipControllerTest3() override {} | 738 ~TooltipControllerTest3() override {} |
| 739 | 739 |
| 740 void SetUp() override { | 740 void SetUp() override { |
| 741 ViewsTestBase::SetUp(); | 741 ViewsTestBase::SetUp(); |
| 742 | 742 |
| 743 // TODO: these tests use GetContext(). That should go away for aura-mus | 743 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 744 // client. http://crbug.com/663781. | 744 // client. http://crbug.com/663781. |
| 745 if (IsAuraMusClient()) | 745 if (IsMus()) |
| 746 return; | 746 return; |
| 747 | 747 |
| 748 aura::Window* root_window = GetContext(); | 748 aura::Window* root_window = GetContext(); |
| 749 new wm::DefaultActivationClient(root_window); | 749 new wm::DefaultActivationClient(root_window); |
| 750 | 750 |
| 751 widget_.reset(CreateWidget(root_window)); | 751 widget_.reset(CreateWidget(root_window)); |
| 752 widget_->SetContentsView(new View); | 752 widget_->SetContentsView(new View); |
| 753 view_ = new TooltipTestView; | 753 view_ = new TooltipTestView; |
| 754 widget_->GetContentsView()->AddChildView(view_); | 754 widget_->GetContentsView()->AddChildView(view_); |
| 755 view_->SetBoundsRect(widget_->GetContentsView()->GetLocalBounds()); | 755 view_->SetBoundsRect(widget_->GetContentsView()->GetLocalBounds()); |
| 756 | 756 |
| 757 generator_.reset(new ui::test::EventGenerator(GetRootWindow())); | 757 generator_.reset(new ui::test::EventGenerator(GetRootWindow())); |
| 758 controller_.reset(new TooltipController( | 758 controller_.reset(new TooltipController( |
| 759 std::unique_ptr<views::corewm::Tooltip>(test_tooltip_))); | 759 std::unique_ptr<views::corewm::Tooltip>(test_tooltip_))); |
| 760 GetRootWindow()->RemovePreTargetHandler( | 760 GetRootWindow()->RemovePreTargetHandler( |
| 761 static_cast<TooltipController*>(aura::client::GetTooltipClient( | 761 static_cast<TooltipController*>(aura::client::GetTooltipClient( |
| 762 widget_->GetNativeWindow()->GetRootWindow()))); | 762 widget_->GetNativeWindow()->GetRootWindow()))); |
| 763 GetRootWindow()->AddPreTargetHandler(controller_.get()); | 763 GetRootWindow()->AddPreTargetHandler(controller_.get()); |
| 764 helper_.reset(new TooltipControllerTestHelper(controller_.get())); | 764 helper_.reset(new TooltipControllerTestHelper(controller_.get())); |
| 765 SetTooltipClient(GetRootWindow(), controller_.get()); | 765 SetTooltipClient(GetRootWindow(), controller_.get()); |
| 766 } | 766 } |
| 767 | 767 |
| 768 void TearDown() override { | 768 void TearDown() override { |
| 769 if (!IsAuraMusClient()) { | 769 if (!IsMus()) { |
| 770 GetRootWindow()->RemovePreTargetHandler(controller_.get()); | 770 GetRootWindow()->RemovePreTargetHandler(controller_.get()); |
| 771 aura::client::SetTooltipClient(GetRootWindow(), NULL); | 771 aura::client::SetTooltipClient(GetRootWindow(), NULL); |
| 772 | 772 |
| 773 controller_.reset(); | 773 controller_.reset(); |
| 774 generator_.reset(); | 774 generator_.reset(); |
| 775 helper_.reset(); | 775 helper_.reset(); |
| 776 widget_.reset(); | 776 widget_.reset(); |
| 777 } | 777 } |
| 778 ViewsTestBase::TearDown(); | 778 ViewsTestBase::TearDown(); |
| 779 } | 779 } |
| (...skipping 16 matching lines...) Expand all Loading... |
| 796 #endif | 796 #endif |
| 797 | 797 |
| 798 aura::Window* GetRootWindow() { return GetWindow()->GetRootWindow(); } | 798 aura::Window* GetRootWindow() { return GetWindow()->GetRootWindow(); } |
| 799 | 799 |
| 800 DISALLOW_COPY_AND_ASSIGN(TooltipControllerTest3); | 800 DISALLOW_COPY_AND_ASSIGN(TooltipControllerTest3); |
| 801 }; | 801 }; |
| 802 | 802 |
| 803 TEST_F(TooltipControllerTest3, TooltipPositionChangesOnTwoViewsWithSameLabel) { | 803 TEST_F(TooltipControllerTest3, TooltipPositionChangesOnTwoViewsWithSameLabel) { |
| 804 // TODO: these tests use GetContext(). That should go away for aura-mus | 804 // TODO: these tests use GetContext(). That should go away for aura-mus |
| 805 // client. http://crbug.com/663781. | 805 // client. http://crbug.com/663781. |
| 806 if (IsAuraMusClient()) | 806 if (IsMus()) |
| 807 return; | 807 return; |
| 808 | 808 |
| 809 // Owned by |view_|. | 809 // Owned by |view_|. |
| 810 // These two views have the same tooltip text | 810 // These two views have the same tooltip text |
| 811 TooltipTestView* v1 = new TooltipTestView; | 811 TooltipTestView* v1 = new TooltipTestView; |
| 812 TooltipTestView* v2 = new TooltipTestView; | 812 TooltipTestView* v2 = new TooltipTestView; |
| 813 // v1_1 is a view inside v1 that has an identical tooltip text to that of v1 | 813 // v1_1 is a view inside v1 that has an identical tooltip text to that of v1 |
| 814 // and v2 | 814 // and v2 |
| 815 TooltipTestView* v1_1 = new TooltipTestView; | 815 TooltipTestView* v1_1 = new TooltipTestView; |
| 816 // v2_1 is a view inside v2 that has an identical tooltip text to that of v1 | 816 // v2_1 is a view inside v2 that has an identical tooltip text to that of v1 |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 906 helper_->FireTooltipTimer(); | 906 helper_->FireTooltipTimer(); |
| 907 tooltip_bounds1 = test_tooltip_->location(); | 907 tooltip_bounds1 = test_tooltip_->location(); |
| 908 | 908 |
| 909 EXPECT_NE(tooltip_bounds1_1, tooltip_bounds1); | 909 EXPECT_NE(tooltip_bounds1_1, tooltip_bounds1); |
| 910 EXPECT_EQ(reference_string, helper_->GetTooltipText()); | 910 EXPECT_EQ(reference_string, helper_->GetTooltipText()); |
| 911 } | 911 } |
| 912 | 912 |
| 913 } // namespace test | 913 } // namespace test |
| 914 } // namespace corewm | 914 } // namespace corewm |
| 915 } // namespace views | 915 } // namespace views |
| OLD | NEW |