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

Unified Diff: ui/views/controls/button/label_button_unittest.cc

Issue 2801583002: Use views::style for buttons, bootstrap ash_typography to do so. (Closed)
Patch Set: placate gn check. new_avatar_button now just avatar_button Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: ui/views/controls/button/label_button_unittest.cc
diff --git a/ui/views/controls/button/label_button_unittest.cc b/ui/views/controls/button/label_button_unittest.cc
index 76fbc3c6b09782bded8b929b4a3c9923ff8a70b8..9ba1771eddea48a50233675004e1f3fbd6476361 100644
--- a/ui/views/controls/button/label_button_unittest.cc
+++ b/ui/views/controls/button/label_button_unittest.cc
@@ -44,8 +44,9 @@ namespace views {
// Testing button that exposes protected methods.
class TestLabelButton : public LabelButton {
public:
- explicit TestLabelButton(const base::string16& text = base::string16())
- : LabelButton(nullptr, text) {}
+ explicit TestLabelButton(const base::string16& text = base::string16(),
+ int button_context = style::CONTEXT_BUTTON)
+ : LabelButton(nullptr, text, button_context) {}
using LabelButton::label;
using LabelButton::image;
@@ -148,7 +149,7 @@ TEST_F(LabelButtonTest, Init) {
TEST_F(LabelButtonTest, Label) {
EXPECT_TRUE(button_->GetText().empty());
- const gfx::FontList font_list;
+ const gfx::FontList font_list = button_->label()->font_list();
const base::string16 short_text(ASCIIToUTF16("abcdefghijklm"));
const base::string16 long_text(ASCIIToUTF16("abcdefghijklmnopqrstuvwxyz"));
const int short_text_width = gfx::GetStringWidth(short_text, font_list);
@@ -238,7 +239,7 @@ TEST_F(LabelButtonTest, Image) {
}
TEST_F(LabelButtonTest, LabelAndImage) {
- const gfx::FontList font_list;
+ const gfx::FontList font_list = button_->label()->font_list();
const base::string16 text(ASCIIToUTF16("abcdefghijklm"));
const int text_width = gfx::GetStringWidth(text, font_list);
@@ -296,23 +297,43 @@ TEST_F(LabelButtonTest, LabelAndImage) {
EXPECT_LT(button_->GetPreferredSize().height(), image_size);
}
-TEST_F(LabelButtonTest, AdjustFontSize) {
- button_->SetText(base::ASCIIToUTF16("abc"));
+// Ensure that the text used for button labels correctly adjusts in response
+// to provided style::TextContext values.
+TEST_F(LabelButtonTest, TextSizeFromContext) {
+ constexpr style::TextContext kDefaultContext = style::CONTEXT_BUTTON;
+
+ // Although CONTEXT_DIALOG_TITLE isn't used for buttons, picking a style with
+ // a small delta risks finding a font with a different point-size but with the
+ // same maximum glyph height.
+ constexpr style::TextContext kAlternateContext = style::CONTEXT_DIALOG_TITLE;
+
+ // First sanity that the TextConstants used in the test give different sizes.
+ int default_delta, alternate_delta;
+ gfx::Font::Weight default_weight, alternate_weight;
+ DefaultTypographyProvider::GetDefaultFont(
+ kDefaultContext, style::STYLE_PRIMARY, &default_delta, &default_weight);
+ DefaultTypographyProvider::GetDefaultFont(
+ kAlternateContext, style::STYLE_PRIMARY, &alternate_delta,
+ &alternate_weight);
+ EXPECT_LT(default_delta, alternate_delta);
- const int original_width = button_->GetPreferredSize().width();
- const int original_height = button_->GetPreferredSize().height();
+ const base::string16 text(ASCIIToUTF16("abcdefghijklm"));
+ button_->SetText(text);
+ EXPECT_EQ(default_delta, button_->label()->font_list().GetFontSize() -
+ gfx::FontList().GetFontSize());
- // The button size increases when the font size is increased.
- button_->AdjustFontSize(100);
- EXPECT_GT(button_->GetPreferredSize().width(), original_width);
- EXPECT_GT(button_->GetPreferredSize().height(), original_height);
+ TestLabelButton* alternate_button =
+ new TestLabelButton(text, kAlternateContext);
+ button_->parent()->AddChildView(alternate_button);
+ EXPECT_EQ(alternate_delta,
+ alternate_button->label()->font_list().GetFontSize() -
+ gfx::FontList().GetFontSize());
- // The button returns to its original size when the minimal size is cleared
- // and the original font size is restored.
- button_->SetMinSize(gfx::Size());
- button_->AdjustFontSize(-100);
- EXPECT_EQ(original_width, button_->GetPreferredSize().width());
- EXPECT_EQ(original_height, button_->GetPreferredSize().height());
+ // The button size increases when the font size is increased.
+ EXPECT_LT(button_->GetPreferredSize().width(),
+ alternate_button->GetPreferredSize().width());
+ EXPECT_LT(button_->GetPreferredSize().height(),
+ alternate_button->GetPreferredSize().height());
}
TEST_F(LabelButtonTest, ChangeTextSize) {

Powered by Google App Engine
This is Rietveld 408576698