mirror of
https://github.com/koel/koel
synced 2024-11-10 06:34:14 +00:00
Add unit tests for File
This commit is contained in:
parent
cc975996af
commit
365ea3d9ad
2 changed files with 61 additions and 0 deletions
61
tests/Unit/FileTest.php
Normal file
61
tests/Unit/FileTest.php
Normal file
|
@ -0,0 +1,61 @@
|
|||
<?php
|
||||
|
||||
namespace Tests\Unit;
|
||||
|
||||
use App\Models\File;
|
||||
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||
use SplFileInfo;
|
||||
use Tests\TestCase;
|
||||
|
||||
class FileTest extends TestCase
|
||||
{
|
||||
use DatabaseTransactions;
|
||||
|
||||
/** @test */
|
||||
public function it_can_be_instantiated()
|
||||
{
|
||||
$file = new File(__DIR__.'/../songs/full.mp3');
|
||||
$this->assertInstanceOf(File::class, $file);
|
||||
$file = new File(new SplFileInfo(__DIR__.'/../songs/full.mp3'));
|
||||
$this->assertInstanceOf(File::class, $file);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function file_info_is_retrieved_correctly()
|
||||
{
|
||||
$file = new File(__DIR__.'/../songs/full.mp3');
|
||||
$info = $file->getInfo();
|
||||
|
||||
$expectedData = [
|
||||
'artist' => 'Koel',
|
||||
'album' => 'Koel Testing Vol. 1',
|
||||
'compilation' => false,
|
||||
'title' => 'Amet',
|
||||
'track' => 5,
|
||||
'lyrics' => '',
|
||||
'cover' => [
|
||||
'data' => file_get_contents(__DIR__.'/../blobs/cover.png'),
|
||||
'image_mime' => 'image/png',
|
||||
'image_width' => 512,
|
||||
'image_height' => 512,
|
||||
'imagetype' => 'PNG',
|
||||
'picturetype' => 'Other',
|
||||
'description' => '',
|
||||
'datalength' => 7627,
|
||||
],
|
||||
'path' => __DIR__.'/../songs/full.mp3',
|
||||
'mtime' => filemtime(__DIR__.'/../songs/full.mp3'),
|
||||
'albumartist' => '',
|
||||
];
|
||||
|
||||
$this->assertArraySubset($expectedData, $info);
|
||||
$this->assertEquals(10.083, $info['length'], '', 0.001);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function song_without_a_title_tag_has_file_name_as_the_title()
|
||||
{
|
||||
$file = new File(__DIR__.'/../songs/blank.mp3');
|
||||
$this->assertSame('blank', $file->getInfo()['title']);
|
||||
}
|
||||
}
|
BIN
tests/blobs/cover.png
Normal file
BIN
tests/blobs/cover.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.4 KiB |
Loading…
Reference in a new issue