More updates to stop using dev or alpha or beta versions.
[yaffs-website] / web / core / tests / Drupal / Tests / Core / File / MimeTypeGuesserTest.php
1 <?php
2
3 namespace Drupal\Tests\Core\File;
4
5 use Drupal\Core\DependencyInjection\ContainerBuilder;
6 use Drupal\Core\File\MimeType\MimeTypeGuesser;
7 use Drupal\Core\StreamWrapper\StreamWrapperManager;
8 use Drupal\Tests\UnitTestCase;
9 use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser as SymfonyMimeTypeGuesser;
10
11 /**
12  * @coversDefaultClass \Drupal\Core\File\MimeType\MimeTypeGuesser
13  * @group DrupalKernel
14  */
15 class MimeTypeGuesserTest extends UnitTestCase {
16
17   /**
18    * @covers ::registerWithSymfonyGuesser
19    *
20    * @see Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser
21    */
22   public function testSymfonyGuesserRegistration() {
23     // Make the guessers property accessible on Symfony's MimeTypeGuesser.
24     $symfony_guesser = SymfonyMimeTypeGuesser::getInstance();
25     // Test that the Drupal mime type guess is not being used before the
26     // override method is called. It is possible that the test environment does
27     // not support the default guessers.
28     $guessers = $this->readAttribute($symfony_guesser, 'guessers');
29     if (count($guessers)) {
30       $this->assertNotInstanceOf('Drupal\Core\File\MimeType\MimeTypeGuesser', $guessers[0]);
31     }
32     $container = new ContainerBuilder();
33     $container->set('file.mime_type.guesser', new MimeTypeGuesser(new StreamWrapperManager()));
34     MimeTypeGuesser::registerWithSymfonyGuesser($container);
35     $symfony_guesser = SymfonyMimeTypeGuesser::getInstance();
36     $guessers = $this->readAttribute($symfony_guesser, 'guessers');
37     $this->assertSame($container->get('file.mime_type.guesser'), $guessers[0]);
38     $this->assertInstanceOf('Drupal\Core\File\MimeType\MimeTypeGuesser', $guessers[0]);
39     $count = count($guessers);
40
41     $container = new ContainerBuilder();
42     $container->set('file.mime_type.guesser', new MimeTypeGuesser(new StreamWrapperManager()));
43     MimeTypeGuesser::registerWithSymfonyGuesser($container);
44     $symfony_guesser = SymfonyMimeTypeGuesser::getInstance();
45     $guessers = $this->readAttribute($symfony_guesser, 'guessers');
46     $this->assertSame($container->get('file.mime_type.guesser'), $guessers[0]);
47     $this->assertInstanceOf('Drupal\Core\File\MimeType\MimeTypeGuesser', $guessers[0]);
48     $new_count = count($guessers);
49     $this->assertEquals($count, $new_count, 'The count of mime type guessers remains the same after container re-init.');
50   }
51
52 }