Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(169)

Side by Side Diff: ui/views/corewm/tooltip_controller_unittest.cc

Issue 213833018: Aura tooltips do not move on mouse move in case of many neighboring views with the same label (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Write unit test for the case when a tooltip moves from one view to another with the same tooltip bu… Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/env.h" 10 #include "ui/aura/env.h"
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 gfx::Point v2_point(1, 1); 384 gfx::Point v2_point(1, 1);
385 View::ConvertPointToWidget(v2, &v2_point); 385 View::ConvertPointToWidget(v2, &v2_point);
386 generator_->MoveMouseRelativeTo(GetWindow(), v2_point); 386 generator_->MoveMouseRelativeTo(GetWindow(), v2_point);
387 generator_->MoveMouseRelativeTo(GetWindow(), v1_point); 387 generator_->MoveMouseRelativeTo(GetWindow(), v1_point);
388 388
389 helper_->FireTooltipTimer(); 389 helper_->FireTooltipTimer();
390 EXPECT_TRUE(helper_->IsTooltipVisible()); 390 EXPECT_TRUE(helper_->IsTooltipVisible());
391 EXPECT_EQ(v1_tt, helper_->GetTooltipText()); 391 EXPECT_EQ(v1_tt, helper_->GetTooltipText());
392 } 392 }
393 393
394 TEST_F(TooltipControllerTest, TooltipPositionChangesOnTwoViewsWithSameLabel) {
395 // Owned by |view_|.
396 TooltipTestView* v1 = new TooltipTestView;
397 TooltipTestView* v2 = new TooltipTestView;
398 view_->AddChildView(v1);
399 view_->AddChildView(v2);
400 const base::string16 reference_string(base::ASCIIToUTF16(
401 "Identical Tooltip Text"));
402 v1->set_tooltip_text(reference_string);
403 v2->set_tooltip_text(reference_string);
404
405 gfx::Rect view_bounds(view_->GetLocalBounds());
406 view_bounds.set_height(view_bounds.height() / 2);
407 v1->SetBoundsRect(view_bounds);
408 view_bounds.set_y(view_bounds.height());
409 v2->SetBoundsRect(view_bounds);
410
411 gfx::Point center = v1->bounds().CenterPoint();
412 generator_->MoveMouseRelativeTo(GetWindow(), center);
413 helper_->FireTooltipTimer();
414 EXPECT_TRUE(helper_->IsTooltipVisible());
415 EXPECT_EQ(reference_string, helper_->GetTooltipText());
416 gfx::Point tooltip_bounds1 = helper_->GetTooltipPosition();
417
418 center = v2->bounds().CenterPoint();
419 generator_->MoveMouseRelativeTo(GetWindow(), center);
420 helper_->FireTooltipTimer();
421 EXPECT_TRUE(helper_->IsTooltipVisible());
422 EXPECT_EQ(reference_string, helper_->GetTooltipText());
423 gfx::Point tooltip_bounds2 = helper_->GetTooltipPosition();
424
425 EXPECT_NE(tooltip_bounds1, gfx::Point());
426 EXPECT_NE(tooltip_bounds2, gfx::Point());
427 EXPECT_NE(tooltip_bounds1, tooltip_bounds2);
428 }
429
394 namespace { 430 namespace {
395 431
396 // Returns the index of |window| in its parent's children. 432 // Returns the index of |window| in its parent's children.
397 int IndexInParent(const aura::Window* window) { 433 int IndexInParent(const aura::Window* window) {
398 aura::Window::Windows::const_iterator i = 434 aura::Window::Windows::const_iterator i =
399 std::find(window->parent()->children().begin(), 435 std::find(window->parent()->children().begin(),
400 window->parent()->children().end(), 436 window->parent()->children().end(),
401 window); 437 window);
402 return i == window->parent()->children().end() ? -1 : 438 return i == window->parent()->children().end() ? -1 :
403 static_cast<int>(i - window->parent()->children().begin()); 439 static_cast<int>(i - window->parent()->children().begin());
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
672 } 708 }
673 virtual void Show() OVERRIDE { 709 virtual void Show() OVERRIDE {
674 is_visible_ = true; 710 is_visible_ = true;
675 } 711 }
676 virtual void Hide() OVERRIDE { 712 virtual void Hide() OVERRIDE {
677 is_visible_ = false; 713 is_visible_ = false;
678 } 714 }
679 virtual bool IsVisible() OVERRIDE { 715 virtual bool IsVisible() OVERRIDE {
680 return is_visible_; 716 return is_visible_;
681 } 717 }
718 virtual gfx::Point GetTooltipPosition() OVERRIDE {
719 return gfx::Point();
720 }
682 721
683 private: 722 private:
684 bool is_visible_; 723 bool is_visible_;
685 base::string16 tooltip_text_; 724 base::string16 tooltip_text_;
686 725
687 DISALLOW_COPY_AND_ASSIGN(TestTooltip); 726 DISALLOW_COPY_AND_ASSIGN(TestTooltip);
688 }; 727 };
689 728
690 } // namespace 729 } // namespace
691 730
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
759 // the tooltip window is closed. 798 // the tooltip window is closed.
760 ui::CancelModeEvent event; 799 ui::CancelModeEvent event;
761 helper_->controller()->OnCancelMode(&event); 800 helper_->controller()->OnCancelMode(&event);
762 EXPECT_FALSE(helper_->IsTooltipVisible()); 801 EXPECT_FALSE(helper_->IsTooltipVisible());
763 EXPECT_TRUE(helper_->GetTooltipWindow() == NULL); 802 EXPECT_TRUE(helper_->GetTooltipWindow() == NULL);
764 } 803 }
765 804
766 } // namespace test 805 } // namespace test
767 } // namespace corewm 806 } // namespace corewm
768 } // namespace views 807 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698