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/gfx/font_list.h" | 5 #include "ui/gfx/font_list.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
259 TEST(FontListTest, Fonts_GetHeight_GetBaseline) { | 259 TEST(FontListTest, Fonts_GetHeight_GetBaseline) { |
260 // If a font list has only one font, the height and baseline must be the same. | 260 // If a font list has only one font, the height and baseline must be the same. |
261 Font font1("Arial", 16); | 261 Font font1("Arial", 16); |
262 ASSERT_EQ("arial", | 262 ASSERT_EQ("arial", |
263 base::StringToLowerASCII(font1.GetActualFontNameForTesting())); | 263 base::StringToLowerASCII(font1.GetActualFontNameForTesting())); |
264 FontList font_list1("Arial, 16px"); | 264 FontList font_list1("Arial, 16px"); |
265 EXPECT_EQ(font1.GetHeight(), font_list1.GetHeight()); | 265 EXPECT_EQ(font1.GetHeight(), font_list1.GetHeight()); |
266 EXPECT_EQ(font1.GetBaseline(), font_list1.GetBaseline()); | 266 EXPECT_EQ(font1.GetBaseline(), font_list1.GetBaseline()); |
267 | 267 |
268 // If there are two different fonts, the font list returns the max value | 268 // If there are two different fonts, the font list returns the max value |
269 // for ascent and descent. | 269 // for the baseline (ascent) and height. |
msw
2015/01/13 22:43:59
nit: revert this comment for the height, it's actu
| |
270 Font font2("Symbol", 16); | 270 Font font2("Symbol", 16); |
271 ASSERT_EQ("symbol", | 271 ASSERT_EQ("symbol", |
272 base::StringToLowerASCII(font2.GetActualFontNameForTesting())); | 272 base::StringToLowerASCII(font2.GetActualFontNameForTesting())); |
273 EXPECT_NE(font1.GetBaseline(), font2.GetBaseline()); | 273 EXPECT_NE(font1.GetBaseline(), font2.GetBaseline()); |
274 EXPECT_NE(font1.GetHeight() - font1.GetBaseline(), | 274 EXPECT_NE(font1.GetHeight(), font2.GetHeight()); |
msw
2015/01/13 21:59:57
nit: can you leave this check as it was?
ananta
2015/01/13 22:21:46
No. This check fails on DW and also fails with GDI
msw
2015/01/13 22:43:59
That's unfortunate, the test loses value if we can
ananta
2015/01/13 23:39:40
Added a TODO
| |
275 font2.GetHeight() - font2.GetBaseline()); | |
276 std::vector<Font> fonts; | 275 std::vector<Font> fonts; |
277 fonts.push_back(font1); | 276 fonts.push_back(font1); |
278 fonts.push_back(font2); | 277 fonts.push_back(font2); |
279 FontList font_list_mix(fonts); | 278 FontList font_list_mix(fonts); |
280 // ascent of FontList == max(ascent of Fonts) | 279 // ascent of FontList == max(ascent of Fonts) |
280 EXPECT_EQ(std::max(font1.GetBaseline(), font2.GetBaseline()), | |
281 font_list_mix.GetBaseline()); | |
282 // descent of FontList == max(descent of Fonts) | |
281 EXPECT_EQ(std::max(font1.GetHeight() - font1.GetBaseline(), | 283 EXPECT_EQ(std::max(font1.GetHeight() - font1.GetBaseline(), |
282 font2.GetHeight() - font2.GetBaseline()), | 284 font2.GetHeight() - font2.GetBaseline()), |
283 font_list_mix.GetHeight() - font_list_mix.GetBaseline()); | 285 font_list_mix.GetHeight() - font_list_mix.GetBaseline()); |
284 // descent of FontList == max(descent of Fonts) | |
285 EXPECT_EQ(std::max(font1.GetBaseline(), font2.GetBaseline()), | |
286 font_list_mix.GetBaseline()); | |
287 } | 286 } |
288 | 287 |
289 TEST(FontListTest, Fonts_DeriveWithHeightUpperBound) { | 288 TEST(FontListTest, Fonts_DeriveWithHeightUpperBound) { |
290 std::vector<Font> fonts; | 289 std::vector<Font> fonts; |
291 | 290 |
292 fonts.push_back(gfx::Font("Arial", 18)); | 291 fonts.push_back(gfx::Font("Arial", 18)); |
293 fonts.push_back(gfx::Font("Sans serif", 18)); | 292 fonts.push_back(gfx::Font("Sans serif", 18)); |
294 fonts.push_back(gfx::Font("Symbol", 18)); | 293 fonts.push_back(gfx::Font("Symbol", 18)); |
295 FontList font_list = FontList(fonts); | 294 FontList font_list = FontList(fonts); |
296 | 295 |
297 // A smaller upper bound should derive a font list with a smaller height. | 296 // A smaller upper bound should derive a font list with a smaller height. |
298 const int height_1 = font_list.GetHeight() - 5; | 297 const int height_1 = font_list.GetHeight() - 5; |
299 FontList derived_1 = font_list.DeriveWithHeightUpperBound(height_1); | 298 FontList derived_1 = font_list.DeriveWithHeightUpperBound(height_1); |
300 EXPECT_LE(derived_1.GetHeight(), height_1); | 299 EXPECT_LE(derived_1.GetHeight(), height_1); |
301 EXPECT_LT(derived_1.GetHeight(), font_list.GetHeight()); | 300 EXPECT_LT(derived_1.GetHeight(), font_list.GetHeight()); |
302 EXPECT_LT(derived_1.GetFontSize(), font_list.GetFontSize()); | 301 EXPECT_LT(derived_1.GetFontSize(), font_list.GetFontSize()); |
303 | 302 |
304 // A larger upper bound should not change the height of the font list. | 303 // A larger upper bound should not change the height of the font list. |
305 const int height_2 = font_list.GetHeight() + 5; | 304 const int height_2 = font_list.GetHeight() + 5; |
306 FontList derived_2 = font_list.DeriveWithHeightUpperBound(height_2); | 305 FontList derived_2 = font_list.DeriveWithHeightUpperBound(height_2); |
307 EXPECT_LE(derived_2.GetHeight(), height_2); | 306 EXPECT_LE(derived_2.GetHeight(), height_2); |
308 EXPECT_EQ(font_list.GetHeight(), derived_2.GetHeight()); | 307 EXPECT_EQ(font_list.GetHeight(), derived_2.GetHeight()); |
309 EXPECT_EQ(font_list.GetFontSize(), derived_2.GetFontSize()); | 308 EXPECT_EQ(font_list.GetFontSize(), derived_2.GetFontSize()); |
310 } | 309 } |
311 | 310 |
312 } // namespace gfx | 311 } // namespace gfx |
OLD | NEW |