trait CKEditor5ValidationTestTrait

Same name and namespace in other branches
  1. 9 core/modules/ckeditor5/tests/src/Kernel/CKEditor5ValidationTestTrait.php \Drupal\Tests\ckeditor5\Kernel\CKEditor5ValidationTestTrait
  2. 11.x core/modules/ckeditor5/tests/src/Kernel/CKEditor5ValidationTestTrait.php \Drupal\Tests\ckeditor5\Kernel\CKEditor5ValidationTestTrait

Defines a trait for testing CKEditor 5 validity.

Hierarchy

File

core/modules/ckeditor5/tests/src/Kernel/CKEditor5ValidationTestTrait.php, line 15

Namespace

Drupal\Tests\ckeditor5\Kernel
View source
trait CKEditor5ValidationTestTrait {
  
  /**
   * Decorator for CKEditor5::validatePair() that returns an assertable array.
   *
   * @param \Drupal\editor\EditorInterface $text_editor
   *   The paired text editor to validate.
   * @param \Drupal\filter\FilterFormatInterface $text_format
   *   The paired text format to validate.
   * @param bool $all_compatibility_problems
   *   Only fundamental compatibility violations are returned unless TRUE.
   *
   * @return array
   *   An array with property paths as keys and violation messages as values.
   *
   * @see \Drupal\ckeditor5\Plugin\Editor\CKEditor5::validatePair
   */
  private function validatePairToViolationsArray(EditorInterface $text_editor, FilterFormatInterface $text_format, bool $all_compatibility_problems) : array {
    $violations = CKEditor5::validatePair($text_editor, $text_format, $all_compatibility_problems);
    return self::violationsToArray($violations);
  }
  
  /**
   * Transforms a constraint violation list object to an assertable array.
   *
   * @param \Symfony\Component\Validator\ConstraintViolationListInterface $violations
   *   Validation constraint violations.
   *
   * @return array
   *   An array with property paths as keys and violation messages as values.
   */
  private static function violationsToArray(ConstraintViolationListInterface $violations) : array {
    $actual_violations = [];
    foreach ($violations as $violation) {
      if (!isset($actual_violations[$violation->getPropertyPath()])) {
        $actual_violations[$violation->getPropertyPath()] = (string) $violation->getMessage();
      }
      else {
        // Transform value from string to array.
        if (is_string($actual_violations[$violation->getPropertyPath()])) {
          $actual_violations[$violation->getPropertyPath()] = (array) $actual_violations[$violation->getPropertyPath()];
        }
        // And append.
        $actual_violations[$violation->getPropertyPath()][] = (string) $violation->getMessage();
      }
    }
    return $actual_violations;
  }

}

Members

Title Sort descending Modifiers Object type Summary
CKEditor5ValidationTestTrait::validatePairToViolationsArray private function Decorator for CKEditor5::validatePair() that returns an assertable array.
CKEditor5ValidationTestTrait::violationsToArray private static function Transforms a constraint violation list object to an assertable array.

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