@@ -32,27 +32,12 @@ public function testFileMustBeAnArrayOrUploadedFile()
32
32
public function testShouldConvertsUploadedFiles ()
33
33
{
34
34
$ tmpFile = $ this ->createTempFile ();
35
- $ file = new UploadedFile ( $ tmpFile , basename ($ tmpFile), ' text/plain ' );
35
+ $ name = basename ($ tmpFile );
36
36
37
- $ bag = new FileBag (['file ' => [
38
- 'name ' => basename ($ tmpFile ),
39
- 'type ' => 'text/plain ' ,
40
- 'tmp_name ' => $ tmpFile ,
41
- 'error ' => 0 ,
42
- 'size ' => null ,
43
- ]]);
44
-
45
- $ this ->assertEquals ($ file , $ bag ->get ('file ' ));
46
- }
47
-
48
- public function testShouldConvertsUploadedFilesPhp81 ()
49
- {
50
- $ tmpFile = $ this ->createTempFile ();
51
- $ file = new UploadedFile ($ tmpFile , basename ($ tmpFile ), 'text/plain ' );
37
+ $ file = new UploadedFile ($ tmpFile , $ name , 'text/plain ' );
52
38
53
39
$ bag = new FileBag (['file ' => [
54
- 'name ' => basename ($ tmpFile ),
55
- 'full_path ' => basename ($ tmpFile ),
40
+ 'name ' => $ name ,
56
41
'type ' => 'text/plain ' ,
57
42
'tmp_name ' => $ tmpFile ,
58
43
'error ' => 0 ,
@@ -104,12 +89,13 @@ public function testShouldNotRemoveEmptyUploadedFilesForAssociativeArray()
104
89
public function testShouldConvertUploadedFilesWithPhpBug ()
105
90
{
106
91
$ tmpFile = $ this ->createTempFile ();
107
- $ file = new UploadedFile ($ tmpFile , basename ($ tmpFile ), 'text/plain ' );
92
+ $ name = basename ($ tmpFile );
93
+ $ file = new UploadedFile ($ tmpFile , $ name , 'text/plain ' );
108
94
109
95
$ bag = new FileBag ([
110
96
'child ' => [
111
97
'name ' => [
112
- 'file ' => basename ( $ tmpFile ) ,
98
+ 'file ' => $ name ,
113
99
],
114
100
'type ' => [
115
101
'file ' => 'text/plain ' ,
@@ -133,12 +119,13 @@ public function testShouldConvertUploadedFilesWithPhpBug()
133
119
public function testShouldConvertNestedUploadedFilesWithPhpBug ()
134
120
{
135
121
$ tmpFile = $ this ->createTempFile ();
136
- $ file = new UploadedFile ($ tmpFile , basename ($ tmpFile ), 'text/plain ' );
122
+ $ name = basename ($ tmpFile );
123
+ $ file = new UploadedFile ($ tmpFile , $ name , 'text/plain ' );
137
124
138
125
$ bag = new FileBag ([
139
126
'child ' => [
140
127
'name ' => [
141
- 'sub ' => ['file ' => basename ( $ tmpFile ) ],
128
+ 'sub ' => ['file ' => $ name ],
142
129
],
143
130
'type ' => [
144
131
'sub ' => ['file ' => 'text/plain ' ],
@@ -162,13 +149,56 @@ public function testShouldConvertNestedUploadedFilesWithPhpBug()
162
149
public function testShouldNotConvertNestedUploadedFiles ()
163
150
{
164
151
$ tmpFile = $ this ->createTempFile ();
165
- $ file = new UploadedFile ($ tmpFile , basename ($ tmpFile ), 'text/plain ' );
152
+ $ name = basename ($ tmpFile );
153
+ $ file = new UploadedFile ($ tmpFile , $ name , 'text/plain ' );
166
154
$ bag = new FileBag (['image ' => ['file ' => $ file ]]);
167
155
168
156
$ files = $ bag ->all ();
169
157
$ this ->assertEquals ($ file , $ files ['image ' ]['file ' ]);
170
158
}
171
159
160
+ public function testWebkitDirectoryUpload ()
161
+ {
162
+ $ file1 = __DIR__ .'/File/Fixtures/webkitdirectory/test.txt ' ;
163
+ $ file2 = __DIR__ .'/File/Fixtures/webkitdirectory/nested/test.txt ' ;
164
+
165
+ $ bag = new FileBag ([
166
+ 'child ' => [
167
+ 'name ' => [
168
+ 'test.txt ' ,
169
+ 'test.txt ' ,
170
+ ],
171
+ 'full_path ' => [
172
+ 'webkitdirectory/test.txt ' ,
173
+ 'webkitdirectory/nested/test.txt ' ,
174
+ ],
175
+ 'type ' => [
176
+ 'text/plain ' ,
177
+ 'text/plain ' ,
178
+ ],
179
+ 'tmp_name ' => [
180
+ $ file1 ,
181
+ $ file2 ,
182
+ ],
183
+ 'error ' => [
184
+ 0 , 0 ,
185
+ ],
186
+ 'size ' => [
187
+ null , null ,
188
+ ],
189
+ ],
190
+ ]);
191
+
192
+ /** @var UploadedFile[] */
193
+ $ files = $ bag ->get ('child ' );
194
+
195
+ $ this ->assertEquals ('test.txt ' , $ files [0 ]->getClientOriginalName ());
196
+ $ this ->assertEquals ('test.txt ' , $ files [1 ]->getClientOriginalName ());
197
+
198
+ $ this ->assertEquals ('webkitdirectory/test.txt ' , $ files [0 ]->getClientOriginalPath ());
199
+ $ this ->assertEquals ('webkitdirectory/nested/test.txt ' , $ files [1 ]->getClientOriginalPath ());
200
+ }
201
+
172
202
protected function createTempFile ()
173
203
{
174
204
$ tempFile = tempnam (sys_get_temp_dir ().'/form_test ' , 'FormTest ' );
0 commit comments