function MimeTypePassTest::testProcessLegacy

Tests backwards compatibility shim for MimeTypeGuesser interface changes.

File

core/tests/Drupal/Tests/Core/DependencyInjection/Compiler/MimeTypePassTest.php, line 29

Class

MimeTypePassTest
@coversDefaultClass \Drupal\Core\DependencyInjection\Compiler\MimeTypePass[[api-linebreak]] @group DependencyInjection @group legacy @runInSeparateProcess

Namespace

Drupal\Tests\Core\DependencyInjection\Compiler

Code

public function testProcessLegacy() {
  $this->expectDeprecation('The "Drupal\\Tests\\Core\\DependencyInjection\\Compiler\\LegacyMimeTypeGuesser" class implements "Symfony\\Component\\HttpFoundation\\File\\MimeType\\MimeTypeGuesserInterface" that is deprecated since Symfony 4.3, use {@link MimeTypesInterface} instead.');
  $container = $this->buildContainer();
  $container->register('file.mime_type.guesser', MimeTypeGuesser::class);
  $container->register('handler1', __NAMESPACE__ . '\\NewMimeTypeGuesser')
    ->addTag('mime_type_guesser', [
    'priority' => 200,
  ]);
  $container->register('handler2', __NAMESPACE__ . '\\LegacyMimeTypeGuesser')
    ->addTag('mime_type_guesser', [
    'priority' => 100,
  ]);
  $handler_pass = new MimeTypePass();
  $handler_pass->process($container);
  $method_calls = $container->getDefinition('file.mime_type.guesser')
    ->getMethodCalls();
  $this->assertCount(2, $method_calls);
  $this->assertSame(200, $method_calls[0][1][1]);
  $this->assertSame(100, $method_calls[1][1][1]);
}

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