Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
7 / 7
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
MimeTypeConfigurator
100.00% covered (success)
100.00%
7 / 7
100.00% covered (success)
100.00%
2 / 2
4
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getMimeTypes
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
3
1<?php
2
3namespace AdvancedSearch;
4
5use Wikimedia\Mime\MimeAnalyzer;
6
7/**
8 * @license GPL-2.0-or-later
9 */
10class MimeTypeConfigurator {
11
12    public function __construct( private readonly MimeAnalyzer $mimeAnalyzer ) {
13    }
14
15    /**
16     * @param string[] $fileExtensions
17     *
18     * @return string[] List of file extension => MIME type.
19     */
20    public function getMimeTypes( array $fileExtensions ): array {
21        $mimeTypes = [];
22
23        foreach ( $fileExtensions as $ext ) {
24            $mimeType = $this->mimeAnalyzer->getMimeTypeFromExtensionOrNull( $ext );
25            if ( $mimeType ) {
26                $mimeTypes += [ $mimeType => $ext ];
27            }
28        }
29
30        return array_flip( $mimeTypes );
31    }
32
33}