function PathValidatorTest::testGetUrlIfValidWithoutAccessCheck
File
- 
              core/
tests/ Drupal/ KernelTests/ Core/ Path/ PathValidatorTest.php, line 36  
Class
- PathValidatorTest
 - Tests the path validator.
 
Namespace
Drupal\KernelTests\Core\PathCode
public function testGetUrlIfValidWithoutAccessCheck() {
  $requestContext = \Drupal::service('router.request_context');
  $pathValidator = \Drupal::service('path.validator');
  $entity = EntityTest::create([
    'name' => 'test',
  ]);
  $entity->save();
  $methods = [
    'POST',
    'GET',
    'PUT',
    'PATCH',
    'DELETE',
    // NULL is used in CLI context which results in a request method of an
    // empty string.
'',
    // If no request was even pushed onto the request stack, and hence.
FALSE,
  ];
  foreach ($methods as $method) {
    if ($method === FALSE) {
      $request_stack = $this->container
        ->get('request_stack');
      while ($request_stack->getCurrentRequest()) {
        $request_stack->pop();
      }
      $this->container
        ->set('router.request_context', new RequestContext());
    }
    $requestContext->setMethod($method);
    /** @var \Drupal\Core\Url $url */
    $url = $pathValidator->getUrlIfValidWithoutAccessCheck($entity->toUrl()
      ->toString(TRUE)
      ->getGeneratedUrl());
    $this->assertEquals($method, $requestContext->getMethod());
    $this->assertInstanceOf(Url::class, $url);
    $this->assertSame([
      'entity_test' => $entity->id(),
    ], $url->getRouteParameters());
  }
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.