hook_event_dispatcher-8.x-2.04/modules/field_event_dispatcher/tests/src/Kernel/FieldInfoAlterEventTest.php

modules/field_event_dispatcher/tests/src/Kernel/FieldInfoAlterEventTest.php
<?php

namespace Drupal\Tests\field_event_dispatcher\Kernel;

use Drupal\field_event_dispatcher\Event\Field\FieldInfoAlterEvent;
use Drupal\field_event_dispatcher\FieldHookEvents;
use Drupal\KernelTests\KernelTestBase;
use Drupal\Tests\hook_event_dispatcher\Kernel\ListenerTrait;

/**
 * Class FieldInfoAlterEventTest.
 *
 * @group hook_event_dispatcher
 * @group field_event_dispatcher
 *
 * @see \field_event_dispatcher_field_info_alter()
 */
class FieldInfoAlterEventTest extends KernelTestBase {

  use ListenerTrait;

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'hook_event_dispatcher',
    'field_event_dispatcher',
  ];

  /**
   * FieldInfoAlterEvent array alter test.
   *
   * This tests altering the field plugin type definitions array.
   *
   * @throws \Exception
   */
  public function testFieldInfoAlter(): void {
    $this->listen(FieldHookEvents::FIELD_INFO_ALTER, 'onFieldInfoAlter');

    $definition = $this->container->get('plugin.manager.field.field_type')->getDefinition('test_field');
    $this->assertEquals('test_widget', $definition['default_widget']);
  }

  /**
   * Callback for FieldInfoAlterEvent.
   *
   * @param \Drupal\field_event_dispatcher\Event\Field\FieldInfoAlterEvent $event
   *   The event.
   */
  public function onFieldInfoAlter(FieldInfoAlterEvent $event): void {
    $info = &$event->getInfo();
    $info['test_field']['default_widget'] = 'test_widget';
  }

}

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

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