3 declare(strict_types
=1);
5 namespace PhpMyAdmin\Tests
;
8 use PHPUnit\Framework\Attributes\CoversClass
;
10 #[CoversClass(Font::class)]
11 class FontTest
extends AbstractTestCase
18 protected function setUp(): void
22 $this->font
= new Font();
26 * Test getStringWidth with different characters.
28 public function testGetStringWidth(): void
33 $this->font
->getStringWidth('', 'arial', 10),
39 $this->font
->getStringWidth(' ', 'arial', 10),
45 $this->font
->getStringWidth('a', 'arial', 10),
51 $this->font
->getStringWidth('aa', 'arial', 10),
57 $this->font
->getStringWidth('i', 'arial', 10),
63 $this->font
->getStringWidth('f', 'arial', 10),
69 $this->font
->getStringWidth('t', 'arial', 10),
75 $this->font
->getStringWidth('if', 'arial', 10),
81 $this->font
->getStringWidth('it', 'arial', 10),
87 $this->font
->getStringWidth('r', 'arial', 10),
93 $this->font
->getStringWidth('1', 'arial', 10),
99 $this->font
->getStringWidth('c', 'arial', 10),
105 $this->font
->getStringWidth('F', 'arial', 10),
111 $this->font
->getStringWidth('A', 'arial', 10),
117 $this->font
->getStringWidth('w', 'arial', 10),
123 $this->font
->getStringWidth('G', 'arial', 10),
129 $this->font
->getStringWidth('m', 'arial', 10),
135 $this->font
->getStringWidth('W', 'arial', 10),
141 $this->font
->getStringWidth('$', 'arial', 10),
146 * Test getStringWidth with different fonts.
148 public function testGetStringWidthFont(): void
150 // string "phpMyAdmin", with Arial 10
153 $this->font
->getStringWidth('phpMyAdmin', 'arial', 10),
156 // string "phpMyAdmin", with No font
159 $this->font
->getStringWidth('phpMyAdmin', '', 10),
162 // string "phpMyAdmin", with Times 10
165 $this->font
->getStringWidth('phpMyAdmin', 'times', 10),
168 // string "phpMyAdmin", with Broadway 10
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
183 $this->font
->getStringWidth('phpMyAdmin', 'arial', 0),
186 // string "phpMyAdmin", with Arial 10
189 $this->font
->getStringWidth('phpMyAdmin', 'arial', 10),
192 // string "phpMyAdmin", with Arial 11
195 $this->font
->getStringWidth('phpMyAdmin', 'arial', 11),
198 // string "phpMyAdmin", with Arial 20
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)
213 $this->font
->getStringWidth('a', 'arial', 10, ['list']),
216 // string "a", with invalid charlist (= array without proper structure :
217 // modifier is missing
220 $this->font
->getStringWidth(
228 // string "a", with invalid charlist (= array without proper structure :
232 $this->font
->getStringWidth(
236 [['modifier' => 0.61]],
240 // string "a", with invalid charlist (= array without proper structure :
241 // chars is not an array
244 $this->font
->getStringWidth(
248 [['chars' => 'a', 'modifier' => 0.61]],
252 // string "a", with valid charlist
255 $this->font
->getStringWidth(
259 [['chars' => ['a'], 'modifier' => 0.61]],