diff --git a/tests/Unit/FileTest.php b/tests/Unit/FileTest.php new file mode 100644 index 00000000..f03591fa --- /dev/null +++ b/tests/Unit/FileTest.php @@ -0,0 +1,61 @@ +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']); + } +} diff --git a/tests/blobs/cover.png b/tests/blobs/cover.png new file mode 100644 index 00000000..b6574ace Binary files /dev/null and b/tests/blobs/cover.png differ