sonarrradarrplexorganizrnginxdashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboard
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							143 lines
						
					
					
						
							4.4 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							143 lines
						
					
					
						
							4.4 KiB
						
					
					
				| <?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; | |
| 
 | |
| use PHPUnit\Framework\TestCase; | |
| use Symfony\Component\HttpFoundation\File\File; | |
| 
 | |
| /** | |
|  * @requires extension fileinfo | |
|  */ | |
| class FileTest extends TestCase | |
| { | |
|     protected $file; | |
| 
 | |
|     public function testGetMimeTypeUsesMimeTypeGuessers() | |
|     { | |
|         $file = new File(__DIR__.'/Fixtures/test.gif'); | |
|         $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'); | |
|         $this->assertEquals('gif', $file->guessExtension()); | |
|     } | |
| 
 | |
|     public function testConstructWhenFileNotExists() | |
|     { | |
|         $this->expectException('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->assertFileExists($targetPath); | |
|         $this->assertFileNotExists($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->assertFileExists($targetPath); | |
|         $this->assertFileNotExists($path); | |
|         $this->assertEquals(realpath($targetPath), $movedFile->getRealPath()); | |
| 
 | |
|         @unlink($targetPath); | |
|     } | |
| 
 | |
|     public function getFilenameFixtures() | |
|     { | |
|         return [ | |
|             ['original.gif', 'original.gif'], | |
|             ['..\\..\\original.gif', 'original.gif'], | |
|             ['../../original.gif', 'original.gif'], | |
|             ['файлfile.gif', 'файлfile.gif'], | |
|             ['..\\..\\файлfile.gif', 'файлfile.gif'], | |
|             ['../../файл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->assertFileExists($targetPath); | |
|         $this->assertFileNotExists($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); | |
|     } | |
| }
 | |
| 
 |