class RouterListenerTest in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/symfony/http-kernel/Tests/EventListener/RouterListenerTest.php \Symfony\Component\HttpKernel\Tests\EventListener\RouterListenerTest
Hierarchy
- class \Symfony\Component\HttpKernel\Tests\EventListener\RouterListenerTest extends \Symfony\Component\HttpKernel\Tests\EventListener\PHPUnit_Framework_TestCase
Expanded class hierarchy of RouterListenerTest
File
- vendor/
symfony/ http-kernel/ Tests/ EventListener/ RouterListenerTest.php, line 21
Namespace
Symfony\Component\HttpKernel\Tests\EventListenerView source
class RouterListenerTest extends \PHPUnit_Framework_TestCase {
private $requestStack;
protected function setUp() {
$this->requestStack = $this
->getMock('Symfony\\Component\\HttpFoundation\\RequestStack', array(), array(), '', false);
}
/**
* @dataProvider getPortData
*/
public function testPort($defaultHttpPort, $defaultHttpsPort, $uri, $expectedHttpPort, $expectedHttpsPort) {
$urlMatcher = $this
->getMockBuilder('Symfony\\Component\\Routing\\Matcher\\UrlMatcherInterface')
->disableOriginalConstructor()
->getMock();
$context = new RequestContext();
$context
->setHttpPort($defaultHttpPort);
$context
->setHttpsPort($defaultHttpsPort);
$urlMatcher
->expects($this
->any())
->method('getContext')
->will($this
->returnValue($context));
$listener = new RouterListener($urlMatcher, null, null, $this->requestStack);
$event = $this
->createGetResponseEventForUri($uri);
$listener
->onKernelRequest($event);
$this
->assertEquals($expectedHttpPort, $context
->getHttpPort());
$this
->assertEquals($expectedHttpsPort, $context
->getHttpsPort());
$this
->assertEquals(0 === strpos($uri, 'https') ? 'https' : 'http', $context
->getScheme());
}
public function getPortData() {
return array(
array(
80,
443,
'http://localhost/',
80,
443,
),
array(
80,
443,
'http://localhost:90/',
90,
443,
),
array(
80,
443,
'https://localhost/',
80,
443,
),
array(
80,
443,
'https://localhost:90/',
80,
90,
),
);
}
/**
* @param string $uri
*
* @return GetResponseEvent
*/
private function createGetResponseEventForUri($uri) {
$kernel = $this
->getMock('Symfony\\Component\\HttpKernel\\HttpKernelInterface');
$request = Request::create($uri);
$request->attributes
->set('_controller', null);
// Prevents going in to routing process
return new GetResponseEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST);
}
/**
* @expectedException \InvalidArgumentException
*/
public function testInvalidMatcher() {
new RouterListener(new \stdClass(), null, null, $this->requestStack);
}
public function testRequestMatcher() {
$kernel = $this
->getMock('Symfony\\Component\\HttpKernel\\HttpKernelInterface');
$request = Request::create('http://localhost/');
$event = new GetResponseEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST);
$requestMatcher = $this
->getMock('Symfony\\Component\\Routing\\Matcher\\RequestMatcherInterface');
$requestMatcher
->expects($this
->once())
->method('matchRequest')
->with($this
->isInstanceOf('Symfony\\Component\\HttpFoundation\\Request'))
->will($this
->returnValue(array()));
$listener = new RouterListener($requestMatcher, new RequestContext(), null, $this->requestStack);
$listener
->onKernelRequest($event);
}
public function testSubRequestWithDifferentMethod() {
$kernel = $this
->getMock('Symfony\\Component\\HttpKernel\\HttpKernelInterface');
$request = Request::create('http://localhost/', 'post');
$event = new GetResponseEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST);
$requestMatcher = $this
->getMock('Symfony\\Component\\Routing\\Matcher\\RequestMatcherInterface');
$requestMatcher
->expects($this
->any())
->method('matchRequest')
->with($this
->isInstanceOf('Symfony\\Component\\HttpFoundation\\Request'))
->will($this
->returnValue(array()));
$context = new RequestContext();
$requestMatcher
->expects($this
->any())
->method('getContext')
->will($this
->returnValue($context));
$listener = new RouterListener($requestMatcher, new RequestContext(), null, $this->requestStack);
$listener
->onKernelRequest($event);
// sub-request with another HTTP method
$kernel = $this
->getMock('Symfony\\Component\\HttpKernel\\HttpKernelInterface');
$request = Request::create('http://localhost/', 'get');
$event = new GetResponseEvent($kernel, $request, HttpKernelInterface::SUB_REQUEST);
$listener
->onKernelRequest($event);
$this
->assertEquals('GET', $context
->getMethod());
}
/**
* @dataProvider getLoggingParameterData
*/
public function testLoggingParameter($parameter, $log) {
$requestMatcher = $this
->getMock('Symfony\\Component\\Routing\\Matcher\\RequestMatcherInterface');
$requestMatcher
->expects($this
->once())
->method('matchRequest')
->will($this
->returnValue($parameter));
$logger = $this
->getMock('Psr\\Log\\LoggerInterface');
$logger
->expects($this
->once())
->method('info')
->with($this
->equalTo($log));
$kernel = $this
->getMock('Symfony\\Component\\HttpKernel\\HttpKernelInterface');
$request = Request::create('http://localhost/');
$listener = new RouterListener($requestMatcher, new RequestContext(), $logger, $this->requestStack);
$listener
->onKernelRequest(new GetResponseEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST));
}
public function getLoggingParameterData() {
return array(
array(
array(
'_route' => 'foo',
),
'Matched route "foo".',
),
array(
array(),
'Matched route "n/a".',
),
);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
RouterListenerTest:: |
private | property | ||
RouterListenerTest:: |
private | function | ||
RouterListenerTest:: |
public | function | ||
RouterListenerTest:: |
public | function | ||
RouterListenerTest:: |
protected | function | ||
RouterListenerTest:: |
public | function | @expectedException \InvalidArgumentException | |
RouterListenerTest:: |
public | function | @dataProvider getLoggingParameterData | |
RouterListenerTest:: |
public | function | @dataProvider getPortData | |
RouterListenerTest:: |
public | function | ||
RouterListenerTest:: |
public | function |