Passed
Push — master ( 9f60bd...86aed3 )
by Petr
11:13
created

FixTest   A

Complexity

Total Complexity 12

Size/Duplication

Total Lines 165
Duplicated Lines 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
eloc 63
c 1
b 1
f 0
dl 0
loc 165
rs 10
wmc 12

12 Methods

Rating   Name   Duplication   Size   Complexity  
A testScriptFileName() 0 4 1
A providerScriptName() 0 11 1
A providerRequestIsApi() 0 27 1
A testAuthUpdNotExists() 0 5 1
A testAuthUpdExists() 0 5 1
A providerAuthUpdExists() 0 11 1
A testRequestUrlSelf() 0 4 1
A providerAuthUpdNotExists() 0 14 1
A testScriptName() 0 4 1
A providerRequestUrlSelf() 0 6 1
A testRequestIsApi() 0 4 1
A providerScriptFileName() 0 11 1
1
<?php
2
3
use kalanis\kw_input\Parsers;
4
5
6
class FixTest extends CommonTestClass
7
{
8
    /**
9
     * @param array<string, string> $vars
10
     * @param string $result
11
     * @dataProvider providerRequestIsapi
12
     */
13
    public function testRequestIsApi(array $vars, string $result): void
14
    {
15
        $data = Parsers\FixServer::updateVars($vars);
16
        $this->assertEquals($result, $data['REQUEST_URI']);
17
    }
18
19
    public function providerRequestIsApi(): array
20
    {
21
        return [
22
            [[
23
                'HTTP_X_ORIGINAL_URL' => 'something',
24
            ], 'something'],
25
            [[
26
                'HTTP_X_REWRITE_URL' => 'anything',
27
            ], 'anything'],
28
            [[
29
                'PATH_INFO' => 'whatToKnow',
30
            ], 'whatToKnow'],
31
            [[
32
                'ORIG_PATH_INFO' => 'whatToKnow',
33
            ], 'whatToKnow'],
34
            [[
35
                'PATH_INFO' => 'samePath',
36
                'SCRIPT_NAME' => 'samePath',
37
            ], 'samePath'],
38
            [[
39
                'PATH_INFO' => 'SamePath',
40
                'SCRIPT_NAME' => 'Different',
41
            ], 'DifferentSamePath'],
42
            [[
43
                'PATH_INFO' => 'whatToKnow',
44
                'QUERY_STRING' => 'extraKnowledge',
45
            ], 'whatToKnow?extraKnowledge'],
46
        ];
47
    }
48
49
    /**
50
     * @param array<string, string> $vars
51
     * @param string $result
52
     * @dataProvider providerScriptFileName
53
     */
54
    public function testScriptFileName(array $vars, string $result): void
55
    {
56
        $data = Parsers\FixServer::updateVars($vars);
57
        $this->assertEquals($result, $data['SCRIPT_FILENAME']);
58
    }
59
60
    public function providerScriptFileName(): array
61
    {
62
        return [
63
            [[
64
                'SCRIPT_FILENAME' => 'php.cgi',
65
                'PATH_TRANSLATED' => 'something',
66
            ], 'something'],
67
            [[
68
                'SCRIPT_FILENAME' => 'different',
69
                'PATH_TRANSLATED' => 'something',
70
            ], 'different'],
71
        ];
72
    }
73
74
    /**
75
     * @param array<string, string> $vars
76
     * @param bool $result
77
     * @dataProvider providerScriptName
78
     */
79
    public function testScriptName(array $vars, bool $result): void
80
    {
81
        $data = Parsers\FixServer::updateVars($vars);
82
        $this->assertEquals($result, isset($data['PATH_INFO']));
83
    }
84
85
    public function providerScriptName(): array
86
    {
87
        return [
88
            [[
89
                'SCRIPT_NAME' => 'php.cgi',
90
                'PATH_INFO' => 'something',
91
            ], false],
92
            [[
93
                'SCRIPT_NAME' => 'different',
94
                'PATH_INFO' => 'something',
95
            ], true],
96
        ];
97
    }
98
99
    /**
100
     * @param array<string, string> $vars
101
     * @param string $result
102
     * @dataProvider providerRequestUrlSelf
103
     */
104
    public function testRequestUrlSelf(array $vars, string $result): void
105
    {
106
        $data = Parsers\FixServer::updateVars($vars);
107
        $this->assertEquals($result, $data['PHP_SELF']);
108
    }
109
110
    public function providerRequestUrlSelf(): array
111
    {
112
        return [
113
            [['REQUEST_URI' => '//something',], '//something'],
114
            [['PHP_SELF' => '//something',], '//something'],
115
            [['PHP_SELF' => 'different', 'REQUEST_URI' => '//something',], 'different'],
116
        ];
117
    }
118
119
    /**
120
     * @param array<string, string> $vars
121
     * @param string $user
122
     * @param string $pw
123
     * @dataProvider providerAuthUpdExists
124
     */
125
    public function testAuthUpdExists(array $vars, string $user, string $pw): void
126
    {
127
        $data = Parsers\FixServer::updateAuth($vars);
128
        $this->assertEquals($user, $data['PHP_AUTH_USER']);
129
        $this->assertEquals($pw, $data['PHP_AUTH_PW']);
130
    }
131
132
    public function providerAuthUpdExists(): array
133
    {
134
        return [
135
            [[
136
                'HTTP_AUTHORIZATION' => 'somewhere',
137
                'PHP_AUTH_USER' => 'something',
138
                'PHP_AUTH_PW' => 'oh-no-no',
139
            ], 'something', 'oh-no-no', ],
140
            [[
141
                'HTTP_AUTHORIZATION' => 'Basic c29tZXRoaW5nOndpdGhvdXQtc2Vuc2U=',
142
            ], 'something', 'without-sense', ],
143
        ];
144
    }
145
146
    /**
147
     * @param array<string, string> $vars
148
     * @dataProvider providerAuthUpdNotExists
149
     */
150
    public function testAuthUpdNotExists(array $vars): void
151
    {
152
        $data = Parsers\FixServer::updateAuth($vars);
153
        $this->assertFalse(isset($data['PHP_AUTH_USER']));
154
        $this->assertFalse(isset($data['PHP_AUTH_PW']));
155
    }
156
157
    public function providerAuthUpdNotExists(): array
158
    {
159
        return [
160
            [[
161
                'HTTP_X_ORIGINAL_URL' => 'something',
162
            ], ],
163
            [[
164
                'HTTP_AUTHORIZATION' => 'not-a-header',
165
            ], ],
166
            [[
167
                'REDIRECT_HTTP_AUTHORIZATION' => 'not-a-header',
168
            ], ],
169
            [[
170
                'HTTP_AUTHORIZATION' => 'Basic c29tZXRoaW5nLXdpdGhvdXQtc2Vuc2U=',
171
            ], ],
172
        ];
173
    }
174
}
175