You are here

public function UrlTest::testGetInternalPath in Drupal 8

Tests the getInternalPath method().

@covers ::getInternalPath

@depends testUrlFromRequest

Parameters

\Drupal\Core\Url[] $urls: Array of URL objects.

File

core/tests/Drupal/Tests/Core/UrlTest.php, line 358
Contains \Drupal\Tests\Core\UrlTest.

Class

UrlTest
@coversDefaultClass \Drupal\Core\Url @group UrlTest

Namespace

Drupal\Tests\Core

Code

public function testGetInternalPath($urls) {
  $map = [];
  $map[] = [
    'view.frontpage.page_1',
    [],
    '/node',
  ];
  $map[] = [
    'node_view',
    [
      'node' => '1',
    ],
    '/node/1',
  ];
  $map[] = [
    'node_edit',
    [
      'node' => '2',
    ],
    '/node/2/edit',
  ];
  foreach ($urls as $index => $url) {

    // Clone the url so that there is no leak of internal state into the
    // other ones.
    $url = clone $url;
    $url_generator = $this
      ->createMock('Drupal\\Core\\Routing\\UrlGeneratorInterface');
    $url_generator
      ->expects($this
      ->once())
      ->method('getPathFromRoute')
      ->will($this
      ->returnValueMap($map, $index));
    $url
      ->setUrlGenerator($url_generator);
    $url
      ->getInternalPath();
    $url
      ->getInternalPath();
  }
}