added it_get_public_thumbnail test

This commit is contained in:
Peter Papp
2021-03-10 09:18:14 +01:00
parent aecdf56304
commit 1045423692
3 changed files with 60 additions and 5 deletions
+13 -5
View File
@@ -147,7 +147,7 @@ class FileAccessController extends Controller
$shared = get_shared($token); $shared = get_shared($token);
// Abort if shared is protected // Abort if shared is protected
if ((int) $shared->is_protected) { if ((int)$shared->is_protected) {
abort(403, "Sorry, you don't have permission"); abort(403, "Sorry, you don't have permission");
} }
@@ -160,9 +160,10 @@ class FileAccessController extends Controller
$this->check_file_access($shared, $file); $this->check_file_access($shared, $file);
// Store user download size // Store user download size
User::find($shared->user_id) $shared
->user
->record_download( ->record_download(
(int) $file->getRawOriginal('filesize') (int)$file->getRawOriginal('filesize')
); );
return $this->download_file($file, $shared->user_id); return $this->download_file($file, $shared->user_id);
@@ -211,14 +212,21 @@ class FileAccessController extends Controller
} }
// Get file record // Get file record
$file = File::where('user_id', $shared->user_id) $file = UserFile::where('user_id', $shared->user_id)
->where('thumbnail', $filename) ->where('thumbnail', $filename)
->firstOrFail(); ->firstOrFail();
// Check file access // Check file access
$this->check_file_access($shared, $file); $this->check_file_access($shared, $file);
return $this->thumbnail_file($file); // Store user download size
$shared
->user
->record_download(
(int)$file->getRawOriginal('filesize')
);
return $this->thumbnail_file($file, $shared->user_id);
} }
/** /**
+5
View File
@@ -29,6 +29,11 @@ class Share extends Model
return url('/shared', ['token' => $this->attributes['token']]); return url('/shared', ['token' => $this->attributes['token']]);
} }
public function user()
{
return $this->hasOne(User::class, 'id', 'user_id');
}
/** /**
* Model events * Model events
*/ */
+42
View File
@@ -75,6 +75,48 @@ class ShareContentAccessTest extends TestCase
]); ]);
} }
/**
* @test
*/
public function it_get_public_thumbnail()
{
Storage::fake('local');
$this->setup->create_directories();
$user = User::factory(User::class)
->create();
$thumbnail = UploadedFile::fake()
->image(Str::random() . '-fake-thumbnail.jpg');
Storage::putFileAs("files/$user->id", $thumbnail, $thumbnail->name);
$file = File::factory(File::class)
->create([
'user_id' => $user->id,
'thumbnail' => $thumbnail->name,
'name' => 'fake-thumbnail.jpg',
]);
$share = Share::factory(Share::class)
->create([
'item_id' => $file->id,
'user_id' => $user->id,
'type' => 'file',
'is_protected' => false,
]);
// Get shared file
$this->get("/thumbnail/$thumbnail->name/public/$share->token")
->assertStatus(200);
$this->assertDatabaseMissing('traffic', [
'user_id' => $user->id,
'download' => null,
]);
}
/** /**
* @test * @test
*/ */