function UrlTest::testUrlFromRequest

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/Core/UrlTest.php \Drupal\Tests\Core\UrlTest::testUrlFromRequest()
  2. 8.9.x core/tests/Drupal/Tests/Core/UrlTest.php \Drupal\Tests\Core\UrlTest::testUrlFromRequest()
  3. 11.x core/tests/Drupal/Tests/Core/UrlTest.php \Drupal\Tests\Core\UrlTest::testUrlFromRequest()

Tests creating a URL from a request.

File

core/tests/Drupal/Tests/Core/UrlTest.php, line 120

Class

UrlTest
@coversDefaultClass <a href="/api/drupal/core%21lib%21Drupal%21Core%21Url.php/class/Url/10" title="Defines an object that holds information about a URL." class="local">\Drupal\Core\Url</a> @group UrlTest

Namespace

Drupal\Tests\Core

Code

public function testUrlFromRequest() {
    $this->router
        ->expects($this->exactly(3))
        ->method('matchRequest')
        ->willReturnCallback(function (Request $request) {
        [
            $route_name,
            $vars,
        ] = match ($request->getPathInfo()) {    '/node' => [
                'view.frontpage.page_1',
                [],
            ],
            '/node/1' => [
                'node_view',
                [
                    'node' => '1',
                ],
            ],
            '/node/2/edit' => [
                'node_edit',
                [
                    'node' => '2',
                ],
            ],
        
        };
        return [
            RouteObjectInterface::ROUTE_NAME => $route_name,
            '_raw_variables' => new InputBag($vars),
        ];
    });
    $urls = [];
    foreach ($this->map as $index => $values) {
        $path = array_pop($values);
        $url = Url::createFromRequest(Request::create("{$path}"));
        $expected = Url::fromRoute($values[0], $values[1], $values[2]);
        $this->assertEquals($expected, $url);
        $urls[$index] = $url;
    }
    return $urls;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.