You are here

class FileTest in Zircon Profile 8.0

Same name in this branch
  1. 8.0 vendor/symfony/validator/Tests/Constraints/FileTest.php \Symfony\Component\Validator\Tests\Constraints\FileTest
  2. 8.0 vendor/symfony/http-foundation/Tests/File/FileTest.php \Symfony\Component\HttpFoundation\Tests\File\FileTest
  3. 8.0 core/modules/file/tests/src/Unit/Plugin/migrate/source/d6/FileTest.php \Drupal\Tests\file\Unit\Plugin\migrate\source\d6\FileTest
  4. 8.0 core/modules/file/tests/src/Unit/Plugin/migrate/source/d7/FileTest.php \Drupal\Tests\file\Unit\Plugin\migrate\source\d7\FileTest
Same name and namespace in other branches
  1. 8 vendor/symfony/http-foundation/Tests/File/FileTest.php \Symfony\Component\HttpFoundation\Tests\File\FileTest

Hierarchy

  • class \Symfony\Component\HttpFoundation\Tests\File\FileTest extends \Symfony\Component\HttpFoundation\Tests\File\PHPUnit_Framework_TestCase

Expanded class hierarchy of FileTest

File

vendor/symfony/http-foundation/Tests/File/FileTest.php, line 17

Namespace

Symfony\Component\HttpFoundation\Tests\File
View source
class FileTest extends \PHPUnit_Framework_TestCase {
  protected $file;
  public function testGetMimeTypeUsesMimeTypeGuessers() {
    $file = new File(__DIR__ . '/Fixtures/test.gif');
    $guesser = $this
      ->createMockGuesser($file
      ->getPathname(), 'image/gif');
    MimeTypeGuesser::getInstance()
      ->register($guesser);
    $this
      ->assertEquals('image/gif', $file
      ->getMimeType());
  }
  public function testGuessExtensionWithoutGuesser() {
    $file = new File(__DIR__ . '/Fixtures/directory/.empty');
    $this
      ->assertNull($file
      ->guessExtension());
  }
  public function testGuessExtensionIsBasedOnMimeType() {
    $file = new File(__DIR__ . '/Fixtures/test');
    $guesser = $this
      ->createMockGuesser($file
      ->getPathname(), 'image/gif');
    MimeTypeGuesser::getInstance()
      ->register($guesser);
    $this
      ->assertEquals('gif', $file
      ->guessExtension());
  }

  /**
   * @requires extension fileinfo
   */
  public function testGuessExtensionWithReset() {
    $file = new File(__DIR__ . '/Fixtures/other-file.example');
    $guesser = $this
      ->createMockGuesser($file
      ->getPathname(), 'image/gif');
    MimeTypeGuesser::getInstance()
      ->register($guesser);
    $this
      ->assertEquals('gif', $file
      ->guessExtension());
    MimeTypeGuesser::reset();
    $this
      ->assertNull($file
      ->guessExtension());
  }
  public function testConstructWhenFileNotExists() {
    $this
      ->setExpectedException('Symfony\\Component\\HttpFoundation\\File\\Exception\\FileNotFoundException');
    new File(__DIR__ . '/Fixtures/not_here');
  }
  public function testMove() {
    $path = __DIR__ . '/Fixtures/test.copy.gif';
    $targetDir = __DIR__ . '/Fixtures/directory';
    $targetPath = $targetDir . '/test.copy.gif';
    @unlink($path);
    @unlink($targetPath);
    copy(__DIR__ . '/Fixtures/test.gif', $path);
    $file = new File($path);
    $movedFile = $file
      ->move($targetDir);
    $this
      ->assertInstanceOf('Symfony\\Component\\HttpFoundation\\File\\File', $movedFile);
    $this
      ->assertTrue(file_exists($targetPath));
    $this
      ->assertFalse(file_exists($path));
    $this
      ->assertEquals(realpath($targetPath), $movedFile
      ->getRealPath());
    @unlink($targetPath);
  }
  public function testMoveWithNewName() {
    $path = __DIR__ . '/Fixtures/test.copy.gif';
    $targetDir = __DIR__ . '/Fixtures/directory';
    $targetPath = $targetDir . '/test.newname.gif';
    @unlink($path);
    @unlink($targetPath);
    copy(__DIR__ . '/Fixtures/test.gif', $path);
    $file = new File($path);
    $movedFile = $file
      ->move($targetDir, 'test.newname.gif');
    $this
      ->assertTrue(file_exists($targetPath));
    $this
      ->assertFalse(file_exists($path));
    $this
      ->assertEquals(realpath($targetPath), $movedFile
      ->getRealPath());
    @unlink($targetPath);
  }
  public function getFilenameFixtures() {
    return array(
      array(
        'original.gif',
        'original.gif',
      ),
      array(
        '..\\..\\original.gif',
        'original.gif',
      ),
      array(
        '../../original.gif',
        'original.gif',
      ),
      array(
        'файлfile.gif',
        'файлfile.gif',
      ),
      array(
        '..\\..\\файлfile.gif',
        'файлfile.gif',
      ),
      array(
        '../../файлfile.gif',
        'файлfile.gif',
      ),
    );
  }

  /**
   * @dataProvider getFilenameFixtures
   */
  public function testMoveWithNonLatinName($filename, $sanitizedFilename) {
    $path = __DIR__ . '/Fixtures/' . $sanitizedFilename;
    $targetDir = __DIR__ . '/Fixtures/directory/';
    $targetPath = $targetDir . $sanitizedFilename;
    @unlink($path);
    @unlink($targetPath);
    copy(__DIR__ . '/Fixtures/test.gif', $path);
    $file = new File($path);
    $movedFile = $file
      ->move($targetDir, $filename);
    $this
      ->assertInstanceOf('Symfony\\Component\\HttpFoundation\\File\\File', $movedFile);
    $this
      ->assertTrue(file_exists($targetPath));
    $this
      ->assertFalse(file_exists($path));
    $this
      ->assertEquals(realpath($targetPath), $movedFile
      ->getRealPath());
    @unlink($targetPath);
  }
  public function testMoveToAnUnexistentDirectory() {
    $sourcePath = __DIR__ . '/Fixtures/test.copy.gif';
    $targetDir = __DIR__ . '/Fixtures/directory/sub';
    $targetPath = $targetDir . '/test.copy.gif';
    @unlink($sourcePath);
    @unlink($targetPath);
    @rmdir($targetDir);
    copy(__DIR__ . '/Fixtures/test.gif', $sourcePath);
    $file = new File($sourcePath);
    $movedFile = $file
      ->move($targetDir);
    $this
      ->assertFileExists($targetPath);
    $this
      ->assertFileNotExists($sourcePath);
    $this
      ->assertEquals(realpath($targetPath), $movedFile
      ->getRealPath());
    @unlink($sourcePath);
    @unlink($targetPath);
    @rmdir($targetDir);
  }
  protected function createMockGuesser($path, $mimeType) {
    $guesser = $this
      ->getMock('Symfony\\Component\\HttpFoundation\\File\\MimeType\\MimeTypeGuesserInterface');
    $guesser
      ->expects($this
      ->once())
      ->method('guess')
      ->with($this
      ->equalTo($path))
      ->will($this
      ->returnValue($mimeType));
    return $guesser;
  }

}

Members