function LinkNotExistingInternalConstraintValidatorTest::providerValidate

Same name and namespace in other branches
  1. 8.9.x core/modules/link/tests/src/Unit/Plugin/Validation/Constraint/LinkNotExistingInternalConstraintValidatorTest.php \Drupal\Tests\link\Unit\Plugin\Validation\Constraint\LinkNotExistingInternalConstraintValidatorTest::providerValidate()

Data provider for ::testValidate.

File

core/modules/link/tests/src/Unit/Plugin/Validation/Constraint/LinkNotExistingInternalConstraintValidatorTest.php, line 44

Class

LinkNotExistingInternalConstraintValidatorTest
@coversDefaultClass \Drupal\link\Plugin\Validation\Constraint\LinkNotExistingInternalConstraintValidator[[api-linebreak]] @group Link

Namespace

Drupal\Tests\link\Unit\Plugin\Validation\Constraint

Code

public function providerValidate() {
  $data = [];
  // External URL
  $data[] = [
    Url::fromUri('https://www.drupal.org'),
    TRUE,
  ];
  // Existing routed URL.
  $url = Url::fromRoute('example.existing_route');
  $url_generator = $this->createMock('Drupal\\Core\\Routing\\UrlGeneratorInterface');
  $url_generator->expects($this->any())
    ->method('generateFromRoute')
    ->with('example.existing_route', [], [])
    ->willReturn('/example/existing');
  $url->setUrlGenerator($url_generator);
  $data[] = [
    $url,
    TRUE,
  ];
  // Non-existent routed URL.
  $url = Url::fromRoute('example.not_existing_route');
  $url_generator = $this->createMock('Drupal\\Core\\Routing\\UrlGeneratorInterface');
  $url_generator->expects($this->any())
    ->method('generateFromRoute')
    ->with('example.not_existing_route', [], [])
    ->willThrowException(new RouteNotFoundException());
  $url->setUrlGenerator($url_generator);
  $data[] = [
    $url,
    FALSE,
  ];
  foreach ($data as &$single_data) {
    $link = $this->createMock('Drupal\\link\\LinkItemInterface');
    $link->expects($this->any())
      ->method('getUrl')
      ->willReturn($single_data[0]);
    $single_data[0] = $link;
  }
  return $data;
}

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