1
+ <?php
2
+
3
+ namespace Tests \Unit ;
4
+
5
+ use Illuminate \Foundation \Testing \DatabaseMigrations ;
6
+ use Illuminate \Foundation \Testing \RefreshDatabase ;
7
+ use Illuminate \Foundation \Testing \WithFaker ;
8
+ use Tests \TestCase ;
9
+ use App \Folder ;
10
+
11
+ use Illuminate \Http \UploadedFile ;
12
+ use Illuminate \Support \Facades \Storage ;
13
+
14
+ class MediaTest extends TestCase
15
+ {
16
+ use DatabaseMigrations;
17
+
18
+ public function testIndex (){
19
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
20
+ $ folder = new Folder ();
21
+ $ folder ->name = 'test1 ' ;
22
+ $ folder ->save ();
23
+ $ folder2 = new Folder ();
24
+ $ folder2 ->name = 'test2 ' ;
25
+ $ folder2 ->folder_id = $ folder ->id ;
26
+ $ folder2 ->save ();
27
+ $ response = $ this ->actingAs ($ user , 'api ' )->get ('/api/media ' );
28
+ $ response ->assertStatus (200 )->assertJson ([
29
+ 'mediaFolders ' => [
30
+ [
31
+ 'name ' => 'test2 '
32
+ ]
33
+ ]
34
+ ]);
35
+ }
36
+
37
+ public function testIndex2 (){
38
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
39
+ $ folder = new Folder ();
40
+ $ folder ->name = 'test1 ' ;
41
+ $ folder ->save ();
42
+ $ folder2 = new Folder ();
43
+ $ folder2 ->name = 'test2 ' ;
44
+ $ folder2 ->folder_id = $ folder ->id ;
45
+ $ folder2 ->save ();
46
+ $ folder3 = new Folder ();
47
+ $ folder3 ->name = 'test3 ' ;
48
+ $ folder3 ->folder_id = $ folder2 ->id ;
49
+ $ folder3 ->save ();
50
+ $ response = $ this ->actingAs ($ user , 'api ' )->get ('/api/media?id= ' . $ folder2 ->id );
51
+ $ response ->assertStatus (200 )->assertJson ([
52
+ 'mediaFolders ' => [
53
+ [
54
+ 'name ' => 'test3 '
55
+ ]
56
+ ]
57
+ ]);
58
+ }
59
+
60
+ public function testFolderAdd (){
61
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
62
+ $ response = $ this ->actingAs ($ user , 'api ' )->get ('api/media/folder/store?thisFolder=45 ' );
63
+ $ this ->assertDatabaseHas ('folder ' ,['name ' => 'New Folder ' , 'folder_id ' => 45 ]);
64
+ }
65
+
66
+ public function testFolderUpdate (){
67
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
68
+ $ folder = new Folder ();
69
+ $ folder ->name = 'test1 ' ;
70
+ $ folder ->save ();
71
+ $ response = $ this ->actingAs ($ user , 'api ' )->post ('api/media/folder/update ' , [
72
+ 'id ' => $ folder ->id ,
73
+ 'name ' => 'test2 ' ,
74
+ 'thisFolder ' => $ folder ->id
75
+ ]);
76
+ $ this ->assertDatabaseHas ('folder ' ,['name ' => 'test2 ' , 'id ' => $ folder ->id ]);
77
+ }
78
+
79
+ public function testFolder (){
80
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
81
+ $ folder = new Folder ();
82
+ $ folder ->name = 'test1 ' ;
83
+ $ folder ->save ();
84
+ $ this ->actingAs ($ user , 'api ' )->json ('GET ' , 'api/media/folder?id= ' . $ folder ->id , [])
85
+ ->assertExactJson ([
86
+ 'id ' => "$ folder ->id " ,
87
+ 'name ' => 'test1 '
88
+ ]);
89
+ }
90
+
91
+ public function testFolderMoveUp (){
92
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
93
+ $ folder = new Folder ();
94
+ $ folder ->name = 'test1 ' ;
95
+ $ folder ->save ();
96
+ $ folder2 = new Folder ();
97
+ $ folder2 ->name = 'test2 ' ;
98
+ $ folder2 ->folder_id = $ folder ->id ;
99
+ $ folder2 ->save ();
100
+ $ folder3 = new Folder ();
101
+ $ folder3 ->name = 'test3 ' ;
102
+ $ folder3 ->folder_id = $ folder2 ->id ;
103
+ $ folder3 ->save ();
104
+ $ response = $ this ->actingAs ($ user , 'api ' )->post ('api/media/folder/move ' , [
105
+ 'id ' => $ folder3 ->id ,
106
+ 'folder ' => 'moveUp ' ,
107
+ 'thisFolder ' => $ folder3 ->id
108
+ ]);
109
+ $ this ->assertDatabaseHas ('folder ' ,['name ' => 'test3 ' , 'id ' => $ folder3 ->id , 'folder_id ' => $ folder ->id ]);
110
+ }
111
+
112
+ public function testFolderDelete (){
113
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
114
+ $ folder = new Folder ();
115
+ $ folder ->name = 'test1 ' ;
116
+ $ folder ->save ();
117
+ $ folder2 = new Folder ();
118
+ $ folder2 ->name = 'test2 ' ;
119
+ $ folder2 ->folder_id = $ folder ->id ;
120
+ $ folder2 ->save ();
121
+ $ this ->assertDatabaseHas ('folder ' ,[ 'id ' => $ folder2 ->id ]);
122
+ $ response = $ this ->actingAs ($ user , 'api ' )->post ('api/media/folder/delete ' , [
123
+ 'id ' => $ folder2 ->id ,
124
+ 'thisFolder ' => $ folder ->id
125
+ ]);
126
+ $ this ->assertDatabaseMissing ('folder ' ,['id ' => $ folder2 ->id ]);
127
+ }
128
+
129
+ public function testFileAdd (){
130
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
131
+ $ file = UploadedFile::fake ()->image ('file.jpg ' );
132
+ $ folder = new Folder ();
133
+ $ folder ->name = 'test1 ' ;
134
+ $ folder ->save ();
135
+ $ response = $ this ->actingAs ($ user , 'api ' )->post ('api/media/file/store ' , [
136
+ 'file ' => $ file ,
137
+ 'thisFolder ' => $ folder ->id
138
+ ]);
139
+ $ response ->assertStatus (200 );
140
+ $ media = $ folder ->getMedia ()->first ();
141
+ $ this ->assertSame ($ media ->name , 'file.jpg ' );
142
+ }
143
+
144
+ public function testFile (){
145
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
146
+ $ file = UploadedFile::fake ()->image ('file.jpg ' );
147
+ $ folder = new Folder ();
148
+ $ folder ->name = 'test1 ' ;
149
+ $ folder ->save ();
150
+ $ response = $ this ->actingAs ($ user , 'api ' )->post ('api/media/file/store ' , [
151
+ 'file ' => $ file ,
152
+ 'thisFolder ' => $ folder ->id
153
+ ]);
154
+ $ media = $ folder ->getMedia ()->first ();
155
+ $ response = $ this ->actingAs ($ user , 'api ' )->json ('GET ' , 'api/media/file?id= ' . $ media ['id ' ] . '&thisFolder= ' . $ folder ->id );
156
+ $ response ->assertExactJson ([
157
+ 'id ' => "$ media ->id " ,
158
+ 'name ' => $ media ['name ' ],
159
+ 'realName ' => $ media ['file_name ' ],
160
+ 'url ' => $ media ->getUrl (),
161
+ 'mimeType ' => $ media ['mime_type ' ],
162
+ 'size ' => $ media ['size ' ],
163
+ 'createdAt ' => substr ($ media ['created_at ' ], 0 , 10 ) . ' ' . substr ($ media ['created_at ' ], 11 , 19 ),
164
+ 'updatedAt ' => substr ($ media ['updated_at ' ], 0 , 10 ) . ' ' . substr ($ media ['updated_at ' ], 11 , 19 ),
165
+ ]);
166
+ }
167
+
168
+ public function testFileDelete (){
169
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
170
+ $ file = UploadedFile::fake ()->image ('file.jpg ' );
171
+ $ folder = new Folder ();
172
+ $ folder ->name = 'test1 ' ;
173
+ $ folder ->save ();
174
+ $ response = $ this ->actingAs ($ user , 'api ' )->post ('api/media/file/store ' , [
175
+ 'file ' => $ file ,
176
+ 'thisFolder ' => $ folder ->id
177
+ ]);
178
+ $ media = $ folder ->getMedia ()->first ();
179
+ $ this ->assertDatabaseHas ('media ' ,[ 'id ' => $ media ->id ]);
180
+ $ response = $ this ->actingAs ($ user , 'api ' )->post ('api/media/file/delete?id= ' . $ media ['id ' ] . '&thisFolder= ' . $ folder ->id );
181
+ $ this ->assertDatabaseMissing ('media ' ,['id ' => $ media ->id ]);
182
+ }
183
+
184
+ public function testFileUpdate (){
185
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
186
+ $ file = UploadedFile::fake ()->image ('file.jpg ' );
187
+ $ folder = new Folder ();
188
+ $ folder ->name = 'test1 ' ;
189
+ $ folder ->save ();
190
+ $ response = $ this ->actingAs ($ user , 'api ' )->post ('api/media/file/store ' , [
191
+ 'file ' => $ file ,
192
+ 'thisFolder ' => $ folder ->id
193
+ ]);
194
+ $ media = $ folder ->getMedia ()->first ();
195
+ $ this ->assertDatabaseHas ('media ' ,[ 'id ' => $ media ->id , 'name ' => 'file.jpg ' ]);
196
+ $ response = $ this ->actingAs ($ user , 'api ' )->post ('api/media/file/update ' , [
197
+ 'id ' => $ media ->id ,
198
+ 'thisFolder ' => $ folder ->id ,
199
+ 'name ' => 'newFileName.png '
200
+ ]);
201
+ $ this ->assertDatabaseHas ('media ' ,['id ' => $ media ->id , 'name ' => 'newFileName.png ' ]);
202
+ }
203
+
204
+ public function testFileMoveUp (){
205
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
206
+ $ file = UploadedFile::fake ()->image ('file.jpg ' );
207
+ $ folder = new Folder ();
208
+ $ folder ->name = 'test1 ' ;
209
+ $ folder ->save ();
210
+ $ folder2 = new Folder ();
211
+ $ folder2 ->name = 'test2 ' ;
212
+ $ folder2 ->folder_id = $ folder ->id ;
213
+ $ folder2 ->save ();
214
+ $ response = $ this ->actingAs ($ user , 'api ' )->post ('api/media/file/store ' , [
215
+ 'file ' => $ file ,
216
+ 'thisFolder ' => $ folder2 ->id
217
+ ]);
218
+ $ media = $ folder2 ->getMedia ()->first ();
219
+ $ this ->assertDatabaseHas ('media ' ,[ 'id ' => $ media ->id , 'model_id ' => $ folder2 ->id ]);
220
+ $ response = $ this ->actingAs ($ user , 'api ' )->post ('api/media/file/move ' , [
221
+ 'id ' => $ media ->id ,
222
+ 'thisFolder ' => $ folder2 ->id ,
223
+ 'folder ' => 'moveUp '
224
+ ]);
225
+ $ this ->assertDatabaseMissing ('media ' ,[ 'id ' => $ media ->id , 'model_id ' => $ folder2 ->id ]);
226
+ $ media = $ folder ->getMedia ()->first ();
227
+ $ this ->assertDatabaseHas ('media ' ,['id ' => $ media ->id , 'model_id ' => $ folder ->id ]);
228
+ }
229
+
230
+ public function testFileMove (){
231
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
232
+ $ file = UploadedFile::fake ()->image ('file.jpg ' );
233
+ $ folder = new Folder ();
234
+ $ folder ->name = 'test1 ' ;
235
+ $ folder ->save ();
236
+ $ folder2 = new Folder ();
237
+ $ folder2 ->name = 'test2 ' ;
238
+ $ folder2 ->folder_id = $ folder ->id ;
239
+ $ folder2 ->save ();
240
+ $ response = $ this ->actingAs ($ user , 'api ' )->post ('api/media/file/store ' , [
241
+ 'file ' => $ file ,
242
+ 'thisFolder ' => $ folder ->id
243
+ ]);
244
+ $ media = $ folder ->getMedia ()->first ();
245
+ $ this ->assertDatabaseHas ('media ' ,[ 'id ' => $ media ->id , 'model_id ' => $ folder ->id ]);
246
+ $ response = $ this ->actingAs ($ user , 'api ' )->post ('api/media/file/move ' , [
247
+ 'id ' => $ media ->id ,
248
+ 'thisFolder ' => $ folder ->id ,
249
+ 'folder ' => $ folder2 ->id
250
+ ]);
251
+ $ this ->assertDatabaseMissing ('media ' ,[ 'id ' => $ media ->id , 'model_id ' => $ folder ->id ]);
252
+ $ media = $ folder2 ->getMedia ()->first ();
253
+ $ this ->assertDatabaseHas ('media ' ,['id ' => $ media ->id , 'model_id ' => $ folder2 ->id ]);
254
+ }
255
+
256
+ public function testFileCropp (){
257
+ $ this ->assertSame (true , true ); //No idea how to test it
258
+ }
259
+
260
+ public function testFileCopy (){
261
+ $ user = factory ('App\User ' )->states ('admin ' )->create ();
262
+ $ file = UploadedFile::fake ()->image ('file.jpg ' );
263
+ $ folder = new Folder ();
264
+ $ folder ->name = 'test1 ' ;
265
+ $ folder ->save ();
266
+ $ response = $ this ->actingAs ($ user , 'api ' )->post ('api/media/file/store ' , [
267
+ 'file ' => $ file ,
268
+ 'thisFolder ' => $ folder ->id
269
+ ]);
270
+ $ media = $ folder ->getMedia ()->first ();
271
+ $ this ->assertDatabaseHas ('media ' ,[ 'id ' => $ media ->id , 'model_id ' => $ folder ->id ]);
272
+ $ response = $ this ->actingAs ($ user , 'api ' )->get ('api/media/file/copy?id= ' . $ media ->id . '&thisFolder= ' . $ folder ->id );
273
+ $ folder = Folder::first ();
274
+ $ media = $ folder ->getMedia ();
275
+ $ this ->assertSame ( 2 , count ($ media ));
276
+ $ this ->assertSame ( $ media [0 ]->name , 'file.jpg ' );
277
+ $ this ->assertSame ( $ media [1 ]->name , 'file.jpg ' );
278
+ }
279
+
280
+ }
0 commit comments