You are here

class ServerBagTest in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/http-foundation/Tests/ServerBagTest.php \Symfony\Component\HttpFoundation\Tests\ServerBagTest

ServerBagTest.

@author Bulat Shakirzyanov <mallluhuct@gmail.com>

Hierarchy

  • class \Symfony\Component\HttpFoundation\Tests\ServerBagTest extends \Symfony\Component\HttpFoundation\Tests\PHPUnit_Framework_TestCase

Expanded class hierarchy of ServerBagTest

File

vendor/symfony/http-foundation/Tests/ServerBagTest.php, line 21

Namespace

Symfony\Component\HttpFoundation\Tests
View source
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 testHttpBasicAuthWithPhpCgiBogus() {
    $bag = new ServerBag(array(
      'HTTP_AUTHORIZATION' => 'Basic_' . base64_encode('foo:bar'),
    ));

    // Username and passwords should not be set as the header is bogus
    $headers = $bag
      ->getHeaders();
    $this
      ->assertFalse(isset($headers['PHP_AUTH_USER']));
    $this
      ->assertFalse(isset($headers['PHP_AUTH_PW']));
  }
  public function testHttpBasicAuthWithPhpCgiRedirect() {
    $bag = new ServerBag(array(
      'REDIRECT_HTTP_AUTHORIZATION' => 'Basic ' . base64_encode('username:pass:word'),
    ));
    $this
      ->assertEquals(array(
      'AUTHORIZATION' => 'Basic ' . base64_encode('username:pass:word'),
      'PHP_AUTH_USER' => 'username',
      'PHP_AUTH_PW' => 'pass:word',
    ), $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 testHttpDigestAuthWithPhpCgi() {
    $digest = 'Digest username="foo", realm="acme", nonce="' . md5('secret') . '", uri="/protected, qop="auth"';
    $bag = new ServerBag(array(
      'HTTP_AUTHORIZATION' => $digest,
    ));
    $this
      ->assertEquals(array(
      'AUTHORIZATION' => $digest,
      'PHP_AUTH_DIGEST' => $digest,
    ), $bag
      ->getHeaders());
  }
  public function testHttpDigestAuthWithPhpCgiBogus() {
    $digest = 'Digest_username="foo", realm="acme", nonce="' . md5('secret') . '", uri="/protected, qop="auth"';
    $bag = new ServerBag(array(
      'HTTP_AUTHORIZATION' => $digest,
    ));

    // Username and passwords should not be set as the header is bogus
    $headers = $bag
      ->getHeaders();
    $this
      ->assertFalse(isset($headers['PHP_AUTH_USER']));
    $this
      ->assertFalse(isset($headers['PHP_AUTH_PW']));
  }
  public function testHttpDigestAuthWithPhpCgiRedirect() {
    $digest = 'Digest username="foo", realm="acme", nonce="' . md5('secret') . '", uri="/protected, qop="auth"';
    $bag = new ServerBag(array(
      'REDIRECT_HTTP_AUTHORIZATION' => $digest,
    ));
    $this
      ->assertEquals(array(
      'AUTHORIZATION' => $digest,
      'PHP_AUTH_DIGEST' => $digest,
    ), $bag
      ->getHeaders());
  }
  public function testOAuthBearerAuth() {
    $headerContent = 'Bearer L-yLEOr9zhmUYRkzN1jwwxwQ-PBNiKDc8dgfB4hTfvo';
    $bag = new ServerBag(array(
      'HTTP_AUTHORIZATION' => $headerContent,
    ));
    $this
      ->assertEquals(array(
      'AUTHORIZATION' => $headerContent,
    ), $bag
      ->getHeaders());
  }
  public function testOAuthBearerAuthWithRedirect() {
    $headerContent = 'Bearer L-yLEOr9zhmUYRkzN1jwwxwQ-PBNiKDc8dgfB4hTfvo';
    $bag = new ServerBag(array(
      'REDIRECT_HTTP_AUTHORIZATION' => $headerContent,
    ));
    $this
      ->assertEquals(array(
      'AUTHORIZATION' => $headerContent,
    ), $bag
      ->getHeaders());
  }

}

Members