Skip to content

Commit 49d60ef

Browse files
authored
Restore full test coverage (#96)
1 parent 7c7c2ff commit 49d60ef

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

tests/src/MapHandlerTest.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
use FileEye\MimeMap\Extension;
66
use FileEye\MimeMap\MalformedTypeException;
7+
use FileEye\MimeMap\Map\DefaultMap;
8+
use FileEye\MimeMap\Map\EmptyMap;
79
use FileEye\MimeMap\Map\MimeMapInterface;
810
use FileEye\MimeMap\MapHandler;
911
use FileEye\MimeMap\MappingException;
@@ -21,6 +23,15 @@ public function setUp(): void
2123
$this->map = MapHandler::map();
2224
}
2325

26+
public function testSetDefaultMapClass(): void
27+
{
28+
MapHandler::setDefaultMapClass(EmptyMap::class);
29+
$this->assertInstanceOf(EmptyMap::class, MapHandler::map());
30+
MapHandler::setDefaultMapClass(DefaultMap::class);
31+
// @phpstan-ignore method.impossibleType
32+
$this->assertInstanceOf(DefaultMap::class, MapHandler::map());
33+
}
34+
2435
public function testMap(): void
2536
{
2637
$this->assertStringContainsString('DefaultMap.php', $this->map->getFileName());
@@ -37,8 +48,10 @@ public function testAdd(): void
3748
{
3849
// Adding a new type with a new extension.
3950
$this->map->addTypeExtensionMapping('bingo/bongo', 'bngbng');
51+
$this->map->addTypeDescription('bingo/bongo', 'Bingo, Bongo!');
4052
$this->assertSame(['bngbng'], (new Type('bingo/bongo'))->getExtensions());
4153
$this->assertSame('bngbng', (new Type('bingo/bongo'))->getDefaultExtension());
54+
$this->assertSame('Bingo, Bongo!', (new Type('bingo/bongo'))->getDescription());
4255
$this->assertSame(['bingo/bongo'], (new Extension('bngbng'))->getTypes());
4356
$this->assertSame('bingo/bongo', (new Extension('bngbng'))->getDefaultType());
4457

@@ -190,6 +203,14 @@ public function testSetExtensionDefaultType(): void
190203
$this->assertSame(['image/vnd.dvb.subtitle', 'text/vnd.dvb.subtitle', 'text/x-microdvd', 'text/x-mpsub', 'text/x-subviewer'], (new Extension('SUB'))->getTypes());
191204
}
192205

206+
public function testAddAliasToType(): void
207+
{
208+
$this->assertSame(['image/psd', 'image/x-psd', 'image/photoshop', 'image/x-photoshop', 'application/photoshop', 'application/x-photoshop',], (new Type('image/vnd.adobe.photoshop'))->getAliases());
209+
$this->map->addTypeAlias('image/vnd.adobe.photoshop', 'application/x-foo-bar');
210+
$this->assertSame(['image/psd', 'image/x-psd', 'image/photoshop', 'image/x-photoshop', 'application/photoshop', 'application/x-photoshop', 'application/x-foo-bar',], (new Type('image/vnd.adobe.photoshop'))->getAliases());
211+
$this->assertContains('application/x-foo-bar', $this->map->listAliases());
212+
}
213+
193214
public function testReAddAliasToType(): void
194215
{
195216
$this->assertSame(['image/psd', 'image/x-psd', 'image/photoshop', 'image/x-photoshop', 'application/photoshop', 'application/x-photoshop',], (new Type('image/vnd.adobe.photoshop'))->getAliases());

tests/src/MapUpdaterTest.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,22 @@ public function testWriteMapToPhpClassFile(): void
171171
$this->fileSystem->remove(__DIR__ . '/../fixtures/MiniMap.php');
172172
}
173173

174+
public function testWriteMapToPhpClassFileFailure(): void
175+
{
176+
$this->fileSystem->copy(__DIR__ . '/../fixtures/MiniMap.php.test', __DIR__ . '/../fixtures/MiniMap.php');
177+
include_once(__DIR__ . '/../fixtures/MiniMap.php');
178+
// @phpstan-ignore class.notFound, argument.type
179+
MapHandler::setDefaultMapClass(MiniMap::class);
180+
$map_a = MapHandler::map();
181+
$this->assertStringContainsString('fixtures/MiniMap.php', $map_a->getFileName());
182+
$content = file_get_contents($map_a->getFileName());
183+
assert(is_string($content));
184+
$this->assertStringNotContainsString('text/plain', $content);
185+
$this->expectException(\RuntimeException::class);
186+
$this->expectExceptionMessage("Failed loading file foo://bar.stub");
187+
$this->updater->writeMapToPhpClassFile("foo://bar.stub");
188+
}
189+
174190
public function testGetDefaultMapBuildFile(): void
175191
{
176192
$this->assertStringContainsString('default_map_build.yml', MapUpdater::getDefaultMapBuildFile());

0 commit comments

Comments
 (0)