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

Side by Side Diff: chrome/browser/ui/autofill/autofill_popup_controller_unittest.cc

Issue 24883002: Uses and returns the fractional width in text eliding (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: More fixes per feedback Created 7 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "base/memory/weak_ptr.h" 6 #include "base/memory/weak_ptr.h"
7 #include "base/prefs/testing_pref_service.h" 7 #include "base/prefs/testing_pref_service.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/browser/ui/autofill/autofill_popup_controller_impl.h" 9 #include "chrome/browser/ui/autofill/autofill_popup_controller_impl.h"
10 #include "chrome/browser/ui/autofill/autofill_popup_view.h" 10 #include "chrome/browser/ui/autofill/autofill_popup_view.h"
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 74
75 void set_display(const gfx::Display display) { 75 void set_display(const gfx::Display display) {
76 display_ = display; 76 display_ = display;
77 } 77 }
78 virtual gfx::Display GetDisplayNearestPoint(const gfx::Point& point) const 78 virtual gfx::Display GetDisplayNearestPoint(const gfx::Point& point) const
79 OVERRIDE { 79 OVERRIDE {
80 return display_; 80 return display_;
81 } 81 }
82 82
83 // Making protected functions public for testing 83 // Making protected functions public for testing
84 void SetPopupBounds(const gfx::Rect& bounds) { 84 void SetPopupBounds(const gfx::RectF& bounds) {
85 AutofillPopupControllerImpl::SetPopupBounds(bounds); 85 AutofillPopupControllerImpl::SetPopupBounds(bounds);
86 } 86 }
87 const std::vector<string16>& names() const { 87 const std::vector<string16>& names() const {
88 return AutofillPopupControllerImpl::names(); 88 return AutofillPopupControllerImpl::names();
89 } 89 }
90 const std::vector<string16>& subtexts() const { 90 const std::vector<string16>& subtexts() const {
91 return AutofillPopupControllerImpl::subtexts(); 91 return AutofillPopupControllerImpl::subtexts();
92 } 92 }
93 const std::vector<int>& identifiers() const { 93 const std::vector<int>& identifiers() const {
94 return AutofillPopupControllerImpl::identifiers(); 94 return AutofillPopupControllerImpl::identifiers();
95 } 95 }
96 int selected_line() const { 96 int selected_line() const {
97 return AutofillPopupControllerImpl::selected_line(); 97 return AutofillPopupControllerImpl::selected_line();
98 } 98 }
99 void SetSelectedLine(size_t selected_line) { 99 void SetSelectedLine(size_t selected_line) {
100 AutofillPopupControllerImpl::SetSelectedLine(selected_line); 100 AutofillPopupControllerImpl::SetSelectedLine(selected_line);
101 } 101 }
102 void SelectNextLine() { 102 void SelectNextLine() {
103 AutofillPopupControllerImpl::SelectNextLine(); 103 AutofillPopupControllerImpl::SelectNextLine();
104 } 104 }
105 void SelectPreviousLine() { 105 void SelectPreviousLine() {
106 AutofillPopupControllerImpl::SelectPreviousLine(); 106 AutofillPopupControllerImpl::SelectPreviousLine();
107 } 107 }
108 bool RemoveSelectedLine() { 108 bool RemoveSelectedLine() {
109 return AutofillPopupControllerImpl::RemoveSelectedLine(); 109 return AutofillPopupControllerImpl::RemoveSelectedLine();
110 } 110 }
111 void DoHide() { 111 void DoHide() {
112 AutofillPopupControllerImpl::Hide(); 112 AutofillPopupControllerImpl::Hide();
113 } 113 }
114 const gfx::Rect& popup_bounds() const { 114 const gfx::RectF& popup_bounds() const {
115 return AutofillPopupControllerImpl::popup_bounds(); 115 return AutofillPopupControllerImpl::popup_bounds();
116 } 116 }
117 const gfx::RectF& element_bounds() const { 117 const gfx::RectF& element_bounds() const {
118 return AutofillPopupControllerImpl::element_bounds(); 118 return AutofillPopupControllerImpl::element_bounds();
119 } 119 }
120 #if !defined(OS_ANDROID) 120 #if !defined(OS_ANDROID)
121 const gfx::Font& GetNameFontForRow(size_t index) const { 121 const gfx::Font& GetNameFontForRow(size_t index) const {
122 return AutofillPopupControllerImpl::GetNameFontForRow(index); 122 return AutofillPopupControllerImpl::GetNameFontForRow(index);
123 } 123 }
124 const gfx::Font& subtext_font() const { 124 const gfx::Font& subtext_font() const {
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 } 199 }
200 200
201 protected: 201 protected:
202 scoped_ptr<MockAutofillManagerDelegate> manager_delegate_; 202 scoped_ptr<MockAutofillManagerDelegate> manager_delegate_;
203 scoped_ptr<NiceMock<MockAutofillExternalDelegate> > external_delegate_; 203 scoped_ptr<NiceMock<MockAutofillExternalDelegate> > external_delegate_;
204 testing::NiceMock<TestAutofillPopupController>* autofill_popup_controller_; 204 testing::NiceMock<TestAutofillPopupController>* autofill_popup_controller_;
205 }; 205 };
206 206
207 TEST_F(AutofillPopupControllerUnitTest, SetBounds) { 207 TEST_F(AutofillPopupControllerUnitTest, SetBounds) {
208 // Ensure the popup size can be set and causes a redraw. 208 // Ensure the popup size can be set and causes a redraw.
209 gfx::Rect popup_bounds(10, 10, 100, 100); 209 gfx::RectF popup_bounds(10, 10, 100, 100);
210 210
211 EXPECT_CALL(*autofill_popup_controller_, 211 EXPECT_CALL(*autofill_popup_controller_,
212 UpdateBoundsAndRedrawPopup()); 212 UpdateBoundsAndRedrawPopup());
213 213
214 popup_controller()->SetPopupBounds(popup_bounds); 214 popup_controller()->SetPopupBounds(popup_bounds);
215 215
216 EXPECT_EQ(popup_bounds, popup_controller()->popup_bounds()); 216 EXPECT_EQ(popup_bounds, popup_controller()->popup_bounds());
217 } 217 }
218 218
219 TEST_F(AutofillPopupControllerUnitTest, ChangeSelectedLine) { 219 TEST_F(AutofillPopupControllerUnitTest, ChangeSelectedLine) {
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
569 int desired_width = autofill_popup_controller_->GetDesiredPopupWidth(); 569 int desired_width = autofill_popup_controller_->GetDesiredPopupWidth();
570 int desired_height = autofill_popup_controller_->GetDesiredPopupHeight(); 570 int desired_height = autofill_popup_controller_->GetDesiredPopupHeight();
571 571
572 // Set up the visible screen space. 572 // Set up the visible screen space.
573 gfx::Display display(0, 573 gfx::Display display(0,
574 gfx::Rect(0, 0, desired_width * 2, desired_height * 2)); 574 gfx::Rect(0, 0, desired_width * 2, desired_height * 2));
575 575
576 // Store the possible element bounds and the popup bounds they should result 576 // Store the possible element bounds and the popup bounds they should result
577 // in. 577 // in.
578 std::vector<gfx::RectF> element_bounds; 578 std::vector<gfx::RectF> element_bounds;
579 std::vector<gfx::Rect> expected_popup_bounds; 579 std::vector<gfx::RectF> expected_popup_bounds;
580 580
581 // The popup grows down and to the right. 581 // The popup grows down and to the right.
582 element_bounds.push_back(gfx::RectF(0, 0, 0, 0)); 582 element_bounds.push_back(gfx::RectF(0, 0, 0, 0));
583 expected_popup_bounds.push_back( 583 expected_popup_bounds.push_back(
584 gfx::Rect(0, 0, desired_width, desired_height)); 584 gfx::RectF(0, 0, desired_width, desired_height));
585 585
586 // The popup grows down and to the left. 586 // The popup grows down and to the left.
587 element_bounds.push_back(gfx::RectF(2 * desired_width, 0, 0, 0)); 587 element_bounds.push_back(gfx::RectF(2 * desired_width, 0, 0, 0));
588 expected_popup_bounds.push_back( 588 expected_popup_bounds.push_back(
589 gfx::Rect(desired_width, 0, desired_width, desired_height)); 589 gfx::RectF(desired_width, 0, desired_width, desired_height));
590 590
591 // The popup grows up and to the right. 591 // The popup grows up and to the right.
592 element_bounds.push_back(gfx::RectF(0, 2 * desired_height, 0, 0)); 592 element_bounds.push_back(gfx::RectF(0, 2 * desired_height, 0, 0));
593 expected_popup_bounds.push_back( 593 expected_popup_bounds.push_back(
594 gfx::Rect(0, desired_height, desired_width, desired_height)); 594 gfx::RectF(0, desired_height, desired_width, desired_height));
595 595
596 // The popup grows up and to the left. 596 // The popup grows up and to the left.
597 element_bounds.push_back( 597 element_bounds.push_back(
598 gfx::RectF(2 * desired_width, 2 * desired_height, 0, 0)); 598 gfx::RectF(2 * desired_width, 2 * desired_height, 0, 0));
599 expected_popup_bounds.push_back( 599 expected_popup_bounds.push_back(
600 gfx::Rect(desired_width, desired_height, desired_width, desired_height)); 600 gfx::RectF(desired_width, desired_height, desired_width, desired_height));
601 601
602 // The popup would be partial off the top and left side of the screen. 602 // The popup would be partial off the top and left side of the screen.
603 element_bounds.push_back( 603 element_bounds.push_back(
604 gfx::RectF(-desired_width / 2, -desired_height / 2, 0, 0)); 604 gfx::RectF(-desired_width / 2, -desired_height / 2, 0, 0));
605 expected_popup_bounds.push_back( 605 expected_popup_bounds.push_back(
606 gfx::Rect(0, 0, desired_width, desired_height)); 606 gfx::RectF(0, 0, desired_width, desired_height));
607 607
608 // The popup would be partially off the bottom and the right side of 608 // The popup would be partially off the bottom and the right side of
609 // the screen. 609 // the screen.
610 element_bounds.push_back( 610 element_bounds.push_back(
611 gfx::RectF(desired_width * 1.5, desired_height * 1.5, 0, 0)); 611 gfx::RectF(desired_width * 1.5, desired_height * 1.5, 0, 0));
612 expected_popup_bounds.push_back( 612 expected_popup_bounds.push_back(
613 gfx::Rect((desired_width + 1) / 2, (desired_height + 1) / 2, 613 gfx::RectF((desired_width + 1) / 2, (desired_height + 1) / 2,
614 desired_width, desired_height)); 614 desired_width, desired_height));
615 615
616 for (size_t i = 0; i < element_bounds.size(); ++i) { 616 for (size_t i = 0; i < element_bounds.size(); ++i) {
617 AutofillDriverImpl* driver = 617 AutofillDriverImpl* driver =
618 AutofillDriverImpl::FromWebContents(web_contents()); 618 AutofillDriverImpl::FromWebContents(web_contents());
619 NiceMock<MockAutofillExternalDelegate> external_delegate( 619 NiceMock<MockAutofillExternalDelegate> external_delegate(
620 web_contents(), driver->autofill_manager(), driver); 620 web_contents(), driver->autofill_manager(), driver);
621 TestAutofillPopupController* autofill_popup_controller = 621 TestAutofillPopupController* autofill_popup_controller =
622 new TestAutofillPopupController(external_delegate.GetWeakPtr(), 622 new TestAutofillPopupController(external_delegate.GetWeakPtr(),
623 element_bounds[i]); 623 element_bounds[i]);
624 624
625 autofill_popup_controller->set_display(display); 625 autofill_popup_controller->set_display(display);
626 autofill_popup_controller->Show(names, names, names, autofill_ids); 626 autofill_popup_controller->Show(names, names, names, autofill_ids);
627 627
628 EXPECT_EQ(expected_popup_bounds[i].ToString(), 628 EXPECT_EQ(expected_popup_bounds[i].ToString(),
629 autofill_popup_controller->popup_bounds().ToString()) << 629 autofill_popup_controller->popup_bounds().ToString()) <<
630 "Popup bounds failed to match for test " << i; 630 "Popup bounds failed to match for test " << i;
631 631
632 // Hide the controller to delete it. 632 // Hide the controller to delete it.
633 autofill_popup_controller->DoHide(); 633 autofill_popup_controller->DoHide();
634 } 634 }
635 } 635 }
636 636
637 } // namespace autofill 637 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698