| 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 189 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 200   fonts.push_back(gfx::Font("Arial", 8)); | 200   fonts.push_back(gfx::Font("Arial", 8)); | 
| 201   fonts.push_back(gfx::Font("Sans serif", 8)); | 201   fonts.push_back(gfx::Font("Sans serif", 8)); | 
| 202   FontList font_list = FontList(fonts); | 202   FontList font_list = FontList(fonts); | 
| 203   EXPECT_EQ(Font::NORMAL, font_list.GetFontStyle()); | 203   EXPECT_EQ(Font::NORMAL, font_list.GetFontStyle()); | 
| 204   fonts[0] = fonts[0].DeriveFont(0, Font::ITALIC | Font::BOLD); | 204   fonts[0] = fonts[0].DeriveFont(0, Font::ITALIC | Font::BOLD); | 
| 205   fonts[1] = fonts[1].DeriveFont(0, Font::ITALIC | Font::BOLD); | 205   fonts[1] = fonts[1].DeriveFont(0, Font::ITALIC | Font::BOLD); | 
| 206   font_list = FontList(fonts); | 206   font_list = FontList(fonts); | 
| 207   EXPECT_EQ(Font::ITALIC | Font::BOLD, font_list.GetFontStyle()); | 207   EXPECT_EQ(Font::ITALIC | Font::BOLD, font_list.GetFontStyle()); | 
| 208 } | 208 } | 
| 209 | 209 | 
| 210 TEST(FontListTest, FontDescString_DeriveFontList) { | 210 TEST(FontListTest, FontDescString_Derive) { | 
| 211   FontList font_list = FontList("Arial,Sans serif, 8px"); | 211   FontList font_list = FontList("Arial,Sans serif,Bold Italic 8px"); | 
| 212 | 212 | 
| 213   FontList derived = font_list.DeriveFontList(Font::BOLD | Font::ITALIC); | 213   FontList derived = font_list.Derive(10, Font::ITALIC | Font::UNDERLINE); | 
| 214   EXPECT_EQ("Arial,Sans serif,Bold Italic 8px", | 214   EXPECT_EQ("Arial,Sans serif,Italic 18px", derived.GetFontDescriptionString()); | 
| 215             derived.GetFontDescriptionString()); | 215   EXPECT_EQ(Font::ITALIC | Font::UNDERLINE, derived.GetFontStyle()); | 
|  | 216 | 
|  | 217   // FontList has a special case for Font::UNDERLINE.  See if the handling of | 
|  | 218   // Font::UNDERLINE in GetFonts() is okay or not. | 
|  | 219   derived.GetFonts(); | 
|  | 220   EXPECT_EQ(Font::ITALIC | Font::UNDERLINE, derived.GetFontStyle()); | 
| 216 } | 221 } | 
| 217 | 222 | 
| 218 TEST(FontListTest, Fonts_DeriveFontList) { | 223 TEST(FontListTest, Fonts_Derive) { | 
| 219   std::vector<Font> fonts; | 224   std::vector<Font> fonts; | 
| 220   fonts.push_back(gfx::Font("Arial", 8)); | 225   fonts.push_back(gfx::Font("Arial", 8)); | 
| 221   fonts.push_back(gfx::Font("Sans serif", 8)); | 226   fonts.push_back(gfx::Font("Sans serif", 8)); | 
| 222   FontList font_list = FontList(fonts); | 227   FontList font_list = FontList(fonts); | 
| 223 | 228 | 
| 224   FontList derived = font_list.DeriveFontList(Font::BOLD | Font::ITALIC); | 229   FontList derived = font_list.Derive(5, Font::BOLD | Font::UNDERLINE); | 
| 225   const std::vector<Font>& derived_fonts = derived.GetFonts(); | 230   const std::vector<Font>& derived_fonts = derived.GetFonts(); | 
| 226 | 231 | 
| 227   EXPECT_EQ(2U, derived_fonts.size()); | 232   EXPECT_EQ(2U, derived_fonts.size()); | 
| 228   EXPECT_EQ("Arial|8|bold|italic", FontToString(derived_fonts[0])); | 233   EXPECT_EQ("Arial|13|bold|underline", FontToString(derived_fonts[0])); | 
| 229   EXPECT_EQ("Sans serif|8|bold|italic", FontToString(derived_fonts[1])); | 234   EXPECT_EQ("Sans serif|13|bold|underline", FontToString(derived_fonts[1])); | 
| 230 } | 235 } | 
| 231 | 236 | 
| 232 TEST(FontListTest, FontDescString_DeriveFontListWithSize) { | 237 TEST(FontListTest, FontDescString_DeriveWithSizeDelta) { | 
| 233   FontList font_list = FontList("Arial,Sans serif,Bold Italic  8px"); |  | 
| 234 |  | 
| 235   FontList derived = font_list.DeriveFontListWithSize(10); |  | 
| 236   EXPECT_EQ("Arial,Sans serif,Bold Italic 10px", |  | 
| 237             derived.GetFontDescriptionString()); |  | 
| 238 } |  | 
| 239 |  | 
| 240 TEST(FontListTest, Fonts_DeriveFontListWithSize) { |  | 
| 241   std::vector<Font> fonts; |  | 
| 242   fonts.push_back(gfx::Font("Arial", 8)); |  | 
| 243   fonts.push_back(gfx::Font("Sans serif", 8)); |  | 
| 244   FontList font_list = FontList(fonts); |  | 
| 245 |  | 
| 246   FontList derived = font_list.DeriveFontListWithSize(5); |  | 
| 247   const std::vector<Font>& derived_fonts = derived.GetFonts(); |  | 
| 248 |  | 
| 249   EXPECT_EQ(2U, derived_fonts.size()); |  | 
| 250   EXPECT_EQ("Arial|5", FontToString(derived_fonts[0])); |  | 
| 251   EXPECT_EQ("Sans serif|5", FontToString(derived_fonts[1])); |  | 
| 252 } |  | 
| 253 |  | 
| 254 TEST(FontListTest, FontDescString_DeriveFontListWithSizeDelta) { |  | 
| 255   FontList font_list = FontList("Arial,Sans serif,Bold 18px"); | 238   FontList font_list = FontList("Arial,Sans serif,Bold 18px"); | 
| 256 | 239 | 
| 257   FontList derived = font_list.DeriveFontListWithSizeDelta(-8); | 240   FontList derived = font_list.DeriveWithSizeDelta(-8); | 
| 258   EXPECT_EQ("Arial,Sans serif,Bold 10px", | 241   EXPECT_EQ("Arial,Sans serif,Bold 10px", | 
| 259             derived.GetFontDescriptionString()); | 242             derived.GetFontDescriptionString()); | 
| 260 } | 243 } | 
| 261 | 244 | 
| 262 TEST(FontListTest, Fonts_DeriveFontListWithSizeDelta) { | 245 TEST(FontListTest, Fonts_DeriveWithSizeDelta) { | 
| 263   std::vector<Font> fonts; | 246   std::vector<Font> fonts; | 
| 264   fonts.push_back(gfx::Font("Arial", 18).DeriveFont(0, Font::ITALIC)); | 247   fonts.push_back(gfx::Font("Arial", 18).DeriveFont(0, Font::ITALIC)); | 
| 265   fonts.push_back(gfx::Font("Sans serif", 18).DeriveFont(0, Font::ITALIC)); | 248   fonts.push_back(gfx::Font("Sans serif", 18).DeriveFont(0, Font::ITALIC)); | 
| 266   FontList font_list = FontList(fonts); | 249   FontList font_list = FontList(fonts); | 
| 267 | 250 | 
| 268   FontList derived = font_list.DeriveFontListWithSizeDelta(-5); | 251   FontList derived = font_list.DeriveWithSizeDelta(-5); | 
| 269   const std::vector<Font>& derived_fonts = derived.GetFonts(); | 252   const std::vector<Font>& derived_fonts = derived.GetFonts(); | 
| 270 | 253 | 
| 271   EXPECT_EQ(2U, derived_fonts.size()); | 254   EXPECT_EQ(2U, derived_fonts.size()); | 
| 272   EXPECT_EQ("Arial|13|italic", FontToString(derived_fonts[0])); | 255   EXPECT_EQ("Arial|13|italic", FontToString(derived_fonts[0])); | 
| 273   EXPECT_EQ("Sans serif|13|italic", FontToString(derived_fonts[1])); | 256   EXPECT_EQ("Sans serif|13|italic", FontToString(derived_fonts[1])); | 
| 274 } | 257 } | 
| 275 | 258 | 
| 276 TEST(FontListTest, FontDescString_DeriveFontListWithSizeDeltaAndStyle) { |  | 
| 277   FontList font_list = FontList("Arial,Sans serif,Bold Italic  8px"); |  | 
| 278 |  | 
| 279   FontList derived = font_list.DeriveFontListWithSizeDeltaAndStyle( |  | 
| 280       10, Font::ITALIC | Font::UNDERLINE); |  | 
| 281   EXPECT_EQ("Arial,Sans serif,Italic 18px", |  | 
| 282             derived.GetFontDescriptionString()); |  | 
| 283   EXPECT_EQ(Font::ITALIC | Font::UNDERLINE, |  | 
| 284             derived.GetFontStyle()); |  | 
| 285 |  | 
| 286   // FontList has a special care for Font::UNDERLINE.  See if the handling of |  | 
| 287   // Font::UNDERLINE in GetFonts() is okay or not. |  | 
| 288   derived.GetFonts(); |  | 
| 289   EXPECT_EQ(Font::ITALIC | Font::UNDERLINE, |  | 
| 290             derived.GetFontStyle()); |  | 
| 291 } |  | 
| 292 |  | 
| 293 TEST(FontListTest, Fonts_DeriveFontListWithSizeDeltaAndStyle) { |  | 
| 294   std::vector<Font> fonts; |  | 
| 295   fonts.push_back(gfx::Font("Arial", 8)); |  | 
| 296   fonts.push_back(gfx::Font("Sans serif", 8)); |  | 
| 297   FontList font_list = FontList(fonts); |  | 
| 298 |  | 
| 299   FontList derived = font_list.DeriveFontListWithSizeDeltaAndStyle( |  | 
| 300       5, Font::BOLD | Font::UNDERLINE); |  | 
| 301   const std::vector<Font>& derived_fonts = derived.GetFonts(); |  | 
| 302 |  | 
| 303   EXPECT_EQ(2U, derived_fonts.size()); |  | 
| 304   EXPECT_EQ("Arial|13|bold|underline", FontToString(derived_fonts[0])); |  | 
| 305   EXPECT_EQ("Sans serif|13|bold|underline", FontToString(derived_fonts[1])); |  | 
| 306 } |  | 
| 307 |  | 
| 308 TEST(FontListTest, Fonts_GetHeight_GetBaseline) { | 259 TEST(FontListTest, Fonts_GetHeight_GetBaseline) { | 
| 309   // 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. | 
| 310   Font font1("Arial", 16); | 261   Font font1("Arial", 16); | 
| 311   ASSERT_EQ("arial", StringToLowerASCII(font1.GetActualFontNameForTesting())); | 262   ASSERT_EQ("arial", StringToLowerASCII(font1.GetActualFontNameForTesting())); | 
| 312   FontList font_list1("Arial, 16px"); | 263   FontList font_list1("Arial, 16px"); | 
| 313   EXPECT_EQ(font1.GetHeight(), font_list1.GetHeight()); | 264   EXPECT_EQ(font1.GetHeight(), font_list1.GetHeight()); | 
| 314   EXPECT_EQ(font1.GetBaseline(), font_list1.GetBaseline()); | 265   EXPECT_EQ(font1.GetBaseline(), font_list1.GetBaseline()); | 
| 315 | 266 | 
| 316   // If there are two different fonts, the font list returns the max value | 267   // If there are two different fonts, the font list returns the max value | 
| 317   // for ascent and descent. | 268   // for ascent and descent. | 
| 318   Font font2("Symbol", 16); | 269   Font font2("Symbol", 16); | 
| 319   ASSERT_EQ("symbol", StringToLowerASCII(font2.GetActualFontNameForTesting())); | 270   ASSERT_EQ("symbol", StringToLowerASCII(font2.GetActualFontNameForTesting())); | 
| 320   EXPECT_NE(font1.GetBaseline(), font2.GetBaseline()); | 271   EXPECT_NE(font1.GetBaseline(), font2.GetBaseline()); | 
| 321   EXPECT_NE(font1.GetHeight() - font1.GetBaseline(), | 272   EXPECT_NE(font1.GetHeight() - font1.GetBaseline(), | 
| 322             font2.GetHeight() - font2.GetBaseline()); | 273             font2.GetHeight() - font2.GetBaseline()); | 
| 323   std::vector<Font> fonts; | 274   std::vector<Font> fonts; | 
| 324   fonts.push_back(font1); | 275   fonts.push_back(font1); | 
| 325   fonts.push_back(font2); | 276   fonts.push_back(font2); | 
| 326   FontList font_list_mix(fonts); | 277   FontList font_list_mix(fonts); | 
| 327   // ascent of FontList == max(ascent of Fonts) | 278   // ascent of FontList == max(ascent of Fonts) | 
| 328   EXPECT_EQ(std::max(font1.GetHeight() - font1.GetBaseline(), | 279   EXPECT_EQ(std::max(font1.GetHeight() - font1.GetBaseline(), | 
| 329                      font2.GetHeight() - font2.GetBaseline()), | 280                      font2.GetHeight() - font2.GetBaseline()), | 
| 330             font_list_mix.GetHeight() - font_list_mix.GetBaseline()); | 281             font_list_mix.GetHeight() - font_list_mix.GetBaseline()); | 
| 331   // descent of FontList == max(descent of Fonts) | 282   // descent of FontList == max(descent of Fonts) | 
| 332   EXPECT_EQ(std::max(font1.GetBaseline(), font2.GetBaseline()), | 283   EXPECT_EQ(std::max(font1.GetBaseline(), font2.GetBaseline()), | 
| 333             font_list_mix.GetBaseline()); | 284             font_list_mix.GetBaseline()); | 
| 334 } | 285 } | 
| 335 | 286 | 
| 336 }  // namespace gfx | 287 }  // namespace gfx | 
| OLD | NEW | 
|---|