<?php
namespace Symfony\Component\HttpFoundation\Tests;
use Symfony\Component\HttpFoundation\ServerBag;
class ServerBagTest extends \PHPUnit_Framework_TestCase {
public function testShouldExtractHeadersFromServerArray() {
$server = array(
'SOME_SERVER_VARIABLE' => 'value',
'SOME_SERVER_VARIABLE2' => 'value',
'ROOT' => 'value',
'HTTP_CONTENT_TYPE' => 'text/html',
'HTTP_CONTENT_LENGTH' => '0',
'HTTP_ETAG' => 'asdf',
'PHP_AUTH_USER' => 'foo',
'PHP_AUTH_PW' => 'bar',
);
$bag = new ServerBag($server);
$this
->assertEquals(array(
'CONTENT_TYPE' => 'text/html',
'CONTENT_LENGTH' => '0',
'ETAG' => 'asdf',
'AUTHORIZATION' => 'Basic ' . base64_encode('foo:bar'),
'PHP_AUTH_USER' => 'foo',
'PHP_AUTH_PW' => 'bar',
), $bag
->getHeaders());
}
public function testHttpPasswordIsOptional() {
$bag = new ServerBag(array(
'PHP_AUTH_USER' => 'foo',
));
$this
->assertEquals(array(
'AUTHORIZATION' => 'Basic ' . base64_encode('foo:'),
'PHP_AUTH_USER' => 'foo',
'PHP_AUTH_PW' => '',
), $bag
->getHeaders());
}
public function testHttpBasicAuthWithPhpCgi() {
$bag = new ServerBag(array(
'HTTP_AUTHORIZATION' => 'Basic ' . base64_encode('foo:bar'),
));
$this
->assertEquals(array(
'AUTHORIZATION' => 'Basic ' . base64_encode('foo:bar'),
'PHP_AUTH_USER' => 'foo',
'PHP_AUTH_PW' => 'bar',
), $bag
->getHeaders());
}
public function testHttpBasicAuthWithPhpCgiRedirect() {
$bag = new ServerBag(array(
'REDIRECT_HTTP_AUTHORIZATION' => 'Basic ' . base64_encode('foo:bar'),
));
$this
->assertEquals(array(
'AUTHORIZATION' => 'Basic ' . base64_encode('foo:bar'),
'PHP_AUTH_USER' => 'foo',
'PHP_AUTH_PW' => 'bar',
), $bag
->getHeaders());
}
public function testHttpBasicAuthWithPhpCgiEmptyPassword() {
$bag = new ServerBag(array(
'HTTP_AUTHORIZATION' => 'Basic ' . base64_encode('foo:'),
));
$this
->assertEquals(array(
'AUTHORIZATION' => 'Basic ' . base64_encode('foo:'),
'PHP_AUTH_USER' => 'foo',
'PHP_AUTH_PW' => '',
), $bag
->getHeaders());
}
public function testOAuthBearerAuth() {
$headerContent = 'Bearer L-yLEOr9zhmUYRkzN1jwwxwQ-PBNiKDc8dgfB4hTfvo';
$bag = new ServerBag(array(
'HTTP_AUTHORIZATION' => $headerContent,
));
$this
->assertEquals(array(
'AUTHORIZATION' => $headerContent,
), $bag
->getHeaders());
}
}