Skip to content

Commit 7f08307

Browse files
committed
tests: Add media tests
1 parent b394f5e commit 7f08307

File tree

1 file changed

+280
-0
lines changed

1 file changed

+280
-0
lines changed

laravel/tests/Unit/MediaTest.php

Lines changed: 280 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,280 @@
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

Comments
 (0)