FileTest.php 2.1 KB

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