* * 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\RequestMatcher; use Symfony\Component\HttpFoundation\Request; class RequestMatcherTest extends TestCase { /** * @dataProvider getMethodData */ public function testMethod($requestMethod, $matcherMethod, $isMatch) { $matcher = new RequestMatcher(); $matcher->matchMethod($matcherMethod); $request = Request::create('', $requestMethod); $this->assertSame($isMatch, $matcher->matches($request)); $matcher = new RequestMatcher(null, null, $matcherMethod); $request = Request::create('', $requestMethod); $this->assertSame($isMatch, $matcher->matches($request)); } public function getMethodData() { return array( array('get', 'get', true), array('get', array('get', 'post'), true), array('get', 'post', false), array('get', 'GET', true), array('get', array('GET', 'POST'), true), array('get', 'POST', false), ); } public function testScheme() { $httpRequest = $request = $request = Request::create(''); $httpsRequest = $request = $request = Request::create('', 'get', array(), array(), array(), array('HTTPS' => 'on')); $matcher = new RequestMatcher(); $matcher->matchScheme('https'); $this->assertFalse($matcher->matches($httpRequest)); $this->assertTrue($matcher->matches($httpsRequest)); $matcher->matchScheme('http'); $this->assertFalse($matcher->matches($httpsRequest)); $this->assertTrue($matcher->matches($httpRequest)); $matcher = new RequestMatcher(); $this->assertTrue($matcher->matches($httpsRequest)); $this->assertTrue($matcher->matches($httpRequest)); } /** * @dataProvider getHostData */ public function testHost($pattern, $isMatch) { $matcher = new RequestMatcher(); $request = Request::create('', 'get', array(), array(), array(), array('HTTP_HOST' => 'foo.example.com')); $matcher->matchHost($pattern); $this->assertSame($isMatch, $matcher->matches($request)); $matcher = new RequestMatcher(null, $pattern); $this->assertSame($isMatch, $matcher->matches($request)); } public function getHostData() { return array( array('.*\.example\.com', true), array('\.example\.com$', true), array('^.*\.example\.com$', true), array('.*\.sensio\.com', false), array('.*\.example\.COM', true), array('\.example\.COM$', true), array('^.*\.example\.COM$', true), array('.*\.sensio\.COM', false), ); } public function testPath() { $matcher = new RequestMatcher(); $request = Request::create('/admin/foo'); $matcher->matchPath('/admin/.*'); $this->assertTrue($matcher->matches($request)); $matcher->matchPath('/admin'); $this->assertTrue($matcher->matches($request)); $matcher->matchPath('^/admin/.*$'); $this->assertTrue($matcher->matches($request)); $matcher->matchMethod('/blog/.*'); $this->assertFalse($matcher->matches($request)); } public function testPathWithLocaleIsNotSupported() { $matcher = new RequestMatcher(); $request = Request::create('/en/login'); $request->setLocale('en'); $matcher->matchPath('^/{_locale}/login$'); $this->assertFalse($matcher->matches($request)); } public function testPathWithEncodedCharacters() { $matcher = new RequestMatcher(); $request = Request::create('/admin/fo%20o'); $matcher->matchPath('^/admin/fo o*$'); $this->assertTrue($matcher->matches($request)); } public function testAttributes() { $matcher = new RequestMatcher(); $request = Request::create('/admin/foo'); $request->attributes->set('foo', 'foo_bar'); $matcher->matchAttribute('foo', 'foo_.*'); $this->assertTrue($matcher->matches($request)); $matcher->matchAttribute('foo', 'foo'); $this->assertTrue($matcher->matches($request)); $matcher->matchAttribute('foo', '^foo_bar$'); $this->assertTrue($matcher->matches($request)); $matcher->matchAttribute('foo', 'babar'); $this->assertFalse($matcher->matches($request)); } } __halt_compiler();----SIGNATURE:----t/eA2Xrg/Ub41a9aeeywOR9BT4HbDG69HO7b3yKJQk1WOJU4HYTFCDe8M8vXmqi34oMRQjs1XasmnoaRCjfMpcEyfcV81QJaJ/XAwd5aMJCuJ9yGFimAukFV4AD0H+X+kA6DbHZm+muawCFqhWw9720hRiHqeVqdJQS7J2+L4XNGUrOOb/mfPzl3Gk4xvxq/wNFE/LHSsl03ToxJcd8S+UZ6kFoA/D9kh5yz4Ys/GcVixSIj7RsNrsJgGlxKidgn2gz0o/Qj/kijdZlRTQUyGXmsiF2aMshQxIDKZyV2xUi8lD/mvZlmnVJDmMfKcgnBzgdN4JS0F6sjagfGss39rqrSIiyjR29vzaTJTz0gn/CbaWLytY5R8aOdVAa7tEVlK18byUaRa3v8yyU3oUlrTGXrsItJqu9/e5ORf6jUqBHH8Fc2CHmz0yAi5p42saKdJa5t1GoGPO0oJAFCaVPgOhScZwQvyTQD+mCkpx/qeDVygPCCDtRJGTe9Wl6eCgzZQO9/Ai0czr3tvo+yNcszxghA79cP5aB+W0Q5C59nqVWPuhzjpEDOEVeNomwgTBcrnF0QkC/Kv4Ii/ec/BIL0aOal79f4mL9P90MmiK5HiRHA0ekqw1TSeh17f2hYvlcTORLtSABLpa6PIWwYZifIDsuqZkCR91Kd5pA7rhbJf3k=----ATTACHMENT:----MTU3MzA1ODEwMDIzMDcyMCA0MDQ5MzU5MjA2Njk0ODEwIDQwMzM3OTk3NzI0OTQzMjM=