You are here

public function OEmbedResourceConstraintValidatorTest::testValidateEmptySource in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/media/tests/src/Kernel/OEmbedResourceConstraintValidatorTest.php \Drupal\Tests\media\Kernel\OEmbedResourceConstraintValidatorTest::testValidateEmptySource()

@covers ::validate

File

core/modules/media/tests/src/Kernel/OEmbedResourceConstraintValidatorTest.php, line 42

Class

OEmbedResourceConstraintValidatorTest
@coversDefaultClass \Drupal\media\Plugin\Validation\Constraint\OEmbedResourceConstraintValidator

Namespace

Drupal\Tests\media\Kernel

Code

public function testValidateEmptySource() {
  $media = Media::create([
    'bundle' => $this
      ->createMediaType('oembed:video')
      ->id(),
  ]);
  $constraint = new OEmbedResourceConstraint();

  // The media item has an empty source value, so the constraint validator
  // should add a violation and return early before invoking the URL resolver.
  $context = $this
    ->prophesize(ExecutionContextInterface::class);
  $context
    ->addViolation($constraint->invalidResourceMessage)
    ->shouldBeCalled();
  $url_resolver = $this
    ->prophesize(UrlResolverInterface::class);
  $url_resolver
    ->getProviderByUrl(Argument::any())
    ->shouldNotBeCalled();
  $validator = new OEmbedResourceConstraintValidator($url_resolver
    ->reveal(), $this->container
    ->get('media.oembed.resource_fetcher'), $this->container
    ->get('logger.factory'));
  $validator
    ->initialize($context
    ->reveal());
  $validator
    ->validate($this
    ->getValue($media), $constraint);
}