1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace BasicTests; |
4
|
|
|
|
5
|
|
|
|
6
|
|
|
use CommonTestClass; |
7
|
|
|
use kalanis\kw_routed_paths\Sources; |
8
|
|
|
|
9
|
|
|
|
10
|
|
|
class SourcesTest extends CommonTestClass |
11
|
|
|
{ |
12
|
|
|
public function testBasic(): void |
13
|
|
|
{ |
14
|
|
|
$params = new Sources\Arrays(['abc'=>'def','ghi'=>'jkl','mno'=>'pqr',]); |
15
|
|
|
$this->assertEquals(['abc'=>'def','ghi'=>'jkl','mno'=>'pqr',], $params->getData()); |
16
|
|
|
} |
17
|
|
|
|
18
|
|
|
public function testArrayAccess1(): void |
19
|
|
|
{ |
20
|
|
|
$data = new \ArrayObject([ |
21
|
|
|
'abc'=>'/Sources/Request.php?abc=def&ghi[]=jkl&ghi[]=mno&pqr', |
22
|
|
|
'ghi'=>'/web/ms:dfhfdh/l:fdgh/g:/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1', |
23
|
|
|
'mno'=>'/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1&lang=rrr', |
24
|
|
|
]); |
25
|
|
|
|
26
|
|
|
$params = new Sources\ArrayAccess($data, 'not in source data', ''); |
27
|
|
|
$this->assertEquals([ |
28
|
|
|
'staticPath' => null, 'virtualPrefix' => null, 'path' => '', |
29
|
|
|
], $params->getData()); |
30
|
|
|
} |
31
|
|
|
|
32
|
|
|
public function testArrayAccess2(): void |
33
|
|
|
{ |
34
|
|
|
$data = new \ArrayObject([ |
35
|
|
|
'abc'=>'/Sources/Request.php?abc=def&ghi[]=jkl&ghi[]=mno&pqr', |
36
|
|
|
'ghi'=>'/web/ms:dfhfdh/l:fdgh/g:/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1', |
37
|
|
|
'mno'=>'/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1&lang=rrr', |
38
|
|
|
]); |
39
|
|
|
|
40
|
|
|
$params = new Sources\ArrayAccess($data, 'ghi'); |
41
|
|
|
$this->assertEquals([ |
42
|
|
|
'staticPath' => '/web/ms:dfhfdh/l:fdgh/g:/definite/unknown/', |
43
|
|
|
'virtualPrefix' => null, 'abc'=>'def', 'ghi' => ['jkl', 'mno'], |
44
|
|
|
'pqr' => '', 'vars' => '1' |
45
|
|
|
], $params->getData()); |
46
|
|
|
} |
47
|
|
|
|
48
|
|
|
/** |
49
|
|
|
* @param string $uri |
50
|
|
|
* @param string|null $virtualDir |
51
|
|
|
* @param string $key |
52
|
|
|
* @param bool $wantExistence |
53
|
|
|
* @param string|string[]|null $value |
54
|
|
|
* @dataProvider requestProvider |
55
|
|
|
*/ |
56
|
|
|
public function testRequest(string $uri, ?string $virtualDir, string $key, bool $wantExistence, $value) |
57
|
|
|
{ |
58
|
|
|
$params = new Sources\Request($uri, $virtualDir); |
59
|
|
|
$result = $params->getData(); |
60
|
|
|
$this->assertEquals($wantExistence, isset($result[$key])); |
61
|
|
|
if ($wantExistence) { |
62
|
|
|
$this->assertEquals($value, $result[$key]); |
63
|
|
|
} |
64
|
|
|
} |
65
|
|
|
|
66
|
|
|
public function requestProvider(): array |
67
|
|
|
{ |
68
|
|
|
return [ |
69
|
|
|
['/Sources/Request.php?abc=def&ghi[]=jkl&ghi[]=mno&pqr', null, 'abc', true, 'def'], |
70
|
|
|
['/Sources/Request.php?abc=def&ghi[]=jkl&ghi[]=mno&pqr', null, 'lang', false, null], |
71
|
|
|
['/Sources/Request.php?abc=def&ghi[]=jkl&ghi[]=mno&pqr', null, 'staticPath', true, '/Sources/Request.php'], |
72
|
|
|
['/Sources/Request.php?abc=def&ghi[]=jkl&ghi[]=mno&pqr', null, 'path', false, null], |
73
|
|
|
['/Sources/Request.php?abc=def&ghi[]=jkl&ghi[]=mno&pqr', '', 'staticPath', false, null], |
74
|
|
|
['/Sources/Request.php?abc=def&ghi[]=jkl&ghi[]=mno&pqr', '', 'path', true, '/Sources/Request.php'], |
75
|
|
|
['/Sources/Request.php?abc=def&ghi[]=jkl&ghi[]=mno&pqr', '', 'ghi', true, ['jkl', 'mno']], |
76
|
|
|
['/web/ms:dfhfdh/l:fdgh/g:/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1', null, 'lang', false, null], |
77
|
|
|
['/web/ms:dfhfdh/l:fdgh/g:/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1&lang=rrr', null, 'abc', true, 'def'], |
78
|
|
|
['/web/ms:dfhfdh/l:fdgh/g:/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1', null, 'staticPath', true, '/web/ms:dfhfdh/l:fdgh/g:/definite/unknown/'], |
79
|
|
|
['/web/ms:dfhfdh/l:fdgh/g:/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1', null, 'path', false, null], |
80
|
|
|
['/web/ms:dfhfdh/l:fdgh/g:/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1', null, 'ghi', true, ['jkl', 'mno']], |
81
|
|
|
|
82
|
|
|
['/web/ms:dfhfdh/l:fdgh/g:/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1', '', 'staticPath', false, null], |
83
|
|
|
['/web/ms:dfhfdh/l:fdgh/g:/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1', '', 'path', true, 'definite/unknown/'], |
84
|
|
|
['/web/ms:dfhfdh/l:fdgh/g:/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1&lang=rrr', 'web/', 'abc', true, 'def'], |
85
|
|
|
['/web/ms:dfhfdh/l:fdgh/g:/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1&lang=rrr', 'web/', 'lang', true, 'rrr'], |
86
|
|
|
['/web/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1&lang=rrr', 'web/', 'pqr', true, ''], |
87
|
|
|
['/web/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1&lang=rrr', 'web/', 'path', true, 'definite/unknown/'], |
88
|
|
|
['/web/m:stgs/u:gnfnj/g:/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr', 'web/', 'module', true, 'stgs'], |
89
|
|
|
['/web/m:stgs/u:gnfnj/g:/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1&lang=rrr', 'system/', 'staticPath', true, '/web/m:stgs/u:gnfnj/g:/definite/unknown/'], |
90
|
|
|
['/web/m:stgs/u:gnfnj/g:/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1&lang=rrr', 'system/', 'path', false, null], |
91
|
|
|
['/m:stgs/u:gnfnj/g:/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr', '/', 'module', true, 'stgs'], |
92
|
|
|
|
93
|
|
|
['/m:stgs/u:gnfnj/g:/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1&lang=rrr', '/', 'staticPath', true, ''], |
94
|
|
|
['/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1&lang=rrr', '/', 'staticPath', true, ''], |
95
|
|
|
['/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1&lang=rrr', '/', 'path', true, 'definite/unknown/'], |
96
|
|
|
['/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1&lang=rrr', '', 'staticPath', false, null], |
97
|
|
|
['/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1&lang=rrr', '', 'path', true, '/definite/unknown/'], |
98
|
|
|
['/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1&lang=rrr', null, 'staticPath', true, '/definite/unknown/'], |
99
|
|
|
['/definite/unknown/?abc=def&ghi[]=jkl&ghi[]=mno&pqr&vars=1&lang=rrr', null, 'path', false, null], |
100
|
|
|
]; |
101
|
|
|
} |
102
|
|
|
} |
103
|
|
|
|