| 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 "base/i18n/rtl.h" | 5 #include "base/i18n/rtl.h" |
| 6 #include "base/utf_string_conversions.h" | 6 #include "base/utf_string_conversions.h" |
| 7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
| 8 #include "ui/base/accessibility/accessible_view_state.h" | 8 #include "ui/base/accessibility/accessible_view_state.h" |
| 9 #include "ui/base/l10n/l10n_util.h" | 9 #include "ui/base/l10n/l10n_util.h" |
| 10 #include "ui/gfx/canvas.h" | 10 #include "ui/gfx/canvas.h" |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 177 | 177 |
| 178 // GetPreferredSize and borders. | 178 // GetPreferredSize and borders. |
| 179 label.SetBounds(0, 0, 0, 0); | 179 label.SetBounds(0, 0, 0, 0); |
| 180 gfx::Size required_size_with_border = label.GetPreferredSize(); | 180 gfx::Size required_size_with_border = label.GetPreferredSize(); |
| 181 EXPECT_EQ(required_size_with_border.height(), | 181 EXPECT_EQ(required_size_with_border.height(), |
| 182 required_size.height() + border.height()); | 182 required_size.height() + border.height()); |
| 183 EXPECT_EQ(required_size_with_border.width(), | 183 EXPECT_EQ(required_size_with_border.width(), |
| 184 required_size.width() + border.width()); | 184 required_size.width() + border.width()); |
| 185 } | 185 } |
| 186 | 186 |
| 187 TEST(LabelTest, MultilineSmallAvailableWidthSizing) { |
| 188 Label label; |
| 189 string16 test_text(ASCIIToUTF16("Too Wide.")); |
| 190 |
| 191 label.SetMultiLine(true); |
| 192 label.SetAllowCharacterBreak(true); |
| 193 label.SetElideBehavior(Label::ELIDE_AT_END); |
| 194 label.SetText(test_text); |
| 195 |
| 196 // Check that Label can be laid out at a variety of small sizes, |
| 197 // splitting the words into up to one character per line if necessary. |
| 198 // Incorrect word splitting may cause infinite loops in text layout. |
| 199 gfx::Size required_size = label.GetPreferredSize(); |
| 200 for (int i = 1; i < required_size.width(); ++i) { |
| 201 EXPECT_GT(label.GetHeightForWidth(i), 0); |
| 202 } |
| 203 } |
| 204 |
| 187 TEST(LabelTest, MultiLineSizing) { | 205 TEST(LabelTest, MultiLineSizing) { |
| 188 Label label; | 206 Label label; |
| 189 label.set_focusable(false); | 207 label.set_focusable(false); |
| 190 string16 test_text( | 208 string16 test_text( |
| 191 ASCIIToUTF16("A random string\nwith multiple lines\nand returns!")); | 209 ASCIIToUTF16("A random string\nwith multiple lines\nand returns!")); |
| 192 label.SetText(test_text); | 210 label.SetText(test_text); |
| 193 label.SetMultiLine(true); | 211 label.SetMultiLine(true); |
| 194 | 212 |
| 195 // GetPreferredSize | 213 // GetPreferredSize |
| 196 gfx::Size required_size = label.GetPreferredSize(); | 214 gfx::Size required_size = label.GetPreferredSize(); |
| (...skipping 674 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 871 EXPECT_FALSE(label.GetTooltipHandlerForPoint(gfx::Point(2, 51))); | 889 EXPECT_FALSE(label.GetTooltipHandlerForPoint(gfx::Point(2, 51))); |
| 872 EXPECT_FALSE(label.GetTooltipHandlerForPoint(gfx::Point(-1, 20))); | 890 EXPECT_FALSE(label.GetTooltipHandlerForPoint(gfx::Point(-1, 20))); |
| 873 | 891 |
| 874 // GetTooltipHandlerForPoint works should work in child bounds. | 892 // GetTooltipHandlerForPoint works should work in child bounds. |
| 875 label.SetBounds(2, 2, 10, 10); | 893 label.SetBounds(2, 2, 10, 10); |
| 876 EXPECT_EQ(&label, label.GetTooltipHandlerForPoint(gfx::Point(1, 5))); | 894 EXPECT_EQ(&label, label.GetTooltipHandlerForPoint(gfx::Point(1, 5))); |
| 877 EXPECT_FALSE(label.GetTooltipHandlerForPoint(gfx::Point(3, 11))); | 895 EXPECT_FALSE(label.GetTooltipHandlerForPoint(gfx::Point(3, 11))); |
| 878 } | 896 } |
| 879 | 897 |
| 880 } // namespace views | 898 } // namespace views |
| OLD | NEW |