PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.3.1
GiveWP – Donation Plugin and Fundraising Platform v3.3.1
4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / vendor / vendor-prefixed / symfony / http-foundation / Tests / File / FileTest.php
give / vendor / vendor-prefixed / symfony / http-foundation / Tests / File Last commit date
Fixtures 2 years ago MimeType 2 years ago FakeFile.php 2 years ago FileTest.php 2 years ago UploadedFileTest.php 2 years ago
FileTest.php
184 lines
1 <?php
2
3 /*
4 * This file is part of the Symfony package.
5 *
6 * (c) Fabien Potencier <fabien@symfony.com>
7 *
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
10 *
11 * Modified by impress-org on 23-January-2024 using Strauss.
12 * @see https://github.com/BrianHenryIE/strauss
13 */
14
15 namespace Give\Vendors\Symfony\Component\HttpFoundation\Tests\File;
16
17 use PHPUnit\Framework\TestCase;
18 use Give\Vendors\Symfony\Component\HttpFoundation\File\File;
19 use Give\Vendors\Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser;
20
21 class FileTest extends TestCase
22 {
23 protected $file;
24
25 public function testGetMimeTypeUsesMimeTypeGuessers()
26 {
27 $file = new File(__DIR__.'/Fixtures/test.gif');
28 $guesser = $this->createMockGuesser($file->getPathname(), 'image/gif');
29
30 MimeTypeGuesser::getInstance()->register($guesser);
31
32 $this->assertEquals('image/gif', $file->getMimeType());
33 }
34
35 public function testGuessExtensionWithoutGuesser()
36 {
37 $file = new File(__DIR__.'/Fixtures/directory/.empty');
38
39 $this->assertNull($file->guessExtension());
40 }
41
42 public function testGuessExtensionIsBasedOnMimeType()
43 {
44 $file = new File(__DIR__.'/Fixtures/test');
45 $guesser = $this->createMockGuesser($file->getPathname(), 'image/gif');
46
47 MimeTypeGuesser::getInstance()->register($guesser);
48
49 $this->assertEquals('gif', $file->guessExtension());
50 }
51
52 /**
53 * @requires extension fileinfo
54 */
55 public function testGuessExtensionWithReset()
56 {
57 $file = new File(__DIR__.'/Fixtures/other-file.example');
58 $guesser = $this->createMockGuesser($file->getPathname(), 'image/gif');
59 MimeTypeGuesser::getInstance()->register($guesser);
60
61 $this->assertEquals('gif', $file->guessExtension());
62
63 MimeTypeGuesser::reset();
64
65 $this->assertNull($file->guessExtension());
66 }
67
68 public function testConstructWhenFileNotExists()
69 {
70 $this->expectException('Give\Vendors\Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException');
71
72 new File(__DIR__.'/Fixtures/not_here');
73 }
74
75 public function testMove()
76 {
77 $path = __DIR__.'/Fixtures/test.copy.gif';
78 $targetDir = __DIR__.'/Fixtures/directory';
79 $targetPath = $targetDir.'/test.copy.gif';
80 @unlink($path);
81 @unlink($targetPath);
82 copy(__DIR__.'/Fixtures/test.gif', $path);
83
84 $file = new File($path);
85 $movedFile = $file->move($targetDir);
86 $this->assertInstanceOf('Give\Vendors\Symfony\Component\HttpFoundation\File\File', $movedFile);
87
88 $this->assertFileExists($targetPath);
89 $this->assertFileDoesNotExist($path);
90 $this->assertEquals(realpath($targetPath), $movedFile->getRealPath());
91
92 @unlink($targetPath);
93 }
94
95 public function testMoveWithNewName()
96 {
97 $path = __DIR__.'/Fixtures/test.copy.gif';
98 $targetDir = __DIR__.'/Fixtures/directory';
99 $targetPath = $targetDir.'/test.newname.gif';
100 @unlink($path);
101 @unlink($targetPath);
102 copy(__DIR__.'/Fixtures/test.gif', $path);
103
104 $file = new File($path);
105 $movedFile = $file->move($targetDir, 'test.newname.gif');
106
107 $this->assertFileExists($targetPath);
108 $this->assertFileDoesNotExist($path);
109 $this->assertEquals(realpath($targetPath), $movedFile->getRealPath());
110
111 @unlink($targetPath);
112 }
113
114 public function getFilenameFixtures()
115 {
116 return [
117 ['original.gif', 'original.gif'],
118 ['..\\..\\original.gif', 'original.gif'],
119 ['../../original.gif', 'original.gif'],
120 ['файлfile.gif', 'файлfile.gif'],
121 ['..\\..\\файлfile.gif', 'файлfile.gif'],
122 ['../../файлfile.gif', 'файлfile.gif'],
123 ];
124 }
125
126 /**
127 * @dataProvider getFilenameFixtures
128 */
129 public function testMoveWithNonLatinName($filename, $sanitizedFilename)
130 {
131 $path = __DIR__.'/Fixtures/'.$sanitizedFilename;
132 $targetDir = __DIR__.'/Fixtures/directory/';
133 $targetPath = $targetDir.$sanitizedFilename;
134 @unlink($path);
135 @unlink($targetPath);
136 copy(__DIR__.'/Fixtures/test.gif', $path);
137
138 $file = new File($path);
139 $movedFile = $file->move($targetDir, $filename);
140 $this->assertInstanceOf('Give\Vendors\Symfony\Component\HttpFoundation\File\File', $movedFile);
141
142 $this->assertFileExists($targetPath);
143 $this->assertFileDoesNotExist($path);
144 $this->assertEquals(realpath($targetPath), $movedFile->getRealPath());
145
146 @unlink($targetPath);
147 }
148
149 public function testMoveToAnUnexistentDirectory()
150 {
151 $sourcePath = __DIR__.'/Fixtures/test.copy.gif';
152 $targetDir = __DIR__.'/Fixtures/directory/sub';
153 $targetPath = $targetDir.'/test.copy.gif';
154 @unlink($sourcePath);
155 @unlink($targetPath);
156 @rmdir($targetDir);
157 copy(__DIR__.'/Fixtures/test.gif', $sourcePath);
158
159 $file = new File($sourcePath);
160 $movedFile = $file->move($targetDir);
161
162 $this->assertFileExists($targetPath);
163 $this->assertFileDoesNotExist($sourcePath);
164 $this->assertEquals(realpath($targetPath), $movedFile->getRealPath());
165
166 @unlink($sourcePath);
167 @unlink($targetPath);
168 @rmdir($targetDir);
169 }
170
171 protected function createMockGuesser($path, $mimeType)
172 {
173 $guesser = $this->getMockBuilder('Give\Vendors\Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface')->getMock();
174 $guesser
175 ->expects($this->once())
176 ->method('guess')
177 ->with($this->equalTo($path))
178 ->willReturn($mimeType)
179 ;
180
181 return $guesser;
182 }
183 }
184