class ApacheUrlMatcherTest

Hierarchy

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

Expanded class hierarchy of ApacheUrlMatcherTest

File

drupal/core/vendor/symfony/routing/Symfony/Component/Routing/Tests/Matcher/ApacheUrlMatcherTest.php, line 18

Namespace

Symfony\Component\Routing\Tests\Matcher
View source
class ApacheUrlMatcherTest 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, $server);
    $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_ 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

Namesort descending Modifiers Type Description Overrides
ApacheUrlMatcherTest::$server protected property
ApacheUrlMatcherTest::getMatchData public function
ApacheUrlMatcherTest::setUp protected function
ApacheUrlMatcherTest::tearDown protected function
ApacheUrlMatcherTest::testMatch public function @dataProvider getMatchData