/
DirnameTest.php
47 lines (38 loc) · 1.17 KB
/
DirnameTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
namespace Psalm\Tests\ReturnTypeProvider;
use Psalm\Tests\TestCase;
use Psalm\Tests\Traits\ValidCodeAnalysisTestTrait;
use function addslashes;
use const DIRECTORY_SEPARATOR;
class DirnameTest extends TestCase
{
use ValidCodeAnalysisTestTrait;
public function providerValidCodeParse(): iterable
{
$input = 'a' . DIRECTORY_SEPARATOR . 'b' . DIRECTORY_SEPARATOR . 'c';
yield 'dirnameOfLiteralStringPathReturnsLiteralString' => [
'code' => '<?php
$dir = dirname("' . $input . '");
',
'assertions' => [
'$dir===' => "'a" . addslashes(DIRECTORY_SEPARATOR) . "b'",
],
];
yield 'dirnameOfStringPathReturnsString' => [
'code' => '<?php
$dir = dirname(implode("", range("a", "c")));
',
'assertions' => [
'$dir===' => 'string',
],
];
yield 'dirnameOfIntLevelReturnsString' => [
'code' => '<?php
$dir = dirname("' . $input . '", 0);
',
'assertions' => [
'$dir===' => 'string',
],
];
}
}