FileTest.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace Symfony\Tests\Components\File;
  3. require_once __DIR__ . '/../../../../bootstrap.php';
  4. use Symfony\Components\File\File;
  5. use Symfony\Components\File\MimeType\MimeTypeGuesser;
  6. class FileTest extends \PHPUnit_Framework_TestCase
  7. {
  8. protected $file;
  9. public function setUp()
  10. {
  11. $this->file = new File(__DIR__.'/Fixtures/test.gif');
  12. }
  13. public function testGetPathReturnsAbsolutePath()
  14. {
  15. $this->assertEquals(__DIR__.'/Fixtures/test.gif', $this->file->getPath());
  16. }
  17. public function testGetNameReturnsNameWithExtension()
  18. {
  19. $this->assertEquals('test.gif', $this->file->getName());
  20. }
  21. public function testGetExtensionReturnsExtensionWithDot()
  22. {
  23. $this->assertEquals('.gif', $this->file->getExtension());
  24. }
  25. public function testGetDirectoryReturnsDirectoryName()
  26. {
  27. $this->assertEquals(__DIR__.'/Fixtures', $this->file->getDirectory());
  28. }
  29. public function testGetMimeTypeUsesMimeTypeGuessers()
  30. {
  31. $guesser = $this->createMockGuesser($this->file->getPath(), 'image/gif');
  32. MimeTypeGuesser::getInstance()->register($guesser);
  33. $this->assertEquals('image/gif', $this->file->getMimeType());
  34. }
  35. public function testGetDefaultExtensionIsBasedOnMimeType()
  36. {
  37. $file = new File(__DIR__.'/Fixtures/test');
  38. $guesser = $this->createMockGuesser($file->getPath(), 'image/gif');
  39. MimeTypeGuesser::getInstance()->register($guesser);
  40. $this->assertEquals('.gif', $file->getDefaultExtension());
  41. }
  42. public function testSizeReturnsFileSize()
  43. {
  44. $this->assertEquals(filesize($this->file->getPath()), $this->file->size());
  45. }
  46. protected function createMockGuesser($path, $mimeType)
  47. {
  48. $guesser = $this->getMock('Symfony\Components\File\MimeType\MimeTypeGuesserInterface');
  49. $guesser->expects($this->once())
  50. ->method('guess')
  51. ->with($this->equalTo($path))
  52. ->will($this->returnValue($mimeType));
  53. return $guesser;
  54. }
  55. }