Open Journal Systems  3.3.0
ServerBagTest.php
1 <?php
2 
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11 
13 
14 use PHPUnit\Framework\TestCase;
16 
22 class ServerBagTest extends TestCase
23 {
25  {
26  $server = array(
27  'SOME_SERVER_VARIABLE' => 'value',
28  'SOME_SERVER_VARIABLE2' => 'value',
29  'ROOT' => 'value',
30  'HTTP_CONTENT_TYPE' => 'text/html',
31  'HTTP_CONTENT_LENGTH' => '0',
32  'HTTP_ETAG' => 'asdf',
33  'PHP_AUTH_USER' => 'foo',
34  'PHP_AUTH_PW' => 'bar',
35  );
36 
37  $bag = new ServerBag($server);
38 
39  $this->assertEquals(array(
40  'CONTENT_TYPE' => 'text/html',
41  'CONTENT_LENGTH' => '0',
42  'ETAG' => 'asdf',
43  'AUTHORIZATION' => 'Basic '.base64_encode('foo:bar'),
44  'PHP_AUTH_USER' => 'foo',
45  'PHP_AUTH_PW' => 'bar',
46  ), $bag->getHeaders());
47  }
48 
49  public function testHttpPasswordIsOptional()
50  {
51  $bag = new ServerBag(array('PHP_AUTH_USER' => 'foo'));
52 
53  $this->assertEquals(array(
54  'AUTHORIZATION' => 'Basic '.base64_encode('foo:'),
55  'PHP_AUTH_USER' => 'foo',
56  'PHP_AUTH_PW' => '',
57  ), $bag->getHeaders());
58  }
59 
60  public function testHttpBasicAuthWithPhpCgi()
61  {
62  $bag = new ServerBag(array('HTTP_AUTHORIZATION' => 'Basic '.base64_encode('foo:bar')));
63 
64  $this->assertEquals(array(
65  'AUTHORIZATION' => 'Basic '.base64_encode('foo:bar'),
66  'PHP_AUTH_USER' => 'foo',
67  'PHP_AUTH_PW' => 'bar',
68  ), $bag->getHeaders());
69  }
70 
72  {
73  $bag = new ServerBag(array('HTTP_AUTHORIZATION' => 'Basic_'.base64_encode('foo:bar')));
74 
75  // Username and passwords should not be set as the header is bogus
76  $headers = $bag->getHeaders();
77  $this->assertFalse(isset($headers['PHP_AUTH_USER']));
78  $this->assertFalse(isset($headers['PHP_AUTH_PW']));
79  }
80 
82  {
83  $bag = new ServerBag(array('REDIRECT_HTTP_AUTHORIZATION' => 'Basic '.base64_encode('username:pass:word')));
84 
85  $this->assertEquals(array(
86  'AUTHORIZATION' => 'Basic '.base64_encode('username:pass:word'),
87  'PHP_AUTH_USER' => 'username',
88  'PHP_AUTH_PW' => 'pass:word',
89  ), $bag->getHeaders());
90  }
91 
93  {
94  $bag = new ServerBag(array('HTTP_AUTHORIZATION' => 'Basic '.base64_encode('foo:')));
95 
96  $this->assertEquals(array(
97  'AUTHORIZATION' => 'Basic '.base64_encode('foo:'),
98  'PHP_AUTH_USER' => 'foo',
99  'PHP_AUTH_PW' => '',
100  ), $bag->getHeaders());
101  }
102 
104  {
105  $digest = 'Digest username="foo", realm="acme", nonce="'.md5('secret').'", uri="/protected, qop="auth"';
106  $bag = new ServerBag(array('HTTP_AUTHORIZATION' => $digest));
107 
108  $this->assertEquals(array(
109  'AUTHORIZATION' => $digest,
110  'PHP_AUTH_DIGEST' => $digest,
111  ), $bag->getHeaders());
112  }
113 
115  {
116  $digest = 'Digest_username="foo", realm="acme", nonce="'.md5('secret').'", uri="/protected, qop="auth"';
117  $bag = new ServerBag(array('HTTP_AUTHORIZATION' => $digest));
118 
119  // Username and passwords should not be set as the header is bogus
120  $headers = $bag->getHeaders();
121  $this->assertFalse(isset($headers['PHP_AUTH_USER']));
122  $this->assertFalse(isset($headers['PHP_AUTH_PW']));
123  }
124 
126  {
127  $digest = 'Digest username="foo", realm="acme", nonce="'.md5('secret').'", uri="/protected, qop="auth"';
128  $bag = new ServerBag(array('REDIRECT_HTTP_AUTHORIZATION' => $digest));
129 
130  $this->assertEquals(array(
131  'AUTHORIZATION' => $digest,
132  'PHP_AUTH_DIGEST' => $digest,
133  ), $bag->getHeaders());
134  }
135 
136  public function testOAuthBearerAuth()
137  {
138  $headerContent = 'Bearer L-yLEOr9zhmUYRkzN1jwwxwQ-PBNiKDc8dgfB4hTfvo';
139  $bag = new ServerBag(array('HTTP_AUTHORIZATION' => $headerContent));
140 
141  $this->assertEquals(array(
142  'AUTHORIZATION' => $headerContent,
143  ), $bag->getHeaders());
144  }
145 
147  {
148  $headerContent = 'Bearer L-yLEOr9zhmUYRkzN1jwwxwQ-PBNiKDc8dgfB4hTfvo';
149  $bag = new ServerBag(array('REDIRECT_HTTP_AUTHORIZATION' => $headerContent));
150 
151  $this->assertEquals(array(
152  'AUTHORIZATION' => $headerContent,
153  ), $bag->getHeaders());
154  }
155 
160  {
161  $headerContent = 'Bearer L-yLEOr9zhmUYRkzN1jwwxwQ-PBNiKDc8dgfB4hTfvo';
162  $bag = new ServerBag(array('PHP_AUTH_USER' => 'foo', 'HTTP_AUTHORIZATION' => $headerContent));
163 
164  $this->assertEquals(array(
165  'AUTHORIZATION' => $headerContent,
166  'PHP_AUTH_USER' => 'foo',
167  'PHP_AUTH_PW' => '',
168  ), $bag->getHeaders());
169  }
170 }
Symfony\Component\HttpFoundation\ServerBag
Definition: lib/vendor/symfony/http-foundation/ServerBag.php:21
Symfony\Component\HttpFoundation\Tests\ServerBagTest
Definition: ServerBagTest.php:22
Symfony\Component\HttpFoundation\Tests\ServerBagTest\testHttpDigestAuthWithPhpCgiRedirect
testHttpDigestAuthWithPhpCgiRedirect()
Definition: ServerBagTest.php:125
Symfony\Component\HttpFoundation\Tests\ServerBagTest\testHttpDigestAuthWithPhpCgi
testHttpDigestAuthWithPhpCgi()
Definition: ServerBagTest.php:103
Symfony\Component\HttpFoundation\Tests\ServerBagTest\testOAuthBearerAuth
testOAuthBearerAuth()
Definition: ServerBagTest.php:136
Symfony\Component\HttpFoundation\Tests\ServerBagTest\testItDoesNotOverwriteTheAuthorizationHeaderIfItIsAlreadySet
testItDoesNotOverwriteTheAuthorizationHeaderIfItIsAlreadySet()
Definition: ServerBagTest.php:159
Symfony\Component\HttpFoundation\Tests\ServerBagTest\testHttpBasicAuthWithPhpCgiRedirect
testHttpBasicAuthWithPhpCgiRedirect()
Definition: ServerBagTest.php:81
Symfony\Component\HttpFoundation\Tests\ServerBagTest\testOAuthBearerAuthWithRedirect
testOAuthBearerAuthWithRedirect()
Definition: ServerBagTest.php:146
Symfony\Component\HttpFoundation\Tests\ServerBagTest\testHttpDigestAuthWithPhpCgiBogus
testHttpDigestAuthWithPhpCgiBogus()
Definition: ServerBagTest.php:114
Symfony\Component\HttpFoundation\Tests\ServerBagTest\testHttpPasswordIsOptional
testHttpPasswordIsOptional()
Definition: ServerBagTest.php:49
Symfony\Component\HttpFoundation\Tests\ServerBagTest\testShouldExtractHeadersFromServerArray
testShouldExtractHeadersFromServerArray()
Definition: ServerBagTest.php:24
Symfony\Component\HttpFoundation\Tests
Definition: AcceptHeaderItemTest.php:12
Symfony\Component\HttpFoundation\Tests\ServerBagTest\testHttpBasicAuthWithPhpCgi
testHttpBasicAuthWithPhpCgi()
Definition: ServerBagTest.php:60
Symfony\Component\HttpFoundation\Tests\ServerBagTest\testHttpBasicAuthWithPhpCgiEmptyPassword
testHttpBasicAuthWithPhpCgiEmptyPassword()
Definition: ServerBagTest.php:92
Symfony\Component\HttpFoundation\Tests\ServerBagTest\testHttpBasicAuthWithPhpCgiBogus
testHttpBasicAuthWithPhpCgiBogus()
Definition: ServerBagTest.php:71