mirror of
https://github.com/klaussilveira/gitlist.git
synced 2025-11-15 10:16:04 +01:00
124 lines
3.2 KiB
PHP
124 lines
3.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace GitList\SCM;
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
use Prophecy\PhpUnit\ProphecyTrait;
|
|
|
|
class FileTest extends TestCase
|
|
{
|
|
use ProphecyTrait;
|
|
|
|
public function testIsCreatingFromBlob(): void
|
|
{
|
|
$blob = $this->prophesize(Blob::class);
|
|
$blob->getName()->willReturn('my_test.png');
|
|
$blob->getContents()->willReturn('PNGFOO123');
|
|
|
|
$file = File::createFromBlob($blob->reveal());
|
|
$this->assertEquals('my_test.png', $file->getName());
|
|
$this->assertEquals('png', $file->getExtension());
|
|
$this->assertEquals('image/png', $file->getMimeType());
|
|
$this->assertEquals('PNGFOO123', $file->getContents());
|
|
$this->assertTrue($file->isImage());
|
|
}
|
|
|
|
public function testIsDetectingImages(): void
|
|
{
|
|
$file = new File('test.gif');
|
|
$this->assertTrue($file->isImage());
|
|
|
|
$file = new File('test.avi');
|
|
$this->assertFalse($file->isImage());
|
|
|
|
$file = new File('test.jpg');
|
|
$this->assertTrue($file->isImage());
|
|
|
|
$file = new File('test.zip');
|
|
$this->assertFalse($file->isImage());
|
|
}
|
|
|
|
public function testIsDetectingVideos(): void
|
|
{
|
|
$file = new File('test.avi');
|
|
$this->assertTrue($file->isVideo());
|
|
|
|
$file = new File('test.gif');
|
|
$this->assertFalse($file->isVideo());
|
|
|
|
$file = new File('test.jpg');
|
|
$this->assertFalse($file->isVideo());
|
|
|
|
$file = new File('test.zip');
|
|
$this->assertFalse($file->isVideo());
|
|
}
|
|
|
|
public function testIsDetectingAudio(): void
|
|
{
|
|
$file = new File('test.wav');
|
|
$this->assertTrue($file->isAudio());
|
|
|
|
$file = new File('test.gif');
|
|
$this->assertFalse($file->isAudio());
|
|
|
|
$file = new File('test.jpg');
|
|
$this->assertFalse($file->isAudio());
|
|
|
|
$file = new File('test.zip');
|
|
$this->assertFalse($file->isAudio());
|
|
}
|
|
|
|
public function testIsDetectingModel(): void
|
|
{
|
|
$file = new File('test.dae');
|
|
$this->assertTrue($file->isModel());
|
|
|
|
$file = new File('test.gif');
|
|
$this->assertFalse($file->isModel());
|
|
|
|
$file = new File('test.jpg');
|
|
$this->assertFalse($file->isModel());
|
|
|
|
$file = new File('test.zip');
|
|
$this->assertFalse($file->isModel());
|
|
}
|
|
|
|
public function testIsDetectingBinary(): void
|
|
{
|
|
$file = new File('test.zip');
|
|
$this->assertTrue($file->isBinary());
|
|
|
|
$file = new File('test.rar');
|
|
$this->assertTrue($file->isBinary());
|
|
|
|
$file = new File('test.wav');
|
|
$this->assertFalse($file->isBinary());
|
|
|
|
$file = new File('test.gif');
|
|
$this->assertFalse($file->isBinary());
|
|
|
|
$file = new File('test.jpg');
|
|
$this->assertFalse($file->isBinary());
|
|
}
|
|
|
|
public function testIsDetectingText(): void
|
|
{
|
|
$file = new File('test.txt');
|
|
$this->assertTrue($file->isText());
|
|
|
|
$file = new File('test.php');
|
|
$this->assertTrue($file->isText());
|
|
|
|
$file = new File('test.wav');
|
|
$this->assertFalse($file->isText());
|
|
|
|
$file = new File('test.gif');
|
|
$this->assertFalse($file->isText());
|
|
|
|
$file = new File('test.jpg');
|
|
$this->assertFalse($file->isText());
|
|
}
|
|
}
|