added editor_upload_file_into_shared_folder test

This commit is contained in:
Peter Papp
2021-03-10 16:01:51 +01:00
parent 8de3e80c4f
commit cc526f8d95
3 changed files with 69 additions and 19 deletions
@@ -314,10 +314,12 @@ class EditItemsController extends Controller
}
// Check shared permission
if (!is_editor($shared)) abort(403);
if (is_visitor($shared)) {
abort(403);
}
// Check access to requested directory
Guardian::check_item_access($request->parent_id, $shared);
Guardian::check_item_access($request->folder_id, $shared);
// Return new uploaded file
$new_file = Editor::upload($request, $shared);
+11 -13
View File
@@ -463,8 +463,12 @@ class Editor
self::move_to_external_storage($disk_file_name, $thumbnail);
}
// Store file
$options = [
// Store user upload size
User::find($user_id)
->record_upload($file_size);
// Return new file
return UserFile::create([
'mimetype' => get_file_type_from_mimetype($file_mimetype),
'type' => get_file_type($file_mimetype),
'folder_id' => $request->folder_id,
@@ -475,14 +479,7 @@ class Editor
'thumbnail' => $thumbnail,
'filesize' => $file_size,
'user_id' => $user_id,
];
// Store user upload size
User::find($user_id)
->record_upload($file_size);
// Return new file
return UserFile::create($options);
]);
}
}
@@ -632,15 +629,16 @@ class Editor
{
// Get user storage percentage and get storage_limitation setting
$user_storage_used = user_storage_percentage($user_id, $file_size);
$storage_limitation = get_setting('storage_limitation');
// Check if user can upload
if ($storage_limitation && $user_storage_used >= 100) {
if (get_setting('storage_limitation') && $user_storage_used >= 100) {
// Delete file
Storage::disk('local')->delete('chunks/' . $temp_filename);
Storage::disk('local')
->delete("chunks/$temp_filename");
// Abort uploading
// TODO: test pre exceed storage limit
abort(423, 'You exceed your storage limit!');
}
}
+54 -4
View File
@@ -28,7 +28,7 @@ class ShareEditorTest extends TestCase
/**
* @test
*/
public function it_rename_shared_file()
public function editor_rename_shared_file()
{
$user = User::factory(User::class)
->create();
@@ -69,7 +69,7 @@ class ShareEditorTest extends TestCase
/**
* @test
*/
public function it_rename_shared_folder()
public function editor_rename_shared_folder()
{
$user = User::factory(User::class)
->create();
@@ -111,7 +111,7 @@ class ShareEditorTest extends TestCase
/**
* @test
*/
public function it_create_new_folder_in_shared_folder()
public function editor_create_new_folder_in_shared_folder()
{
$folder = Folder::factory(Folder::class)
->create();
@@ -144,7 +144,7 @@ class ShareEditorTest extends TestCase
/**
* @test
*/
public function it_delete_multiple_files_in_shared_folder()
public function editor_delete_multiple_files_in_shared_folder()
{
$folder = Folder::factory(Folder::class)
->create();
@@ -187,6 +187,56 @@ class ShareEditorTest extends TestCase
});
}
/**
* @test
*/
public function editor_upload_file_into_shared_folder()
{
Storage::fake('local');
$this->setup->create_directories();
$user = User::factory(User::class)
->create();
$folder = Folder::factory(Folder::class)
->create([
'user_id' => $user->id,
'user_scope' => 'master',
]);
$share = Share::factory(Share::class)
->create([
'item_id' => $folder->id,
'user_id' => $user->id,
'type' => 'folder',
'is_protected' => false,
'permission' => 'editor',
]);
$file = UploadedFile::fake()
->create('fake-file.pdf', 1000, 'application/pdf');
$this->postJson("/api/editor/upload/public/$share->token", [
'file' => $file,
'folder_id' => $folder->id,
'is_last' => true,
])->assertStatus(201);
$this->assertDatabaseHas('traffic', [
'user_id' => $user->id,
]);
$this->assertDatabaseHas('files', [
'user_scope' => 'editor',
]);
Storage::disk('local')
->assertExists(
"files/$user->id/fake-file.pdf"
);
}
/**
* @test
*/