You are here

class LegacyApacheUrlMatcherTest in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/routing/Tests/Matcher/LegacyApacheUrlMatcherTest.php \Symfony\Component\Routing\Tests\Matcher\LegacyApacheUrlMatcherTest

@group legacy

Hierarchy

  • class \Symfony\Component\Routing\Tests\Matcher\LegacyApacheUrlMatcherTest extends \Symfony\Component\Routing\Tests\Matcher\PHPUnit_Framework_TestCase

Expanded class hierarchy of LegacyApacheUrlMatcherTest

File

vendor/symfony/routing/Tests/Matcher/LegacyApacheUrlMatcherTest.php, line 21

Namespace

Symfony\Component\Routing\Tests\Matcher
View source
class LegacyApacheUrlMatcherTest extends \PHPUnit_Framework_TestCase {
  protected $server;
  protected function setUp() {
    $this->server = $_SERVER;
  }
  protected function tearDown() {
    $_SERVER = $this->server;
  }

  /**
   * @dataProvider getMatchData
   */
  public function testMatch($name, $pathinfo, $server, $expect) {
    $collection = new RouteCollection();
    $context = new RequestContext();
    $matcher = new ApacheUrlMatcher($collection, $context);
    $_SERVER = $server;
    $result = $matcher
      ->match($pathinfo);
    $this
      ->assertSame(var_export($expect, true), var_export($result, true));
  }
  public function getMatchData() {
    return array(
      array(
        'Simple route',
        '/hello/world',
        array(
          '_ROUTING_route' => 'hello',
          '_ROUTING_param__controller' => 'AcmeBundle:Default:index',
          '_ROUTING_param_name' => 'world',
        ),
        array(
          '_controller' => 'AcmeBundle:Default:index',
          'name' => 'world',
          '_route' => 'hello',
        ),
      ),
      array(
        'Route with params and defaults',
        '/hello/hugo',
        array(
          '_ROUTING_route' => 'hello',
          '_ROUTING_param__controller' => 'AcmeBundle:Default:index',
          '_ROUTING_param_name' => 'hugo',
          '_ROUTING_default_name' => 'world',
        ),
        array(
          'name' => 'hugo',
          '_controller' => 'AcmeBundle:Default:index',
          '_route' => 'hello',
        ),
      ),
      array(
        'Route with defaults only',
        '/hello',
        array(
          '_ROUTING_route' => 'hello',
          '_ROUTING_param__controller' => 'AcmeBundle:Default:index',
          '_ROUTING_default_name' => 'world',
        ),
        array(
          'name' => 'world',
          '_controller' => 'AcmeBundle:Default:index',
          '_route' => 'hello',
        ),
      ),
      array(
        'Redirect with many ignored attributes',
        '/legacy/{cat1}/{cat2}/{id}.html',
        array(
          '_ROUTING_route' => 'product_view',
          '_ROUTING_param__controller' => 'FrameworkBundle:Redirect:redirect',
          '_ROUTING_default_ignoreAttributes[0]' => 'attr_a',
          '_ROUTING_default_ignoreAttributes[1]' => 'attr_b',
        ),
        array(
          'ignoreAttributes' => array(
            'attr_a',
            'attr_b',
          ),
          '_controller' => 'FrameworkBundle:Redirect:redirect',
          '_route' => 'product_view',
        ),
      ),
      array(
        'REDIRECT_ envs',
        '/hello/world',
        array(
          'REDIRECT__ROUTING_route' => 'hello',
          'REDIRECT__ROUTING_param__controller' => 'AcmeBundle:Default:index',
          'REDIRECT__ROUTING_param_name' => 'world',
        ),
        array(
          '_controller' => 'AcmeBundle:Default:index',
          'name' => 'world',
          '_route' => 'hello',
        ),
      ),
      array(
        'REDIRECT_REDIRECT_ envs',
        '/hello/world',
        array(
          'REDIRECT_REDIRECT__ROUTING_route' => 'hello',
          'REDIRECT_REDIRECT__ROUTING_param__controller' => 'AcmeBundle:Default:index',
          'REDIRECT_REDIRECT__ROUTING_param_name' => 'world',
        ),
        array(
          '_controller' => 'AcmeBundle:Default:index',
          'name' => 'world',
          '_route' => 'hello',
        ),
      ),
      array(
        'REDIRECT_REDIRECT_ envs',
        '/hello/world',
        array(
          'REDIRECT_REDIRECT__ROUTING_route' => 'hello',
          'REDIRECT_REDIRECT__ROUTING_param__controller' => 'AcmeBundle:Default:index',
          'REDIRECT_REDIRECT__ROUTING_param_name' => 'world',
        ),
        array(
          '_controller' => 'AcmeBundle:Default:index',
          'name' => 'world',
          '_route' => 'hello',
        ),
      ),
    );
  }

}

Members