<?php namespace Szurubooru\Tests\Helpers; use Szurubooru\Helpers\MimeHelper; use Szurubooru\Tests\AbstractTestCase; final class MimeHelperTest extends AbstractTestCase { public static function animatedGifProvider() { return [ ['test_files/video.mp4', false], ['test_files/static.gif', false], ['test_files/animated.gif', true], ['test_files/animated2.gif', true], ['test_files/animated3.gif', true], ['test_files/animated4.gif', true], ]; } public function testGettingMime() { $expected = 'image/jpeg'; $actual = MimeHelper::getMimeTypeFromBuffer($this->getTestFile('image.jpg')); $this->assertEquals($expected, $actual); } public function testIsFlash() { $this->assertTrue(MimeHelper::isFlash('application/x-shockwave-flash')); $this->assertTrue(MimeHelper::isFlash('APPLICATION/X-SHOCKWAVE-FLASH')); $this->assertFalse(MimeHelper::isFlash('something else')); } public function testIsImage() { $this->assertTrue(MimeHelper::isImage('IMAGE/JPEG')); $this->assertTrue(MimeHelper::isImage('IMAGE/PNG')); $this->assertTrue(MimeHelper::isImage('IMAGE/GIF')); $this->assertTrue(MimeHelper::isImage('image/jpeg')); $this->assertTrue(MimeHelper::isImage('image/png')); $this->assertTrue(MimeHelper::isImage('image/gif')); $this->assertFalse(MimeHelper::isImage('something else')); } public function testIsVideo() { $this->assertTrue(MimeHelper::isVideo('VIDEO/MP4')); $this->assertTrue(MimeHelper::isVideo('video/mp4')); $this->assertTrue(MimeHelper::isVideo('APPLICATION/OGG')); $this->assertTrue(MimeHelper::isVideo('application/ogg')); $this->assertFalse(MimeHelper::isVideo('something else')); } /** * @dataProvider animatedGifProvider */ public function testIsAnimatedGif($path, $expected) { $fullPath = __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . $path; $actual = MimeHelper::isBufferAnimatedGif(file_get_contents($fullPath)); $this->assertEquals($expected, $actual); } }