depcalc-8.x-1.x-dev/tests/src/Kernel/EventSubscriber/DependencyCollector/TextItemFieldDependencyCollectorTest.php

tests/src/Kernel/EventSubscriber/DependencyCollector/TextItemFieldDependencyCollectorTest.php
<?php

namespace Drupal\Tests\depcalc\Kernel\EventSubscriber\DependencyCollector;

use Drupal\editor\Entity\Editor;
use Drupal\KernelTests\KernelTestBase;
use Drupal\Tests\depcalc\Kernel\Traits\FieldTrait;
use Drupal\Tests\node\Traits\NodeCreationTrait;
use Drupal\Tests\taxonomy\Traits\TaxonomyTestTrait;

/**
 * Tests if fields were added as dependency.
 *
 * @coversDefaultClass \Drupal\depcalc\EventSubscriber\DependencyCollector\TextItemFieldDependencyCollector
 *
 * @package Drupal\depcalc\EventSubscriber\DependencyCollector
 *
 * @group depcalc
 */
class TextItemFieldDependencyCollectorTest extends KernelTestBase {

  use FieldTrait;
  use NodeCreationTrait;
  use TaxonomyTestTrait;
  use CalculateDependenciesEventDispatcherTrait;

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'depcalc',
    'field',
    'filter',
    'language',
    'content_translation',
    'node',
    'system',
    'text',
    'user',
    'file',
    'taxonomy',
    'path_alias',
    'entity_test',
    'entity_test_third_party',
    'field',
    'field_ui',
    'link',
    'editor',
    'editor_test',
  ];

  /**
   * {@inheritdoc}
   *
   * @throws \ReflectionException
   * @throws \Drupal\Core\Entity\EntityStorageException
   */
  protected function setUp(): void {
    parent::setUp();

    $this->installEntitySchema('filter_format');
    $this->installEntitySchema('node');
    $this->installEntitySchema('user');
    $this->installEntitySchema('file');
    $this->installEntitySchema('path_alias');
    $this->installEntitySchema('taxonomy_term');
    $this->installEntitySchema('entity_test');
    $this->installSchema('system', 'sequences');
    $this->installSchema('file', 'file_usage');
    $this->installConfig(
          [
            'node',
            'user',
            'file',
            'filter',
            'entity_test',
          ]
      );
  }

  /**
   * @covers ::onCalculateDependencies
   *
   * @throws \Exception
   */
  public function testFieldsAndEditorWereAddedAsDependencies() {
    $editor = Editor::create(
          [
            'format' => 'plain_text',
            'editor' => 'unicorn',
          ]
      );
    $editor->save();

    $vocabulary = $this->createVocabulary();

    $vocabulary_target = $this->createVocabulary();
    $handler_settings = [
      'target_bundles' => [
        $vocabulary_target->id() => $vocabulary_target->id(),
      ],
    ];
    $this->createEntityReferenceField('taxonomy_term', $vocabulary->id(), 'type', $this->randomString(), 'taxonomy_term', 'default', $handler_settings);
    $entity_display_repository = \Drupal::service('entity_display.repository');
    $entity_display_repository->getViewDisplay('taxonomy_term', $vocabulary->id(), 'default')
      ->setComponent('type')
      ->save();
    $entity_display_repository->getFormDisplay('taxonomy_term', $vocabulary->id(), 'default')
      ->setComponent('type', ['type' => 'entity_reference_autocomplete'])
      ->save();
    $term1 = $this->createTerm($vocabulary);
    $term2 = $this->createTerm($vocabulary_target);

    $term1->set('type', $term2->id());
    $term1->save();

    $event = $this->dispatchCalculateDependencies($term1);
    $dependencies = $event->getDependencies();
    $filter_uuid = \Drupal::entityTypeManager()->getStorage('filter_format')
      ->load('plain_text')->uuid();

    $this->assertArrayHasKey($filter_uuid, $dependencies);
    $this->assertArrayHasKey($editor->uuid(), $dependencies);

    $modules = $event->getModuleDependencies();
    // Already sorted.
    $expectation = [
      'editor',
      'editor_test',
      'filter',
      'taxonomy',
      'text',
    ];
    sort($modules);
    $this->assertSame($expectation, $modules, 'editor_test module was added to the dependencies.');
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc