1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\UrlRewrite\Controller;
- use Magento\TestFramework\TestCase\AbstractController;
- use Magento\Framework\App\Response\Http as HttpResponse;
- class UrlRewriteTest extends AbstractController
- {
- /**
- * @magentoDataFixture Magento/UrlRewrite/_files/url_rewrite.php
- * @magentoAppIsolation enabled
- *
- * @covers \Magento\UrlRewrite\Controller\Router::match
- * @covers \Magento\UrlRewrite\Model\Storage\DbStorage::doFindOneByData
- *
- * @param string $request
- * @param string $redirect
- * @param int $expectedCode
- *
- * @dataProvider requestDataProvider
- */
- public function testMatchUrlRewrite(
- string $request,
- string $redirect,
- int $expectedCode = 301
- ) {
- $this->dispatch($request);
- /** @var HttpResponse $response */
- $response = $this->getResponse();
- $code = $response->getHttpResponseCode();
- $location = $response->getHeader('Location')->getFieldValue();
- $this->assertEquals($expectedCode, $code, 'Invalid response code');
- $this->assertStringEndsWith(
- $redirect,
- $location,
- 'Invalid location header'
- );
- }
- /**
- * @return array
- */
- public function requestDataProvider()
- {
- return [
- 'Use Case #1: Rewrite: page-one/ --(301)--> page-a/; Request: page-one/ --(301)--> page-a/' => [
- 'request' => '/page-one/',
- 'redirect' => '/page-a/',
- ],
- 'Use Case #2: Rewrite: page-one/ --(301)--> page-a/; Request: page-one --(301)--> page-a/' => [
- 'request' => '/page-one',
- 'redirect' => '/page-a/',
- ],
- 'Use Case #3: Rewrite: page-two --(301)--> page-b; Request: page-two --(301)--> page-b' => [
- 'request' => '/page-two',
- 'redirect' => '/page-b',
- ],
- 'Use Case #4: Rewrite: page-two --(301)--> page-b; Request: page-two --(301)--> page-b' => [
- 'request' => '/page-two/',
- 'redirect' => '/page-b',
- ],
- 'Use Case #5: Rewrite: page-similar --(301)--> page-a; Request: page-similar --(301)--> page-a' => [
- 'request' => '/page-similar',
- 'redirect' => '/page-a',
- ],
- 'Use Case #6: Rewrite: page-similar/ --(301)--> page-b; Request: page-similar/ --(301)--> page-b' => [
- 'request' => '/page-similar/',
- 'redirect' => '/page-b',
- ],
- ];
- }
- }
|