Вход Регистрация
Файл: monst/Xsolla/Symfony/Component/HttpFoundation/Tests/File/MimeType/MimeTypeTest.php
Строк: 135
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentHttpFoundationTestsFileMimeType;

use 
PHPUnitFrameworkTestCase;
use 
SymfonyComponentHttpFoundationFileMimeTypeMimeTypeGuesser;
use 
SymfonyComponentHttpFoundationFileMimeTypeFileBinaryMimeTypeGuesser;

/**
 * @requires extension fileinfo
 */
class MimeTypeTest extends TestCase
{
    protected 
$path;

    public function 
testGuessImageWithoutExtension()
    {
        
$this->assertEquals('image/gif'MimeTypeGuesser::getInstance()->guess(__DIR__.'/../Fixtures/test'));
    }

    public function 
testGuessImageWithDirectory()
    {
        
$this->{method_exists($this$_ 'expectException') ? $_ 'setExpectedException'}('SymfonyComponentHttpFoundationFileExceptionFileNotFoundException');

        
MimeTypeGuesser::getInstance()->guess(__DIR__.'/../Fixtures/directory');
    }

    public function 
testGuessImageWithFileBinaryMimeTypeGuesser()
    {
        
$guesser MimeTypeGuesser::getInstance();
        
$guesser->register(new FileBinaryMimeTypeGuesser());
        
$this->assertEquals('image/gif'MimeTypeGuesser::getInstance()->guess(__DIR__.'/../Fixtures/test'));
    }

    public function 
testGuessImageWithKnownExtension()
    {
        
$this->assertEquals('image/gif'MimeTypeGuesser::getInstance()->guess(__DIR__.'/../Fixtures/test.gif'));
    }

    public function 
testGuessFileWithUnknownExtension()
    {
        
$this->assertEquals('application/octet-stream'MimeTypeGuesser::getInstance()->guess(__DIR__.'/../Fixtures/.unknownextension'));
    }

    public function 
testGuessWithIncorrectPath()
    {
        
$this->{method_exists($this$_ 'expectException') ? $_ 'setExpectedException'}('SymfonyComponentHttpFoundationFileExceptionFileNotFoundException');
        
MimeTypeGuesser::getInstance()->guess(__DIR__.'/../Fixtures/not_here');
    }

    public function 
testGuessWithNonReadablePath()
    {
        if (
'\' === DIRECTORY_SEPARATOR) {
            $this->markTestSkipped('
Can not verify chmod operations on Windows');
        }

        if (!getenv('
USER') || 'root' === getenv('USER')) {
            $this->markTestSkipped('
This test will fail if run under superuser');
        }

        $path = __DIR__.'
/../Fixtures/to_delete';
        touch($path);
        @chmod($path, 0333);

        if (substr(sprintf('
%o', fileperms($path)), -4) == '0333') {
            $this->{method_exists($this, $_ = '
expectException') ? $_ : 'setExpectedException'}('SymfonyComponentHttpFoundationFileExceptionAccessDeniedException');
            MimeTypeGuesser::getInstance()->guess($path);
        } else {
            $this->markTestSkipped('
Can not verify chmod operationschange of file permissions failed');
        }
    }

    public static function tearDownAfterClass()
    {
        $path = __DIR__.'
/../Fixtures/to_delete';
        if (file_exists($path)) {
            @chmod($path, 0666);
            @unlink($path);
        }
    }
}
Онлайн: 0
Реклама