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

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

namespace Drupal\Tests\core_event_dispatcher\Kernel\File;

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

/**
 * Class FileMimetypeMappingAlterEvent.
 *
 * @covers \Drupal\core_event_dispatcher\Event\File\FileMimetypeMappingAlterEvent
 *
 * @group hook_event_dispatcher
 * @group core_event_dispatcher
 */
class FileMimetypeMappingAlterEventTest extends KernelTestBase {

  use ListenerTrait;

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

  /**
   * Test FileMimetypeMappingAlterEvent.
   *
   * @throws \Exception
   */
  public function testFileMimetypeMappingAlterEvent(): void {
    $this->listen(FileHookEvents::FILE_MIMETYPE_MAPPING_ALTER, 'onFileMimetypeMappingAlter');

    $testCase = [
      'foo.file_test_1' => 'bar/file_test_1',
      'foo.file_test_2' => 'bar/file_test_2',
      'foo.file_test_3' => 'bar/file_test_2',
      'foo.doc' => 'bar/doc',
      'test.ogg' => 'application/octet-stream',
    ];

    $guesser = $this->container->get('file.mime_type.guesser');
    // Test using default mappings.
    foreach ($testCase as $input => $expected) {
      $output = $guesser->guessMimeType($input);
      $this->assertEquals($expected, $output);
    }
  }

  /**
   * Callback for FileMimetypeMappingAlterEvent.
   *
   * @param \Drupal\core_event_dispatcher\Event\File\FileMimetypeMappingAlterEvent $event
   *   The event.
   */
  public function onFileMimetypeMappingAlter(FileMimetypeMappingAlterEvent $event): void {
    // Add new mappings.
    $event->setMimetypeMapping('file_test_mimetype_1', 'bar/file_test_1');
    $event->setMimetypeMapping('file_test_mimetype_2', 'bar/file_test_2');
    $event->setMimetypeMapping('file_test_mimetype_3', 'bar/doc');
    $event->setExtensionMapping('file_test_1', 'file_test_mimetype_1');
    $event->setExtensionMapping('file_test_2', 'file_test_mimetype_2');
    $event->setExtensionMapping('file_test_3', 'file_test_mimetype_2');
    // Override existing mapping.
    $event->setExtensionMapping('doc', 'file_test_mimetype_3');

    $event->unsetExtensionMapping('ogg');
  }

}

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

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