Overview

Namespaces

  • Composer
    • Autoload
  • Guzzle
    • Common
      • Exception
    • Http
      • Curl
      • Exception
      • Message
        • Header
      • QueryAggregator
    • Parser
      • Cookie
      • Message
      • UriTemplate
      • Url
    • Plugin
      • Mock
    • Stream
  • Mockery
    • Adapter
      • Phpunit
    • CountValidator
    • Exception
    • Generator
      • StringManipulation
        • Pass
    • Loader
    • Matcher
  • None
  • Omnipay
    • Common
      • Exception
      • Message
    • Dummy
      • Message
    • Fatzebra
      • Message
  • PHP
  • Symfony
    • Component
      • EventDispatcher
        • Debug
        • DependencyInjection
        • Tests
          • Debug
          • DependencyInjection
      • HttpFoundation
        • File
          • Exception
          • MimeType
        • Session
          • Attribute
          • Flash
          • Storage
            • Handler
            • Proxy
        • Tests
          • File
            • MimeType
          • Session
            • Attribute
            • Flash
            • Storage
              • Handler
              • Proxy
      • Yaml
        • Exception
        • Tests

Classes

  • Symfony\Component\Yaml\Tests\A
  • Symfony\Component\Yaml\Tests\B
  • Symfony\Component\Yaml\Tests\DumperTest
  • Symfony\Component\Yaml\Tests\InlineTest
  • Symfony\Component\Yaml\Tests\ParseExceptionTest
  • Symfony\Component\Yaml\Tests\ParserTest
  • Symfony\Component\Yaml\Tests\YamlTest
  • Overview
  • Namespace
  • Function
  • Tree
  1: <?php
  2: 
  3: /*
  4:  * This file is part of the Symfony package.
  5:  *
  6:  * (c) Fabien Potencier <fabien@symfony.com>
  7:  *
  8:  * For the full copyright and license information, please view the LICENSE
  9:  * file that was distributed with this source code.
 10:  */
 11: 
 12: namespace Symfony\Component\HttpFoundation\Tests;
 13: 
 14: use Symfony\Component\HttpFoundation\RequestMatcher;
 15: use Symfony\Component\HttpFoundation\Request;
 16: 
 17: class RequestMatcherTest extends \PHPUnit_Framework_TestCase
 18: {
 19:     /**
 20:      * @dataProvider testMethodFixtures
 21:      */
 22:     public function testMethod($requestMethod, $matcherMethod, $isMatch)
 23:     {
 24:         $matcher = new RequestMatcher();
 25:         $matcher->matchMethod($matcherMethod);
 26:         $request = Request::create('', $requestMethod);
 27:         $this->assertSame($isMatch, $matcher->matches($request));
 28: 
 29:         $matcher = new RequestMatcher(null, null, $matcherMethod);
 30:         $request = Request::create('', $requestMethod);
 31:         $this->assertSame($isMatch, $matcher->matches($request));
 32:     }
 33: 
 34:     public function testMethodFixtures()
 35:     {
 36:         return array(
 37:             array('get', 'get', true),
 38:             array('get', array('get', 'post'), true),
 39:             array('get', 'post', false),
 40:             array('get', 'GET', true),
 41:             array('get', array('GET', 'POST'), true),
 42:             array('get', 'POST', false),
 43:         );
 44:     }
 45: 
 46:     public function testScheme()
 47:     {
 48:         $httpRequest = $request = $request = Request::create('');
 49:         $httpsRequest = $request = $request = Request::create('', 'get', array(), array(), array(), array('HTTPS' => 'on'));
 50: 
 51:         $matcher = new RequestMatcher();
 52:         $matcher->matchScheme('https');
 53:         $this->assertFalse($matcher->matches($httpRequest));
 54:         $this->assertTrue($matcher->matches($httpsRequest));
 55: 
 56:         $matcher->matchScheme('http');
 57:         $this->assertFalse($matcher->matches($httpsRequest));
 58:         $this->assertTrue($matcher->matches($httpRequest));
 59: 
 60:         $matcher = new RequestMatcher();
 61:         $this->assertTrue($matcher->matches($httpsRequest));
 62:         $this->assertTrue($matcher->matches($httpRequest));
 63:     }
 64: 
 65:     /**
 66:      * @dataProvider testHostFixture
 67:      */
 68:     public function testHost($pattern, $isMatch)
 69:     {
 70:         $matcher = new RequestMatcher();
 71:         $request = Request::create('', 'get', array(), array(), array(), array('HTTP_HOST' => 'foo.example.com'));
 72: 
 73:         $matcher->matchHost($pattern);
 74:         $this->assertSame($isMatch, $matcher->matches($request));
 75: 
 76:         $matcher = new RequestMatcher(null, $pattern);
 77:         $this->assertSame($isMatch, $matcher->matches($request));
 78:     }
 79: 
 80:     public function testHostFixture()
 81:     {
 82:         return array(
 83:             array('.*\.example\.com', true),
 84:             array('\.example\.com$', true),
 85:             array('^.*\.example\.com$', true),
 86:             array('.*\.sensio\.com', false),
 87:             array('.*\.example\.COM', true),
 88:             array('\.example\.COM$', true),
 89:             array('^.*\.example\.COM$', true),
 90:             array('.*\.sensio\.COM', false),
 91:         );
 92:     }
 93: 
 94:     public function testPath()
 95:     {
 96:         $matcher = new RequestMatcher();
 97: 
 98:         $request = Request::create('/admin/foo');
 99: 
100:         $matcher->matchPath('/admin/.*');
101:         $this->assertTrue($matcher->matches($request));
102: 
103:         $matcher->matchPath('/admin');
104:         $this->assertTrue($matcher->matches($request));
105: 
106:         $matcher->matchPath('^/admin/.*$');
107:         $this->assertTrue($matcher->matches($request));
108: 
109:         $matcher->matchMethod('/blog/.*');
110:         $this->assertFalse($matcher->matches($request));
111:     }
112: 
113:     public function testPathWithLocaleIsNotSupported()
114:     {
115:         $matcher = new RequestMatcher();
116:         $request = Request::create('/en/login');
117:         $request->setLocale('en');
118: 
119:         $matcher->matchPath('^/{_locale}/login$');
120:         $this->assertFalse($matcher->matches($request));
121:     }
122: 
123:     public function testPathWithEncodedCharacters()
124:     {
125:         $matcher = new RequestMatcher();
126:         $request = Request::create('/admin/fo%20o');
127:         $matcher->matchPath('^/admin/fo o*$');
128:         $this->assertTrue($matcher->matches($request));
129:     }
130: 
131:     public function testAttributes()
132:     {
133:         $matcher = new RequestMatcher();
134: 
135:         $request = Request::create('/admin/foo');
136:         $request->attributes->set('foo', 'foo_bar');
137: 
138:         $matcher->matchAttribute('foo', 'foo_.*');
139:         $this->assertTrue($matcher->matches($request));
140: 
141:         $matcher->matchAttribute('foo', 'foo');
142:         $this->assertTrue($matcher->matches($request));
143: 
144:         $matcher->matchAttribute('foo', '^foo_bar$');
145:         $this->assertTrue($matcher->matches($request));
146: 
147:         $matcher->matchAttribute('foo', 'babar');
148:         $this->assertFalse($matcher->matches($request));
149:     }
150: }
151: 
Omnipay Fat Zebra / Paystream Gateway Module API Documentation API documentation generated by ApiGen