Translated using Weblate (Portuguese)
[phpmyadmin.git] / tests / unit / FontTest.php
blob2380f28908b8613c3f0a827bdec031fb73cf8cc6
1 <?php
3 declare(strict_types=1);
5 namespace PhpMyAdmin\Tests;
7 use PhpMyAdmin\Font;
8 use PHPUnit\Framework\Attributes\CoversClass;
10 #[CoversClass(Font::class)]
11 class FontTest extends AbstractTestCase
13 private Font $font;
15 /**
16 * Sets up the fixture
18 protected function setUp(): void
20 parent::setUp();
22 $this->font = new Font();
25 /**
26 * Test getStringWidth with different characters.
28 public function testGetStringWidth(): void
30 // empty string
31 self::assertSame(
33 $this->font->getStringWidth('', 'arial', 10),
36 // empty string
37 self::assertSame(
39 $this->font->getStringWidth(' ', 'arial', 10),
42 // string "a"
43 self::assertSame(
45 $this->font->getStringWidth('a', 'arial', 10),
48 // string "aa"
49 self::assertSame(
50 12,
51 $this->font->getStringWidth('aa', 'arial', 10),
54 // string "i"
55 self::assertSame(
57 $this->font->getStringWidth('i', 'arial', 10),
60 // string "f"
61 self::assertSame(
63 $this->font->getStringWidth('f', 'arial', 10),
66 // string "t"
67 self::assertSame(
69 $this->font->getStringWidth('t', 'arial', 10),
72 // string "if"
73 self::assertSame(
75 $this->font->getStringWidth('if', 'arial', 10),
78 // string "it"
79 self::assertSame(
81 $this->font->getStringWidth('it', 'arial', 10),
84 // string "r"
85 self::assertSame(
87 $this->font->getStringWidth('r', 'arial', 10),
90 // string "1"
91 self::assertSame(
93 $this->font->getStringWidth('1', 'arial', 10),
96 // string "c"
97 self::assertSame(
99 $this->font->getStringWidth('c', 'arial', 10),
102 // string "F"
103 self::assertSame(
105 $this->font->getStringWidth('F', 'arial', 10),
108 // string "A"
109 self::assertSame(
111 $this->font->getStringWidth('A', 'arial', 10),
114 // string "w"
115 self::assertSame(
117 $this->font->getStringWidth('w', 'arial', 10),
120 // string "G"
121 self::assertSame(
123 $this->font->getStringWidth('G', 'arial', 10),
126 // string "m"
127 self::assertSame(
129 $this->font->getStringWidth('m', 'arial', 10),
132 // string "W"
133 self::assertSame(
135 $this->font->getStringWidth('W', 'arial', 10),
138 // string "$"
139 self::assertSame(
141 $this->font->getStringWidth('$', 'arial', 10),
146 * Test getStringWidth with different fonts.
148 public function testGetStringWidthFont(): void
150 // string "phpMyAdmin", with Arial 10
151 self::assertSame(
153 $this->font->getStringWidth('phpMyAdmin', 'arial', 10),
156 // string "phpMyAdmin", with No font
157 self::assertSame(
159 $this->font->getStringWidth('phpMyAdmin', '', 10),
162 // string "phpMyAdmin", with Times 10
163 self::assertSame(
165 $this->font->getStringWidth('phpMyAdmin', 'times', 10),
168 // string "phpMyAdmin", with Broadway 10
169 self::assertSame(
171 $this->font->getStringWidth('phpMyAdmin', 'broadway', 10),
176 * Test getStringWidth with different font sizes.
178 public function testGetStringWidthSize(): void
180 // string "phpMyAdmin", with font size 0
181 self::assertSame(
183 $this->font->getStringWidth('phpMyAdmin', 'arial', 0),
186 // string "phpMyAdmin", with Arial 10
187 self::assertSame(
189 $this->font->getStringWidth('phpMyAdmin', 'arial', 10),
192 // string "phpMyAdmin", with Arial 11
193 self::assertSame(
195 $this->font->getStringWidth('phpMyAdmin', 'arial', 11),
198 // string "phpMyAdmin", with Arial 20
199 self::assertSame(
200 118,
201 $this->font->getStringWidth('phpMyAdmin', 'arial', 20),
206 * Test getStringWidth with a custom charList.
208 public function testGetStringWidthCharLists(): void
210 // string "a", with invalid charlist (= array without proper structure)
211 self::assertSame(
213 $this->font->getStringWidth('a', 'arial', 10, ['list']),
216 // string "a", with invalid charlist (= array without proper structure :
217 // modifier is missing
218 self::assertSame(
220 $this->font->getStringWidth(
221 'a',
222 'arial',
224 [['chars' => 'a']],
228 // string "a", with invalid charlist (= array without proper structure :
229 // chars is missing
230 self::assertSame(
232 $this->font->getStringWidth(
233 'a',
234 'arial',
236 [['modifier' => 0.61]],
240 // string "a", with invalid charlist (= array without proper structure :
241 // chars is not an array
242 self::assertSame(
244 $this->font->getStringWidth(
245 'a',
246 'arial',
248 [['chars' => 'a', 'modifier' => 0.61]],
252 // string "a", with valid charlist
253 self::assertSame(
255 $this->font->getStringWidth(
256 'a',
257 'arial',
259 [['chars' => ['a'], 'modifier' => 0.61]],