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

Side by Side Diff: gfx/font_unittest.cc

Issue 6246027: Move src/gfx/ to src/ui/gfx... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « gfx/font.cc ('k') | gfx/gdi_util.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "gfx/font.h"
6
7 #include "base/utf_string_conversions.h"
8 #if defined(OS_WIN)
9 #include "gfx/platform_font_win.h"
10 #endif // defined(OS_WIN)
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 namespace {
14
15 using gfx::Font;
16
17 class FontTest : public testing::Test {
18 };
19
20 #if defined(OS_WIN)
21 class ScopedMinimumFontSizeCallback {
22 public:
23 explicit ScopedMinimumFontSizeCallback(int minimum_size) {
24 minimum_size_ = minimum_size;
25 old_callback_ = gfx::PlatformFontWin::get_minimum_font_size_callback;
26 gfx::PlatformFontWin::get_minimum_font_size_callback = &GetMinimumFontSize;
27 }
28
29 ~ScopedMinimumFontSizeCallback() {
30 gfx::PlatformFontWin::get_minimum_font_size_callback = old_callback_;
31 }
32
33 private:
34 static int GetMinimumFontSize() {
35 return minimum_size_;
36 }
37
38 gfx::PlatformFontWin::GetMinimumFontSizeCallback old_callback_;
39 static int minimum_size_;
40
41 DISALLOW_COPY_AND_ASSIGN(ScopedMinimumFontSizeCallback);
42 };
43
44 int ScopedMinimumFontSizeCallback::minimum_size_ = 0;
45 #endif // defined(OS_WIN)
46
47
48 TEST_F(FontTest, LoadArial) {
49 Font cf(ASCIIToUTF16("Arial"), 16);
50 ASSERT_TRUE(cf.GetNativeFont());
51 ASSERT_EQ(cf.GetStyle(), Font::NORMAL);
52 ASSERT_EQ(cf.GetFontSize(), 16);
53 ASSERT_EQ(cf.GetFontName(), ASCIIToUTF16("Arial"));
54 }
55
56 TEST_F(FontTest, LoadArialBold) {
57 Font cf(ASCIIToUTF16("Arial"), 16);
58 Font bold(cf.DeriveFont(0, Font::BOLD));
59 ASSERT_TRUE(bold.GetNativeFont());
60 ASSERT_EQ(bold.GetStyle(), Font::BOLD);
61 }
62
63 TEST_F(FontTest, Ascent) {
64 Font cf(ASCIIToUTF16("Arial"), 16);
65 ASSERT_GT(cf.GetBaseline(), 2);
66 ASSERT_LE(cf.GetBaseline(), 22);
67 }
68
69 TEST_F(FontTest, Height) {
70 Font cf(ASCIIToUTF16("Arial"), 16);
71 ASSERT_GE(cf.GetHeight(), 16);
72 // TODO(akalin): Figure out why height is so large on Linux.
73 ASSERT_LE(cf.GetHeight(), 26);
74 }
75
76 TEST_F(FontTest, AvgWidths) {
77 Font cf(ASCIIToUTF16("Arial"), 16);
78 ASSERT_EQ(cf.GetExpectedTextWidth(0), 0);
79 ASSERT_GT(cf.GetExpectedTextWidth(1), cf.GetExpectedTextWidth(0));
80 ASSERT_GT(cf.GetExpectedTextWidth(2), cf.GetExpectedTextWidth(1));
81 ASSERT_GT(cf.GetExpectedTextWidth(3), cf.GetExpectedTextWidth(2));
82 }
83
84 TEST_F(FontTest, Widths) {
85 Font cf(ASCIIToUTF16("Arial"), 16);
86 ASSERT_EQ(cf.GetStringWidth(ASCIIToUTF16("")), 0);
87 ASSERT_GT(cf.GetStringWidth(ASCIIToUTF16("a")),
88 cf.GetStringWidth(ASCIIToUTF16("")));
89 ASSERT_GT(cf.GetStringWidth(ASCIIToUTF16("ab")),
90 cf.GetStringWidth(ASCIIToUTF16("a")));
91 ASSERT_GT(cf.GetStringWidth(ASCIIToUTF16("abc")),
92 cf.GetStringWidth(ASCIIToUTF16("ab")));
93 }
94
95 #if defined(OS_WIN)
96 TEST_F(FontTest, DeriveFontResizesIfSizeTooSmall) {
97 // This creates font of height -8.
98 Font cf(L"Arial", 6);
99 // The minimum font size is set to 5 in browser_main.cc.
100 ScopedMinimumFontSizeCallback minimum_size(5);
101
102 Font derived_font = cf.DeriveFont(-4);
103 LOGFONT font_info;
104 GetObject(derived_font.GetNativeFont(), sizeof(LOGFONT), &font_info);
105 EXPECT_EQ(-5, font_info.lfHeight);
106 }
107
108 TEST_F(FontTest, DeriveFontKeepsOriginalSizeIfHeightOk) {
109 // This creates font of height -8.
110 Font cf(L"Arial", 6);
111 // The minimum font size is set to 5 in browser_main.cc.
112 ScopedMinimumFontSizeCallback minimum_size(5);
113
114 Font derived_font = cf.DeriveFont(-2);
115 LOGFONT font_info;
116 GetObject(derived_font.GetNativeFont(), sizeof(LOGFONT), &font_info);
117 EXPECT_EQ(-6, font_info.lfHeight);
118 }
119 #endif
120 } // namespace
OLDNEW
« no previous file with comments | « gfx/font.cc ('k') | gfx/gdi_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698