hook_event_dispatcher-8.x-2.04/modules/core_event_dispatcher/tests/src/Kernel/File/FileTransferInfoEventTest.php

modules/core_event_dispatcher/tests/src/Kernel/File/FileTransferInfoEventTest.php
<?php

namespace Drupal\Tests\core_event_dispatcher\Kernel\File;

use Drupal\core_event_dispatcher\Event\File\FileTransferInfoAlterEvent;
use Drupal\core_event_dispatcher\Event\File\FileTransferInfoEvent;
use Drupal\core_event_dispatcher\FileHookEvents;
use Drupal\KernelTests\KernelTestBase;
use Drupal\Tests\hook_event_dispatcher\Kernel\ListenerTrait;

/**
 * Class FileTransferInfoEvent.
 *
 * @covers \Drupal\core_event_dispatcher\Event\File\FileTransferInfoAlterEvent
 * @covers \Drupal\core_event_dispatcher\Event\File\FileTransferInfoEvent
 *
 * @group hook_event_dispatcher
 * @group core_event_dispatcher
 */
class FileTransferInfoEventTest extends KernelTestBase {

  use ListenerTrait;

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

  /**
   * Test FileTransferInfoEvent.
   *
   * @throws \Exception
   */
  public function testFileTransferInfoEvent(): void {
    $this->listen(FileHookEvents::FILE_TRANSFER_INFO, 'onFileTransferInfo');
    $this->listen(FileHookEvents::FILE_TRANSFER_INFO_ALTER, 'onFileTransferInfoAlter');

    $info = drupal_get_filetransfer_info();
    $this->assertArrayHasKey('test', $info);
    $this->assertEquals([
      'title' => 'Test',
      'class' => self::class,
      'weight' => 10,
    ], $info['test']);
  }

  /**
   * Callback for FileTransferInfoEvent.
   *
   * @param \Drupal\core_event_dispatcher\Event\File\FileTransferInfoEvent $event
   *   The event.
   */
  public function onFileTransferInfo(FileTransferInfoEvent $event): void {
    $this->assertFalse($event->hasDefinition('test'));
    $event->addDefinition('test', 'Test', self::class, 10);
  }

  /**
   * Callback for FileTransferInfoAlterEvent.
   *
   * @param \Drupal\core_event_dispatcher\Event\File\FileTransferInfoAlterEvent $event
   *   The event.
   */
  public function onFileTransferInfoAlter(FileTransferInfoAlterEvent $event): void {
    $this->assertTrue($event->hasDefinition('system_test'));
    $definition = $event->getDefinition('system_test');
    $this->assertNotEquals(0, $definition['weight']);
    $definition['weight'] = 0;
    $event->setDefinition('system_test', $definition);
  }

}

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

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