OLD | NEW |
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 "ui/views/controls/label.h" | 5 #include "ui/views/controls/label.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/i18n/rtl.h" | 9 #include "base/i18n/rtl.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 label.SetText(ASCIIToUTF16("A not so random string in one line.")); | 377 label.SetText(ASCIIToUTF16("A not so random string in one line.")); |
378 const gfx::Size size = label.GetPreferredSize(); | 378 const gfx::Size size = label.GetPreferredSize(); |
379 EXPECT_GT(size.height(), kMinTextDimension); | 379 EXPECT_GT(size.height(), kMinTextDimension); |
380 EXPECT_GT(size.width(), kMinTextDimension); | 380 EXPECT_GT(size.width(), kMinTextDimension); |
381 | 381 |
382 // Setting a size smaller than preferred should not change the preferred size. | 382 // Setting a size smaller than preferred should not change the preferred size. |
383 label.SetSize(gfx::Size(size.width() / 2, size.height() / 2)); | 383 label.SetSize(gfx::Size(size.width() / 2, size.height() / 2)); |
384 EXPECT_EQ(size, label.GetPreferredSize()); | 384 EXPECT_EQ(size, label.GetPreferredSize()); |
385 | 385 |
386 const gfx::Insets border(10, 20, 30, 40); | 386 const gfx::Insets border(10, 20, 30, 40); |
387 label.SetBorder(Border::CreateEmptyBorder( | 387 label.SetBorder(CreateEmptyBorder(border.top(), border.left(), |
388 border.top(), border.left(), border.bottom(), border.right())); | 388 border.bottom(), border.right())); |
389 const gfx::Size size_with_border = label.GetPreferredSize(); | 389 const gfx::Size size_with_border = label.GetPreferredSize(); |
390 EXPECT_EQ(size_with_border.height(), size.height() + border.height()); | 390 EXPECT_EQ(size_with_border.height(), size.height() + border.height()); |
391 EXPECT_EQ(size_with_border.width(), size.width() + border.width()); | 391 EXPECT_EQ(size_with_border.width(), size.width() + border.width()); |
392 EXPECT_EQ(size.height() + border.height(), | 392 EXPECT_EQ(size.height() + border.height(), |
393 label.GetHeightForWidth(size_with_border.width())); | 393 label.GetHeightForWidth(size_with_border.width())); |
394 } | 394 } |
395 | 395 |
396 TEST_F(LabelTest, MultilineSmallAvailableWidthSizing) { | 396 TEST_F(LabelTest, MultilineSmallAvailableWidthSizing) { |
397 Label label; | 397 Label label; |
398 label.SetMultiLine(true); | 398 label.SetMultiLine(true); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
458 EXPECT_GT(height_for_constrained_width, required_height); | 458 EXPECT_GT(height_for_constrained_width, required_height); |
459 #endif | 459 #endif |
460 // Using the constrained width or the required_width - 1 should give the | 460 // Using the constrained width or the required_width - 1 should give the |
461 // same result for the height because the constrainted width is the tight | 461 // same result for the height because the constrainted width is the tight |
462 // width when given "required_width - 1" as the max width. | 462 // width when given "required_width - 1" as the max width. |
463 EXPECT_EQ(height_for_constrained_width, | 463 EXPECT_EQ(height_for_constrained_width, |
464 label.GetHeightForWidth(required_width - 1)); | 464 label.GetHeightForWidth(required_width - 1)); |
465 | 465 |
466 // Test everything with borders. | 466 // Test everything with borders. |
467 gfx::Insets border(10, 20, 30, 40); | 467 gfx::Insets border(10, 20, 30, 40); |
468 label.SetBorder(Border::CreateEmptyBorder( | 468 label.SetBorder(CreateEmptyBorder(border.top(), border.left(), |
469 border.top(), border.left(), border.bottom(), border.right())); | 469 border.bottom(), border.right())); |
470 | 470 |
471 // SizeToFit and borders. | 471 // SizeToFit and borders. |
472 label.SizeToFit(0); | 472 label.SizeToFit(0); |
473 int required_width_with_border = label.GetLocalBounds().width(); | 473 int required_width_with_border = label.GetLocalBounds().width(); |
474 EXPECT_EQ(required_width_with_border, required_width + border.width()); | 474 EXPECT_EQ(required_width_with_border, required_width + border.width()); |
475 | 475 |
476 // GetHeightForWidth and borders. | 476 // GetHeightForWidth and borders. |
477 int required_height_with_border = | 477 int required_height_with_border = |
478 label.GetHeightForWidth(required_width_with_border); | 478 label.GetHeightForWidth(required_width_with_border); |
479 EXPECT_EQ(required_height_with_border, required_height + border.height()); | 479 EXPECT_EQ(required_height_with_border, required_height + border.height()); |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
724 label()->SetFocusBehavior(View::FocusBehavior::ALWAYS); | 724 label()->SetFocusBehavior(View::FocusBehavior::ALWAYS); |
725 label()->RequestFocus(); | 725 label()->RequestFocus(); |
726 label()->SizeToPreferredSize(); | 726 label()->SizeToPreferredSize(); |
727 | 727 |
728 gfx::Rect focus_bounds = label()->GetFocusBounds(); | 728 gfx::Rect focus_bounds = label()->GetFocusBounds(); |
729 EXPECT_FALSE(focus_bounds.IsEmpty()); | 729 EXPECT_FALSE(focus_bounds.IsEmpty()); |
730 EXPECT_LT(label()->font_list().GetHeight(), focus_bounds.height()); | 730 EXPECT_LT(label()->font_list().GetHeight(), focus_bounds.height()); |
731 } | 731 } |
732 | 732 |
733 } // namespace views | 733 } // namespace views |
OLD | NEW |