Fix Display\ResultsTest test on Windows
[phpmyadmin.git] / test / classes / FontTest.php
bloba1bda75ef8062a509054d220c5fb3d516387a03b
1 <?php
2 /**
3 * Tests for PhpMyAdmin\Font class
5 * @package PhpMyAdmin-test
6 */
7 declare(strict_types=1);
9 namespace PhpMyAdmin\Tests;
11 use PhpMyAdmin\Font;
12 use PhpMyAdmin\Tests\PmaTestCase;
14 /**
15 * Tests for PhpMyAdmin\Font class
17 * @package PhpMyAdmin-test
19 class FontTest extends PmaTestCase
21 /**
22 * @var Font
24 private $font;
26 /**
27 * Sets up the fixture
29 * @return void
31 protected function setUp(): void
33 $this->font = new Font();
36 /**
37 * Test getStringWidth with different characters.
39 * @return void
41 public function testGetStringWidth()
43 // empty string
44 $this->assertEquals(
46 $this->font->getStringWidth("", "arial", 10)
49 // empty string
50 $this->assertEquals(
52 $this->font->getStringWidth(" ", "arial", 10)
55 // string "a"
56 $this->assertEquals(
58 $this->font->getStringWidth("a", "arial", 10)
61 // string "aa"
62 $this->assertEquals(
63 12,
64 $this->font->getStringWidth("aa", "arial", 10)
67 // string "i"
68 $this->assertEquals(
70 $this->font->getStringWidth("i", "arial", 10)
73 // string "f"
74 $this->assertEquals(
76 $this->font->getStringWidth("f", "arial", 10)
79 // string "t"
80 $this->assertEquals(
82 $this->font->getStringWidth("t", "arial", 10)
85 // string "if"
86 $this->assertEquals(
88 $this->font->getStringWidth("if", "arial", 10)
91 // string "it"
92 $this->assertEquals(
94 $this->font->getStringWidth("it", "arial", 10)
97 // string "r"
98 $this->assertEquals(
100 $this->font->getStringWidth("r", "arial", 10)
103 // string "1"
104 $this->assertEquals(
106 $this->font->getStringWidth("1", "arial", 10)
109 // string "c"
110 $this->assertEquals(
112 $this->font->getStringWidth("c", "arial", 10)
115 // string "F"
116 $this->assertEquals(
118 $this->font->getStringWidth("F", "arial", 10)
121 // string "A"
122 $this->assertEquals(
124 $this->font->getStringWidth("A", "arial", 10)
127 // string "w"
128 $this->assertEquals(
130 $this->font->getStringWidth("w", "arial", 10)
133 // string "G"
134 $this->assertEquals(
136 $this->font->getStringWidth("G", "arial", 10)
139 // string "m"
140 $this->assertEquals(
142 $this->font->getStringWidth("m", "arial", 10)
145 // string "W"
146 $this->assertEquals(
148 $this->font->getStringWidth("W", "arial", 10)
151 // string "$"
152 $this->assertEquals(
154 $this->font->getStringWidth("$", "arial", 10)
159 * Test getStringWidth with different fonts.
161 * @return void
163 public function testGetStringWidthFont()
165 // string "phpMyAdmin", with Arial 10
166 $this->assertEquals(
168 $this->font->getStringWidth("phpMyAdmin", "arial", 10)
171 // string "phpMyAdmin", with No font
172 $this->assertEquals(
174 $this->font->getStringWidth("phpMyAdmin", "", 10)
177 // string "phpMyAdmin", with Times 10
178 $this->assertEquals(
180 $this->font->getStringWidth("phpMyAdmin", "times", 10)
183 // string "phpMyAdmin", with Broadway 10
184 $this->assertEquals(
186 $this->font->getStringWidth("phpMyAdmin", "broadway", 10)
191 * Test getStringWidth with different font sizes.
193 * @return void
195 public function testGetStringWidthSize()
197 // string "phpMyAdmin", with font size 0
198 $this->assertEquals(
200 $this->font->getStringWidth("phpMyAdmin", "arial", 0)
203 // string "phpMyAdmin", with Arial 10
204 $this->assertEquals(
206 $this->font->getStringWidth("phpMyAdmin", "arial", 10)
209 // string "phpMyAdmin", with Arial 11
210 $this->assertEquals(
212 $this->font->getStringWidth("phpMyAdmin", "arial", 11)
215 // string "phpMyAdmin", with Arial 20
216 $this->assertEquals(
217 118,
218 $this->font->getStringWidth("phpMyAdmin", "arial", 20)
223 * Test getStringWidth with a custom charList.
225 * @return void
227 public function testGetStringWidthCharLists()
229 // string "a", with invalid charlist (= array without proper structure)
230 $this->assertEquals(
232 $this->font->getStringWidth("a", "arial", 10, ["list"])
235 // string "a", with invalid charlist (= array without proper structure :
236 // modifier is missing
237 $this->assertEquals(
239 $this->font->getStringWidth(
240 "a",
241 "arial",
243 [["chars" => "a"]]
247 // string "a", with invalid charlist (= array without proper structure :
248 // chars is missing
249 $this->assertEquals(
251 $this->font->getStringWidth(
252 "a",
253 "arial",
255 [["modifier" => 0.61]]
259 // string "a", with invalid charlist (= array without proper structure :
260 // chars is not an array
261 $this->assertEquals(
263 $this->font->getStringWidth(
264 "a",
265 "arial",
269 "chars" => "a",
270 "modifier" => 0.61,
276 // string "a", with valid charlist
277 $this->assertEquals(
279 $this->font->getStringWidth(
280 "a",
281 "arial",
285 "chars" => ["a"],
286 "modifier" => 0.61,