You are here

public function ConstraintsTest::testInstagramEmbedCodeConstraint in Media entity Instagram 8

Same name and namespace in other branches
  1. 8.2 tests/src/Unit/ConstraintsTest.php \Drupal\Tests\media_entity_instagram\Unit\ConstraintsTest::testInstagramEmbedCodeConstraint()

Tests InstagramEmbedCode constraints.

@covers \Drupal\media_entity_instagram\Plugin\Validation\Constraint\InstagramEmbedCodeConstraint @covers \Drupal\media_entity_instagram\Plugin\Validation\Constraint\InstagramEmbedCodeConstraintValidator

@dataProvider embedCodeProvider

File

tests/src/Unit/ConstraintsTest.php, line 26

Class

ConstraintsTest
Tests media_entity_instagram constrains.

Namespace

Drupal\Tests\media_entity_instagram\Unit

Code

public function testInstagramEmbedCodeConstraint($embed_code, $expected_violation_count) {

  // Check message in constraint.
  $constraint = new InstagramEmbedCodeConstraint();
  $this
    ->assertEquals(addslashes('Not valid Instagram URL/Embed code.'), addslashes($constraint->message), 'Correct constraint message found.');
  $execution_context = $this
    ->getMockBuilder('\\Drupal\\Core\\TypedData\\Validation\\ExecutionContext')
    ->disableOriginalConstructor()
    ->getMock();
  if ($expected_violation_count) {
    $execution_context
      ->expects($this
      ->exactly($expected_violation_count))
      ->method('addViolation')
      ->with($constraint->message);
  }
  else {
    $execution_context
      ->expects($this
      ->exactly($expected_violation_count))
      ->method('addViolation');
  }
  $validator = new InstagramEmbedCodeConstraintValidator();
  $validator
    ->initialize($execution_context);
  $definition = $this
    ->getMock(ComplexDataDefinitionInterface::class);
  $definition
    ->method('getPropertyDefinitions')
    ->willReturn([]);
  $data = new StringLongItem($definition);
  $data
    ->set('value', $embed_code);
  $validator
    ->validate($data, $constraint);
}