| 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/tooltip_client.h" | 9 #include "ui/aura/client/tooltip_client.h" |
| 10 #include "ui/aura/client/window_types.h" | 10 #include "ui/aura/client/window_types.h" |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 helper_.reset(); | 94 helper_.reset(); |
| 95 widget_.reset(); | 95 widget_.reset(); |
| 96 aura::test::AuraTestBase::TearDown(); | 96 aura::test::AuraTestBase::TearDown(); |
| 97 } | 97 } |
| 98 | 98 |
| 99 protected: | 99 protected: |
| 100 aura::Window* GetWindow() { | 100 aura::Window* GetWindow() { |
| 101 return widget_->GetNativeWindow(); | 101 return widget_->GetNativeWindow(); |
| 102 } | 102 } |
| 103 | 103 |
| 104 aura::RootWindow* GetRootWindow() { | 104 aura::Window* GetRootWindow() { |
| 105 return GetWindow()->GetRootWindow(); | 105 return GetWindow()->GetRootWindow(); |
| 106 } | 106 } |
| 107 | 107 |
| 108 TooltipTestView* PrepareSecondView() { | 108 TooltipTestView* PrepareSecondView() { |
| 109 TooltipTestView* view2 = new TooltipTestView; | 109 TooltipTestView* view2 = new TooltipTestView; |
| 110 widget_->GetContentsView()->AddChildView(view2); | 110 widget_->GetContentsView()->AddChildView(view2); |
| 111 view_->SetBounds(0, 0, 100, 100); | 111 view_->SetBounds(0, 0, 100, 100); |
| 112 view2->SetBounds(100, 0, 100, 100); | 112 view2->SetBounds(100, 0, 100, 100); |
| 113 return view2; | 113 return view2; |
| 114 } | 114 } |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); | 152 EXPECT_EQ(GetWindow(), helper_->GetTooltipWindow()); |
| 153 } | 153 } |
| 154 | 154 |
| 155 TEST_F(TooltipControllerTest, TooltipsInMultipleViews) { | 155 TEST_F(TooltipControllerTest, TooltipsInMultipleViews) { |
| 156 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); | 156 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text")); |
| 157 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 157 EXPECT_EQ(string16(), helper_->GetTooltipText()); |
| 158 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 158 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 159 | 159 |
| 160 PrepareSecondView(); | 160 PrepareSecondView(); |
| 161 aura::Window* window = GetWindow(); | 161 aura::Window* window = GetWindow(); |
| 162 aura::RootWindow* root_window = GetRootWindow(); | 162 aura::Window* root_window = GetRootWindow(); |
| 163 | 163 |
| 164 // Fire tooltip timer so tooltip becomes visible. | 164 // Fire tooltip timer so tooltip becomes visible. |
| 165 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); | 165 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); |
| 166 helper_->FireTooltipTimer(); | 166 helper_->FireTooltipTimer(); |
| 167 EXPECT_TRUE(helper_->IsTooltipVisible()); | 167 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 168 for (int i = 0; i < 49; ++i) { | 168 for (int i = 0; i < 49; ++i) { |
| 169 generator_->MoveMouseBy(1, 0); | 169 generator_->MoveMouseBy(1, 0); |
| 170 EXPECT_TRUE(helper_->IsTooltipVisible()); | 170 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 171 EXPECT_EQ(window, root_window->GetEventHandlerForPoint( | 171 EXPECT_EQ(window, root_window->GetEventHandlerForPoint( |
| 172 generator_->current_location())); | 172 generator_->current_location())); |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 349 // This test creates two top level windows and verifies that the tooltip | 349 // This test creates two top level windows and verifies that the tooltip |
| 350 // displays correctly when mouse moves are dispatched to these windows. | 350 // displays correctly when mouse moves are dispatched to these windows. |
| 351 // Additionally it also verifies that the tooltip is reparented to the new | 351 // Additionally it also verifies that the tooltip is reparented to the new |
| 352 // window when mouse moves are dispatched to it. | 352 // window when mouse moves are dispatched to it. |
| 353 TEST_F(TooltipControllerTest, TooltipsInMultipleRootWindows) { | 353 TEST_F(TooltipControllerTest, TooltipsInMultipleRootWindows) { |
| 354 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text For RootWindow1")); | 354 view_->set_tooltip_text(ASCIIToUTF16("Tooltip Text For RootWindow1")); |
| 355 EXPECT_EQ(string16(), helper_->GetTooltipText()); | 355 EXPECT_EQ(string16(), helper_->GetTooltipText()); |
| 356 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); | 356 EXPECT_EQ(NULL, helper_->GetTooltipWindow()); |
| 357 | 357 |
| 358 aura::Window* window = GetWindow(); | 358 aura::Window* window = GetWindow(); |
| 359 aura::RootWindow* root_window = GetRootWindow(); | 359 aura::Window* root_window = GetRootWindow(); |
| 360 | 360 |
| 361 // Fire tooltip timer so tooltip becomes visible. | 361 // Fire tooltip timer so tooltip becomes visible. |
| 362 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); | 362 generator_->MoveMouseRelativeTo(window, view_->bounds().CenterPoint()); |
| 363 helper_->FireTooltipTimer(); | 363 helper_->FireTooltipTimer(); |
| 364 EXPECT_TRUE(helper_->IsTooltipVisible()); | 364 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 365 for (int i = 0; i < 49; ++i) { | 365 for (int i = 0; i < 49; ++i) { |
| 366 generator_->MoveMouseBy(1, 0); | 366 generator_->MoveMouseBy(1, 0); |
| 367 EXPECT_TRUE(helper_->IsTooltipVisible()); | 367 EXPECT_TRUE(helper_->IsTooltipVisible()); |
| 368 EXPECT_EQ(window, root_window->GetEventHandlerForPoint( | 368 EXPECT_EQ(window, root_window->GetEventHandlerForPoint( |
| 369 generator_->current_location())); | 369 generator_->current_location())); |
| 370 string16 expected_tooltip = | 370 string16 expected_tooltip = |
| 371 ASCIIToUTF16("Tooltip Text For RootWindow1"); | 371 ASCIIToUTF16("Tooltip Text For RootWindow1"); |
| 372 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); | 372 EXPECT_EQ(expected_tooltip, aura::client::GetTooltipText(window)); |
| 373 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); | 373 EXPECT_EQ(expected_tooltip, helper_->GetTooltipText()); |
| 374 EXPECT_EQ(window, helper_->GetTooltipWindow()); | 374 EXPECT_EQ(window, helper_->GetTooltipWindow()); |
| 375 } | 375 } |
| 376 | 376 |
| 377 views::Widget* widget2 = CreateWidget(NULL); | 377 views::Widget* widget2 = CreateWidget(NULL); |
| 378 widget2->SetContentsView(new View); | 378 widget2->SetContentsView(new View); |
| 379 TooltipTestView* view2 = new TooltipTestView; | 379 TooltipTestView* view2 = new TooltipTestView; |
| 380 widget2->GetContentsView()->AddChildView(view2); | 380 widget2->GetContentsView()->AddChildView(view2); |
| 381 view2->SetBoundsRect(widget2->GetContentsView()->GetLocalBounds()); | 381 view2->SetBoundsRect(widget2->GetContentsView()->GetLocalBounds()); |
| 382 helper_.reset(new TooltipControllerTestHelper( | 382 helper_.reset(new TooltipControllerTestHelper( |
| 383 GetController(widget2))); | 383 GetController(widget2))); |
| 384 generator_.reset(new aura::test::EventGenerator( | 384 generator_.reset(new aura::test::EventGenerator( |
| 385 widget2->GetNativeWindow()->GetRootWindow())); | 385 widget2->GetNativeWindow()->GetRootWindow())); |
| 386 view2->set_tooltip_text(ASCIIToUTF16("Tooltip Text For RootWindow2")); | 386 view2->set_tooltip_text(ASCIIToUTF16("Tooltip Text For RootWindow2")); |
| 387 | 387 |
| 388 aura::Window* window2 = widget2->GetNativeWindow(); | 388 aura::Window* window2 = widget2->GetNativeWindow(); |
| 389 aura::RootWindow* root_window2 = | 389 aura::Window* root_window2 = |
| 390 widget2->GetNativeWindow()->GetRootWindow(); | 390 widget2->GetNativeWindow()->GetRootWindow(); |
| 391 // Fire tooltip timer so tooltip becomes visible. | 391 // Fire tooltip timer so tooltip becomes visible. |
| 392 generator_->MoveMouseRelativeTo(window2, view2->bounds().CenterPoint()); | 392 generator_->MoveMouseRelativeTo(window2, view2->bounds().CenterPoint()); |
| 393 helper_->FireTooltipTimer(); | 393 helper_->FireTooltipTimer(); |
| 394 | 394 |
| 395 EXPECT_NE(root_window, root_window2); | 395 EXPECT_NE(root_window, root_window2); |
| 396 EXPECT_NE(window, window2); | 396 EXPECT_NE(window, window2); |
| 397 | 397 |
| 398 for (int i = 0; i < 49; ++i) { | 398 for (int i = 0; i < 49; ++i) { |
| 399 generator_->MoveMouseBy(1, 0); | 399 generator_->MoveMouseBy(1, 0); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 456 EXPECT_EQ( | 456 EXPECT_EQ( |
| 457 widget_->GetNativeWindow()->GetRootWindow()->children().back()->type(), | 457 widget_->GetNativeWindow()->GetRootWindow()->children().back()->type(), |
| 458 aura::client::WINDOW_TYPE_TOOLTIP); | 458 aura::client::WINDOW_TYPE_TOOLTIP); |
| 459 } | 459 } |
| 460 | 460 |
| 461 #endif | 461 #endif |
| 462 | 462 |
| 463 } // namespace test | 463 } // namespace test |
| 464 } // namespace corewm | 464 } // namespace corewm |
| 465 } // namespace views | 465 } // namespace views |
| OLD | NEW |