69 lines
1.8 KiB
PHP
69 lines
1.8 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace oat\tao\test\model\websource;
|
||
|
|
||
|
use oat\generis\test\TestCase;
|
||
|
use oat\oatbox\filesystem\FileSystem;
|
||
|
use oat\tao\model\websource\BaseWebsource;
|
||
|
use oat\generis\test\MockObject;
|
||
|
|
||
|
class BaseWebsourceTest extends TestCase
|
||
|
{
|
||
|
/** @var BaseWebsource | MockObject */
|
||
|
private $baseWebsource;
|
||
|
|
||
|
public function setUp(): void
|
||
|
{
|
||
|
$this->baseWebsource = $this->getMockForAbstractClass(
|
||
|
BaseWebsource::class,
|
||
|
[],
|
||
|
'',
|
||
|
true,
|
||
|
true,
|
||
|
true,
|
||
|
['getFileSystem']
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @dataProvider mimeTypeProvider
|
||
|
*/
|
||
|
public function testGetMimetype($fileName, $mimeType, $expectedMimeType)
|
||
|
{
|
||
|
$this->baseWebsource
|
||
|
->method('getFileSystem')
|
||
|
->willReturn($this->getFileSystemMockWithMimeType($mimeType))
|
||
|
;
|
||
|
|
||
|
$this->assertEquals($expectedMimeType, $this->baseWebsource->getMimetype($fileName));
|
||
|
}
|
||
|
|
||
|
public function mimeTypeProvider()
|
||
|
{
|
||
|
return [
|
||
|
['test.js', 'text/plain', 'text/javascript'],
|
||
|
['test.js', 'text/x-asm', 'text/javascript'],
|
||
|
['test.js', 'text/x-c', 'text/javascript'],
|
||
|
['test.css', 'text/plain', 'text/css'],
|
||
|
['test.css', 'text/x-asm', 'text/css'],
|
||
|
['test.svg', 'text/plain', 'image/svg+xml'],
|
||
|
['test.mp3', 'test/test', 'audio/mpeg'],
|
||
|
['test.test', 'test/test', 'test/test'],
|
||
|
];
|
||
|
}
|
||
|
|
||
|
private function getFileSystemMockWithMimeType($mimeType)
|
||
|
{
|
||
|
$fileSystemMock = $this
|
||
|
->getMockBuilder(FileSystem::class)
|
||
|
->disableOriginalConstructor()
|
||
|
->getMock();
|
||
|
|
||
|
$fileSystemMock
|
||
|
->method('getMimetype')
|
||
|
->willReturn($mimeType);
|
||
|
|
||
|
return $fileSystemMock;
|
||
|
}
|
||
|
}
|