You are here

public function LinkNotExistingInternalConstraintValidatorTest::providerValidate in Drupal 9

Same name and namespace in other branches
  1. 8 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 @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;
}