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

Unified Diff: ui/views/controls/styled_label_unittest.cc

Issue 111023004: Add GetMinimumSize() for Labels and ensure it's zero for empty Links. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years 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
« no previous file with comments | « ui/views/controls/styled_label.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/controls/styled_label_unittest.cc
===================================================================
--- ui/views/controls/styled_label_unittest.cc (revision 239550)
+++ ui/views/controls/styled_label_unittest.cc (working copy)
@@ -7,11 +7,11 @@
#include "base/basictypes.h"
#include "base/memory/scoped_ptr.h"
#include "base/strings/utf_string_conversions.h"
-#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/skia/include/core/SkColor.h"
#include "ui/views/controls/link.h"
#include "ui/views/controls/styled_label.h"
#include "ui/views/controls/styled_label_listener.h"
+#include "ui/views/test/views_test_base.h"
namespace views {
@@ -29,6 +29,7 @@
void InitStyledLabel(const std::string& ascii_text) {
styled_.reset(new StyledLabel(ASCIIToUTF16(ascii_text), this));
+ styled_->set_owned_by_client();
}
int StyledLabelContentHeightForWidth(int w) {
@@ -112,15 +113,19 @@
styled()->GetInsets().height() + 2 * label_preferred_size.height());
styled()->Layout();
ASSERT_EQ(2, styled()->child_count());
- EXPECT_EQ(3, styled()->child_at(0)->bounds().x());
- EXPECT_EQ(3, styled()->child_at(0)->bounds().y());
- EXPECT_EQ(styled()->bounds().height() - 3,
- styled()->child_at(1)->bounds().bottom());
+ EXPECT_EQ(3, styled()->child_at(0)->x());
+ EXPECT_EQ(3, styled()->child_at(0)->y());
+ EXPECT_EQ(styled()->height() - 3, styled()->child_at(1)->bounds().bottom());
}
TEST_F(StyledLabelTest, CreateLinks) {
const std::string text("This is a test block of text.");
InitStyledLabel(text);
+
+ // Without links, there should be no focus border.
+ EXPECT_TRUE(styled()->GetInsets().empty());
+
+ // Now let's add some links.
styled()->AddStyleRange(gfx::Range(0, 1),
StyledLabel::RangeStyleInfo::CreateForLink());
styled()->AddStyleRange(gfx::Range(1, 2),
@@ -130,9 +135,13 @@
styled()->AddStyleRange(gfx::Range(12, 13),
StyledLabel::RangeStyleInfo::CreateForLink());
+ // Now there should be a focus border because there are non-empty Links.
+ EXPECT_FALSE(styled()->GetInsets().empty());
+
+ // Verify layout creates the right number of children.
styled()->SetBounds(0, 0, 1000, 1000);
styled()->Layout();
- ASSERT_EQ(7, styled()->child_count());
+ EXPECT_EQ(7, styled()->child_count());
}
TEST_F(StyledLabelTest, DontBreakLinks) {
@@ -152,13 +161,15 @@
styled()->SetBounds(0, 0, label_preferred_size.width(), pref_height);
styled()->Layout();
ASSERT_EQ(2, styled()->child_count());
- EXPECT_EQ(0, styled()->child_at(0)->bounds().x());
- EXPECT_EQ(0, styled()->child_at(1)->bounds().x());
+ // The label has no focus border while the link (and thus overall styled
+ // label) does, so the label should be inset by the width of the focus border.
+ EXPECT_EQ(Label::kFocusBorderPadding, styled()->child_at(0)->x());
+ EXPECT_EQ(0, styled()->child_at(1)->x());
}
TEST_F(StyledLabelTest, StyledRangeWithDisabledLineWrapping) {
const std::string text("This is a test block of text, ");
- const std::string unbreakable_text("and this should not be breaked");
+ const std::string unbreakable_text("and this should not be broken");
InitStyledLabel(text + unbreakable_text);
StyledLabel::RangeStyleInfo style_info;
style_info.disable_line_wrapping = true;
@@ -176,8 +187,8 @@
styled()->SetBounds(0, 0, label_preferred_size.width(), pref_height);
styled()->Layout();
ASSERT_EQ(2, styled()->child_count());
- EXPECT_EQ(0, styled()->child_at(0)->bounds().x());
- EXPECT_EQ(0, styled()->child_at(1)->bounds().x());
+ EXPECT_EQ(0, styled()->child_at(0)->x());
+ EXPECT_EQ(0, styled()->child_at(1)->x());
}
TEST_F(StyledLabelTest, StyledRangeUnderlined) {
@@ -229,7 +240,7 @@
StyledLabel unstyled(ASCIIToUTF16(bold_text), this);
unstyled.SetBounds(0, 0, styled_width, pref_height);
unstyled.Layout();
- ASSERT_EQ(1, unstyled.child_count());
+ EXPECT_EQ(1, unstyled.child_count());
styled()->SetBounds(0, 0, styled_width, pref_height);
styled()->Layout();
@@ -251,10 +262,10 @@
static_cast<Label*>(styled()->child_at(2))->font().GetStyle());
// The second bold part should start on a new line.
- EXPECT_EQ(0, styled()->child_at(0)->bounds().x());
- EXPECT_EQ(0, styled()->child_at(1)->bounds().x());
- EXPECT_EQ(styled()->child_at(1)->bounds().right() - 2,
- styled()->child_at(2)->bounds().x());
+ EXPECT_EQ(0, styled()->child_at(0)->x());
+ EXPECT_EQ(0, styled()->child_at(1)->x());
+ EXPECT_EQ(styled()->child_at(1)->bounds().right(),
+ styled()->child_at(2)->x());
}
TEST_F(StyledLabelTest, Color) {
@@ -342,13 +353,16 @@
EXPECT_EQ(label_preferred_size.width(), styled()->width());
ASSERT_EQ(5, styled()->child_count());
- EXPECT_EQ(0, styled()->child_at(0)->bounds().x());
- EXPECT_EQ(styled()->child_at(0)->bounds().right() - 2,
- styled()->child_at(1)->bounds().x());
- EXPECT_EQ(0, styled()->child_at(2)->bounds().x());
- EXPECT_EQ(styled()->child_at(2)->bounds().right() - 2,
- styled()->child_at(3)->bounds().x());
- EXPECT_EQ(0, styled()->child_at(4)->bounds().x());
+ // The labels have no focus border while the link (and thus overall styled
+ // label) does, so the labels should be inset by the width of the focus
+ // border.
+ EXPECT_EQ(Label::kFocusBorderPadding, styled()->child_at(0)->x());
+ EXPECT_EQ(styled()->child_at(0)->bounds().right(),
+ styled()->child_at(1)->x());
+ EXPECT_EQ(Label::kFocusBorderPadding, styled()->child_at(2)->x());
+ EXPECT_EQ(styled()->child_at(2)->bounds().right(),
+ styled()->child_at(3)->x());
+ EXPECT_EQ(0, styled()->child_at(4)->x());
string16 tooltip;
EXPECT_TRUE(
@@ -360,10 +374,10 @@
}
TEST_F(StyledLabelTest, HandleEmptyLayout) {
- const std::string text("This is a test block of text, ");
+ const std::string text("This is a test block of text.");
InitStyledLabel(text);
styled()->Layout();
- ASSERT_EQ(0, styled()->child_count());
+ EXPECT_EQ(0, styled()->child_count());
}
} // namespace
« no previous file with comments | « ui/views/controls/styled_label.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698