X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=web%2Fmodules%2Fcontrib%2Fredirect%2Ftests%2Fsrc%2FUnit%2FRedirectRequestSubscriberTest.php;fp=web%2Fmodules%2Fcontrib%2Fredirect%2Ftests%2Fsrc%2FUnit%2FRedirectRequestSubscriberTest.php;h=4982bdb6e09ebc2c5e653bf3a32b34d03ee75163;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hp=6b161cf044219ade130e0390783f74359f9680d8;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0;p=yaffs-website diff --git a/web/modules/contrib/redirect/tests/src/Unit/RedirectRequestSubscriberTest.php b/web/modules/contrib/redirect/tests/src/Unit/RedirectRequestSubscriberTest.php index 6b161cf04..4982bdb6e 100644 --- a/web/modules/contrib/redirect/tests/src/Unit/RedirectRequestSubscriberTest.php +++ b/web/modules/contrib/redirect/tests/src/Unit/RedirectRequestSubscriberTest.php @@ -23,13 +23,10 @@ class RedirectRequestSubscriberTest extends UnitTestCase { /** * @covers ::onKernelRequestCheckRedirect + * @dataProvider getRedirectData */ - public function testRedirectLogicWithQueryRetaining() { + public function testRedirectLogicWithQueryRetaining($request_uri, $request_query, $redirect_uri, $redirect_query) { - // The request query. - $request_query = array('key' => 'val'); - // The query defined by the redirect entity. - $redirect_query = array('dummy' => 'value'); // The expected final query. This query must contain values defined // by the redirect entity and values from the accessed url. $final_query = $redirect_query + $request_query; @@ -54,10 +51,10 @@ class RedirectRequestSubscriberTest extends UnitTestCase { $url->expects($this->once()) ->method('toString') - ->willReturn('/test-path'); + ->willReturn($redirect_uri); $redirect = $this->getRedirectStub($url); - $event = $this->callOnKernelRequestCheckRedirect($redirect, $request_query, TRUE); + $event = $this->callOnKernelRequestCheckRedirect($redirect, $request_uri, $request_query, TRUE); $this->assertTrue($event->getResponse() instanceof RedirectResponse); $response = $event->getResponse(); @@ -68,11 +65,9 @@ class RedirectRequestSubscriberTest extends UnitTestCase { /** * @covers ::onKernelRequestCheckRedirect + * @dataProvider getRedirectData */ - public function testRedirectLogicWithoutQueryRetaining() { - - // The request query. - $request_query = array('key' => 'val'); + public function testRedirectLogicWithoutQueryRetaining($request_uri, $request_query, $redirect_uri) { $url = $this->getMockBuilder('Drupal\Core\Url') ->disableOriginalConstructor() @@ -91,23 +86,35 @@ class RedirectRequestSubscriberTest extends UnitTestCase { $url->expects($this->once()) ->method('toString') - ->willReturn('/test-path'); + ->willReturn($redirect_uri); $redirect = $this->getRedirectStub($url); - $event = $this->callOnKernelRequestCheckRedirect($redirect, $request_query, FALSE); + $event = $this->callOnKernelRequestCheckRedirect($redirect, $request_uri, $request_query, FALSE); $this->assertTrue($event->getResponse() instanceof RedirectResponse); $response = $event->getResponse(); - $this->assertEquals('/test-path', $response->getTargetUrl()); + $this->assertEquals($redirect_uri, $response->getTargetUrl()); $this->assertEquals(301, $response->getStatusCode()); $this->assertEquals(1, $response->headers->get('X-Redirect-ID')); } + /** + * Data provider for both tests. + */ + public function getRedirectData() { + return [ + ['non-existing', ['key' => 'val'], '/test-path', ['dummy' => 'value']], + ['non-existing/', ['key' => 'val'], '/test-path', ['dummy' => 'value']], + ]; + } + /** * Instantiates the subscriber and runs onKernelRequestCheckRedirect() * * @param $redirect * The redirect entity. + * @param $request_uri + * The URI of the request. * @param array $request_query * The query that is supposed to come via request. * @param bool $retain_query @@ -116,9 +123,9 @@ class RedirectRequestSubscriberTest extends UnitTestCase { * @return \Symfony\Component\HttpKernel\Event\GetResponseEvent * THe response event. */ - protected function callOnKernelRequestCheckRedirect($redirect, $request_query, $retain_query) { + protected function callOnKernelRequestCheckRedirect($redirect, $request_uri, $request_query, $retain_query) { - $event = $this->getGetResponseEventStub('non-existing', http_build_query($request_query)); + $event = $this->getGetResponseEventStub($request_uri, http_build_query($request_query)); $request = $event->getRequest(); $checker = $this->getMockBuilder('Drupal\redirect\RedirectChecker')