RedirectResponseTest

class RedirectResponseTest extends TestCase

Methods

public testGenerateMetaRedirect() No description
public testRedirectResponseConstructorNullUrl() No description
public testRedirectResponseConstructorWrongStatusCode() No description
public testGenerateLocationHeader() No description
public testGetTargetUrl() No description
public testSetTargetUrl() No description
public testSetTargetUrlNull() No description
public testCreate() No description
public testCacheHeaders() No description

Details

at line 19

testGenerateMetaRedirect()

public testGenerateMetaRedirect()
at line 32

testRedirectResponseConstructorNullUrl()

public testRedirectResponseConstructorNullUrl()
at line 40

testRedirectResponseConstructorWrongStatusCode()

public testRedirectResponseConstructorWrongStatusCode()
at line 45

testGenerateLocationHeader()

public testGenerateLocationHeader()
at line 53

testGetTargetUrl()

public testGetTargetUrl()
at line 60

testSetTargetUrl()

public testSetTargetUrl()
at line 71

testSetTargetUrlNull()

public testSetTargetUrlNull()
at line 77

testCreate()

public testCreate()
at line 85

testCacheHeaders()

public testCacheHeaders()

Source code

<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\HttpFoundation\Tests;

use PHPUnit\Framework\TestCase;
use Symfony\Component\HttpFoundation\RedirectResponse;

class RedirectResponseTest extends TestCase
{
    public function testGenerateMetaRedirect()
    {
        $response = new RedirectResponse('foo.bar');

        $this->assertEquals(1, preg_match(
            '#<meta http-equiv="refresh" content="\d+;url=foo\.bar" />#',
            preg_replace(array('/\s+/', '/\'/'), array(' ', '"'), $response->getContent())
        ));
    }

    /**
     * @expectedException \InvalidArgumentException
     */
    public function testRedirectResponseConstructorNullUrl()
    {
        $response = new RedirectResponse(null);
    }

    /**
     * @expectedException \InvalidArgumentException
     */
    public function testRedirectResponseConstructorWrongStatusCode()
    {
        $response = new RedirectResponse('foo.bar', 404);
    }

    public function testGenerateLocationHeader()
    {
        $response = new RedirectResponse('foo.bar');

        $this->assertTrue($response->headers->has('Location'));
        $this->assertEquals('foo.bar', $response->headers->get('Location'));
    }

    public function testGetTargetUrl()
    {
        $response = new RedirectResponse('foo.bar');

        $this->assertEquals('foo.bar', $response->getTargetUrl());
    }

    public function testSetTargetUrl()
    {
        $response = new RedirectResponse('foo.bar');
        $response->setTargetUrl('baz.beep');

        $this->assertEquals('baz.beep', $response->getTargetUrl());
    }

    /**
     * @expectedException \InvalidArgumentException
     */
    public function testSetTargetUrlNull()
    {
        $response = new RedirectResponse('foo.bar');
        $response->setTargetUrl(null);
    }

    public function testCreate()
    {
        $response = RedirectResponse::create('foo', 301);

        $this->assertInstanceOf('Symfony\Component\HttpFoundation\RedirectResponse', $response);
        $this->assertEquals(301, $response->getStatusCode());
    }

    public function testCacheHeaders()
    {
        $response = new RedirectResponse('foo.bar', 301);
        $this->assertFalse($response->headers->hasCacheControlDirective('no-cache'));

        $response = new RedirectResponse('foo.bar', 301, array('cache-control' => 'max-age=86400'));
        $this->assertFalse($response->headers->hasCacheControlDirective('no-cache'));
        $this->assertTrue($response->headers->hasCacheControlDirective('max-age'));

        $response = new RedirectResponse('foo.bar', 302);
        $this->assertTrue($response->headers->hasCacheControlDirective('no-cache'));
    }
}