You are here

MimeTypeTest.php in Zircon Profile 8

File

vendor/symfony/http-foundation/Tests/File/MimeType/MimeTypeTest.php
View source
<?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 Symfony\Component\HttpFoundation\Tests\File\MimeType;

use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser;
use Symfony\Component\HttpFoundation\File\MimeType\FileBinaryMimeTypeGuesser;

/**
 * @requires extension fileinfo
 */
class MimeTypeTest extends \PHPUnit_Framework_TestCase {
  protected $path;
  public function testGuessImageWithoutExtension() {
    $this
      ->assertEquals('image/gif', MimeTypeGuesser::getInstance()
      ->guess(__DIR__ . '/../Fixtures/test'));
  }
  public function testGuessImageWithDirectory() {
    $this
      ->setExpectedException('Symfony\\Component\\HttpFoundation\\File\\Exception\\FileNotFoundException');
    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
      ->setExpectedException('Symfony\\Component\\HttpFoundation\\File\\Exception\\FileNotFoundException');
    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
        ->setExpectedException('Symfony\\Component\\HttpFoundation\\File\\Exception\\AccessDeniedException');
      MimeTypeGuesser::getInstance()
        ->guess($path);
    }
    else {
      $this
        ->markTestSkipped('Can not verify chmod operations, change of file permissions failed');
    }
  }
  public static function tearDownAfterClass() {
    $path = __DIR__ . '/../Fixtures/to_delete';
    if (file_exists($path)) {
      @chmod($path, 0666);
      @unlink($path);
    }
  }

}

Classes

Namesort descending Description
MimeTypeTest @requires extension fileinfo