mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-05-16 18:25:01 +00:00
Limitation API skelet with can upload tests
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
namespace Tests\App\Limitations;
|
||||
|
||||
use Tests\TestCase;
|
||||
use App\Users\Models\User;
|
||||
use Domain\Files\Models\File;
|
||||
use Domain\Settings\Models\Setting;
|
||||
|
||||
class DefaultLimitationTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_can_upload()
|
||||
{
|
||||
$user = User::factory()
|
||||
->create();
|
||||
|
||||
$this->assertEquals(true, $user->canUpload(9999999));
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_cant_upload_because_storage_limit_exceeded()
|
||||
{
|
||||
$user = User::factory()
|
||||
->create();
|
||||
|
||||
File::factory()
|
||||
->create([
|
||||
'user_id' => $user->id,
|
||||
'filesize' => 99999999,
|
||||
]);
|
||||
|
||||
$this->assertEquals(false, $user->canUpload(999999999));
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_can_upload_because_storage_limitation_is_turned_off_and_user_has_unlimited_limit()
|
||||
{
|
||||
$user = User::factory()
|
||||
->create();
|
||||
|
||||
// Turn off storage limitation
|
||||
Setting::updateOrCreate([
|
||||
'name' => 'storage_limitation',
|
||||
], [
|
||||
'value' => 0,
|
||||
]);
|
||||
|
||||
File::factory()
|
||||
->create([
|
||||
'user_id' => $user->id,
|
||||
'filesize' => 99999999,
|
||||
]);
|
||||
|
||||
$this->assertEquals(1, $user->limitations->max_storage_amount);
|
||||
$this->assertEquals(true, $user->canUpload(999999999));
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_cant_upload_because_storage_limitation_is_turned_on_and_user_exceeded_limit()
|
||||
{
|
||||
$user = User::factory()
|
||||
->create();
|
||||
|
||||
// Turn on storage limitation
|
||||
Setting::updateOrCreate([
|
||||
'name' => 'storage_limitation',
|
||||
], [
|
||||
'value' => 1,
|
||||
]);
|
||||
|
||||
File::factory()
|
||||
->create([
|
||||
'user_id' => $user->id,
|
||||
'filesize' => 99999999,
|
||||
]);
|
||||
|
||||
$this->assertEquals(1, $user->limitations->max_storage_amount);
|
||||
$this->assertEquals(false, $user->canUpload(999999999));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
namespace Tests\App\Limitations;
|
||||
|
||||
use Tests\TestCase;
|
||||
use App\Users\Models\User;
|
||||
use Domain\Files\Models\File;
|
||||
use Domain\Settings\Models\Setting;
|
||||
|
||||
class FixedBillingLimitationTest extends TestCase
|
||||
{
|
||||
public function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
Setting::updateOrCreate([
|
||||
'name' => 'subscription_type',
|
||||
], [
|
||||
'value' => 'fixed',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_can_upload()
|
||||
{
|
||||
$user = User::factory()
|
||||
->create();
|
||||
|
||||
$this->assertEquals(true, $user->canUpload(9999999));
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_cant_upload_because_storage_limit_exceeded()
|
||||
{
|
||||
$user = User::factory()
|
||||
->create();
|
||||
|
||||
File::factory()
|
||||
->create([
|
||||
'user_id' => $user->id,
|
||||
'filesize' => 99999999,
|
||||
]);
|
||||
|
||||
$this->assertEquals(false, $user->canUpload(999999999));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
namespace Tests\App\Limitations;
|
||||
|
||||
use Tests\TestCase;
|
||||
use Domain\Settings\Models\Setting;
|
||||
|
||||
class LimitationTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_get_metered_driver()
|
||||
{
|
||||
Setting::updateOrCreate([
|
||||
'name' => 'subscription_type',
|
||||
], [
|
||||
'value' => 'metered',
|
||||
]);
|
||||
|
||||
$this->assertEquals('metered', get_limitation_driver());
|
||||
}
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_get_fixed_driver()
|
||||
{
|
||||
Setting::updateOrCreate([
|
||||
'name' => 'subscription_type',
|
||||
], [
|
||||
'value' => 'fixed',
|
||||
]);
|
||||
|
||||
$this->assertEquals('fixed', get_limitation_driver());
|
||||
}
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_get_default_driver()
|
||||
{
|
||||
$subscriptionType = Setting::where('name', 'subscription_type')
|
||||
->first();
|
||||
|
||||
$subscriptionType?->delete();
|
||||
|
||||
$this->assertEquals('default', get_limitation_driver());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
namespace Tests\App\Limitations;
|
||||
|
||||
use Tests\TestCase;
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class MeteredBillingLimitationTest extends TestCase
|
||||
{
|
||||
public function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
|
||||
DB::table('settings')->insert([
|
||||
'name' => 'subscription_type',
|
||||
'value' => 'metered',
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_can_upload()
|
||||
{
|
||||
$user = User::factory()
|
||||
->hasFailedpayments(2)
|
||||
->create();
|
||||
|
||||
$this->assertEquals(true, $user->canUpload());
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_cant_upload_because_user_has_3_failed_payments()
|
||||
{
|
||||
$user = User::factory()
|
||||
->hasFailedpayments(3)
|
||||
->create();
|
||||
|
||||
$this->assertEquals(false, $user->canUpload());
|
||||
}
|
||||
}
|
||||
@@ -269,7 +269,7 @@ class AdminTest extends TestCase
|
||||
});
|
||||
|
||||
// Create shares
|
||||
Share::factory(Share::class)
|
||||
Share::factory()
|
||||
->count(2)
|
||||
->create(['user_id' => $user->id]);
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@ use Tests\TestCase;
|
||||
use App\Users\Models\User;
|
||||
use Laravel\Sanctum\Sanctum;
|
||||
use Domain\Files\Models\File;
|
||||
use Domain\Settings\Models\Setting;
|
||||
|
||||
class DashboardTest extends TestCase
|
||||
{
|
||||
@@ -21,17 +20,12 @@ class DashboardTest extends TestCase
|
||||
->count(2)
|
||||
->create(['filesize' => 1000000]);
|
||||
|
||||
Setting::forceCreate([
|
||||
'name' => 'license',
|
||||
'value' => 'Regular',
|
||||
]);
|
||||
|
||||
$this
|
||||
->actingAs($user)
|
||||
->getJson('/api/admin/dashboard')
|
||||
->assertStatus(200)
|
||||
->assertExactJson([
|
||||
'license' => 'Regular',
|
||||
'license' => 'extended',
|
||||
'total_premium_users' => 0,
|
||||
'app_version' => config('vuefilemanager.version'),
|
||||
'total_users' => 1,
|
||||
|
||||
@@ -296,14 +296,14 @@ class BrowseTest extends TestCase
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
Share::factory(Share::class)
|
||||
Share::factory()
|
||||
->create([
|
||||
'type' => 'folder',
|
||||
'item_id' => $folder->id,
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
Share::factory(Share::class)
|
||||
Share::factory()
|
||||
->create([
|
||||
'type' => 'file',
|
||||
'item_id' => $file->id,
|
||||
|
||||
@@ -103,11 +103,6 @@ class FileTest extends TestCase
|
||||
*/
|
||||
public function user_with_full_storage_capacity_try_to_upload_new_file()
|
||||
{
|
||||
Setting::create([
|
||||
'name' => 'storage_limitation',
|
||||
'value' => 1,
|
||||
]);
|
||||
|
||||
$file = UploadedFile::fake()
|
||||
->image('fake-file.jpeg', 1000);
|
||||
|
||||
|
||||
@@ -28,11 +28,6 @@ class HomepageTest extends TestCase
|
||||
'value' => 'setup-done',
|
||||
]);
|
||||
|
||||
Setting::create([
|
||||
'name' => 'license',
|
||||
'value' => 'Extended',
|
||||
]);
|
||||
|
||||
$this->get('/')
|
||||
->assertStatus(200)
|
||||
->assertSee('setup-done')
|
||||
@@ -64,7 +59,7 @@ class HomepageTest extends TestCase
|
||||
'name' => 'Folder Title',
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $folder->id,
|
||||
'user_id' => $user->id,
|
||||
@@ -125,7 +120,7 @@ class HomepageTest extends TestCase
|
||||
'type' => 'image',
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $file->id,
|
||||
'user_id' => $user->id,
|
||||
|
||||
@@ -3,7 +3,6 @@ namespace Tests\Domain\Languages;
|
||||
|
||||
use Tests\TestCase;
|
||||
use App\Users\Models\User;
|
||||
use Domain\Settings\Models\Setting;
|
||||
use Domain\Localization\Models\Language;
|
||||
use Domain\Localization\Actions\SeedDefaultLanguageAction;
|
||||
|
||||
@@ -14,11 +13,6 @@ class AdminLanguageTranslatorTest extends TestCase
|
||||
*/
|
||||
public function it_create_language()
|
||||
{
|
||||
Setting::create([
|
||||
'name' => 'license',
|
||||
'value' => 'Extended',
|
||||
]);
|
||||
|
||||
$admin = User::factory()
|
||||
->create(['role' => 'admin']);
|
||||
|
||||
|
||||
@@ -16,18 +16,6 @@ class AppUpgradeTest extends TestCase
|
||||
$user = User::factory()
|
||||
->create(['role' => 'admin']);
|
||||
|
||||
DB::table('settings')
|
||||
->insert([
|
||||
[
|
||||
'name' => 'language',
|
||||
'value' => 'en',
|
||||
],
|
||||
[
|
||||
'name' => 'license',
|
||||
'value' => 'Extended',
|
||||
],
|
||||
]);
|
||||
|
||||
collect(['en', 'sk'])
|
||||
->map(function ($locale) {
|
||||
DB::table('languages')
|
||||
|
||||
@@ -154,6 +154,8 @@ class SetupWizardTest extends TestCase
|
||||
*/
|
||||
public function it_store_app_settings()
|
||||
{
|
||||
Setting::all()->each->delete();
|
||||
|
||||
$this->postJson('/api/setup/app-setup', [
|
||||
'title' => 'VueFileManager',
|
||||
'description' => 'The best file manager on the internet',
|
||||
@@ -207,6 +209,8 @@ class SetupWizardTest extends TestCase
|
||||
*/
|
||||
public function it_create_admin_account()
|
||||
{
|
||||
Setting::all()->each->delete();
|
||||
|
||||
$this->post('/admin-setup', [
|
||||
'email' => 'john@doe.com',
|
||||
'password' => 'VerySecretPassword',
|
||||
|
||||
@@ -34,7 +34,7 @@ class VisitorAccessToItemsTest extends TestCase
|
||||
'name' => $document->name,
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $file->id,
|
||||
'user_id' => $user->id,
|
||||
@@ -75,7 +75,7 @@ class VisitorAccessToItemsTest extends TestCase
|
||||
'name' => 'fake-thumbnail.jpg',
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'type' => 'file',
|
||||
'is_protected' => true,
|
||||
@@ -114,7 +114,7 @@ class VisitorAccessToItemsTest extends TestCase
|
||||
'mimetype' => 'jpg',
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $file->id,
|
||||
'user_id' => $user->id,
|
||||
@@ -166,7 +166,7 @@ class VisitorAccessToItemsTest extends TestCase
|
||||
'basename' => $fileName,
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $file->id,
|
||||
'user_id' => $user->id,
|
||||
|
||||
@@ -14,7 +14,7 @@ class VisitorBrowseTest extends TestCase
|
||||
*/
|
||||
public function it_get_share_record()
|
||||
{
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'is_protected' => 0,
|
||||
]);
|
||||
@@ -43,7 +43,7 @@ class VisitorBrowseTest extends TestCase
|
||||
*/
|
||||
public function it_get_share_page()
|
||||
{
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'type' => 'folder',
|
||||
'is_protected' => false,
|
||||
@@ -80,7 +80,7 @@ class VisitorBrowseTest extends TestCase
|
||||
$file = File::factory()
|
||||
->create();
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $file->id,
|
||||
'user_id' => $file->user_id,
|
||||
@@ -107,7 +107,7 @@ class VisitorBrowseTest extends TestCase
|
||||
$file = File::factory()
|
||||
->create();
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $file->id,
|
||||
'user_id' => $file->user_id,
|
||||
@@ -140,7 +140,7 @@ class VisitorBrowseTest extends TestCase
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $root->id,
|
||||
'user_id' => $user->id,
|
||||
@@ -219,7 +219,7 @@ class VisitorBrowseTest extends TestCase
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $folder_level_1->id,
|
||||
'user_id' => $user->id,
|
||||
@@ -322,7 +322,7 @@ class VisitorBrowseTest extends TestCase
|
||||
$folder = Folder::factory(Folder::class)
|
||||
->create();
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $folder->id,
|
||||
'user_id' => $folder->user_id,
|
||||
@@ -376,7 +376,7 @@ class VisitorBrowseTest extends TestCase
|
||||
$folder = Folder::factory(Folder::class)
|
||||
->create();
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $folder->id,
|
||||
'user_id' => $folder->user_id,
|
||||
@@ -427,7 +427,7 @@ class VisitorBrowseTest extends TestCase
|
||||
'name' => 'Document',
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $file->id,
|
||||
'user_id' => $file->user_id,
|
||||
|
||||
@@ -33,7 +33,7 @@ class VisitorManipulatingTest extends TestCase
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $folder->id,
|
||||
'user_id' => $user->id,
|
||||
@@ -102,7 +102,7 @@ class VisitorManipulatingTest extends TestCase
|
||||
'parent_id' => $root->id,
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $root->id,
|
||||
'user_id' => $user->id,
|
||||
@@ -165,7 +165,7 @@ class VisitorManipulatingTest extends TestCase
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $folder->id,
|
||||
'user_id' => $user->id,
|
||||
@@ -229,7 +229,7 @@ class VisitorManipulatingTest extends TestCase
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $folder->id,
|
||||
'user_id' => $user->id,
|
||||
@@ -305,7 +305,7 @@ class VisitorManipulatingTest extends TestCase
|
||||
'author' => 'user',
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $folder->id,
|
||||
'user_id' => $user->id,
|
||||
@@ -385,7 +385,7 @@ class VisitorManipulatingTest extends TestCase
|
||||
'parent_id' => $root->id,
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $root->id,
|
||||
'user_id' => $user->id,
|
||||
@@ -458,7 +458,7 @@ class VisitorManipulatingTest extends TestCase
|
||||
'parent_id' => $root->id,
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $root->id,
|
||||
'user_id' => $user->id,
|
||||
|
||||
@@ -102,7 +102,7 @@ class TrafficTest extends TestCase
|
||||
'author' => 'user',
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $folder->id,
|
||||
'user_id' => $this->user->id,
|
||||
@@ -172,7 +172,7 @@ class TrafficTest extends TestCase
|
||||
'name' => $document->name,
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $file->id,
|
||||
'user_id' => $this->user->id,
|
||||
|
||||
@@ -68,7 +68,7 @@ class SharedZippingTest extends TestCase
|
||||
]);
|
||||
});
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $sharedFolder->id,
|
||||
'user_id' => $user->id,
|
||||
@@ -131,7 +131,7 @@ class SharedZippingTest extends TestCase
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $folder->id,
|
||||
'user_id' => $user->id,
|
||||
@@ -206,7 +206,7 @@ class SharedZippingTest extends TestCase
|
||||
]);
|
||||
});
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $children->id,
|
||||
'user_id' => $user->id,
|
||||
@@ -251,7 +251,7 @@ class SharedZippingTest extends TestCase
|
||||
'user_id' => $user->id,
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'user_id' => $user->id,
|
||||
'type' => 'folder',
|
||||
|
||||
@@ -61,7 +61,7 @@ class GateTest extends TestCase
|
||||
'parent_id' => $root->id,
|
||||
]);
|
||||
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'item_id' => $root->id,
|
||||
'user_id' => $user->id,
|
||||
|
||||
@@ -84,7 +84,7 @@ class SchedulerTest extends TestCase
|
||||
*/
|
||||
public function it_delete_expired_shared_links()
|
||||
{
|
||||
$share = Share::factory(Share::class)
|
||||
$share = Share::factory()
|
||||
->create([
|
||||
'expire_in' => 24,
|
||||
'created_at' => now()->subDay(),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
namespace Tests;
|
||||
|
||||
use DB;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Support\Facades\Notification;
|
||||
@@ -25,6 +26,26 @@ abstract class TestCase extends BaseTestCase
|
||||
|
||||
resolve(CreateDiskDirectoriesAction::class)();
|
||||
|
||||
$this->storeDefaultSettings();
|
||||
|
||||
//$this->withoutExceptionHandling();
|
||||
}
|
||||
|
||||
public function storeDefaultSettings()
|
||||
{
|
||||
DB::table('settings')->insert([
|
||||
[
|
||||
'name' => 'storage_limitation',
|
||||
'value' => 1,
|
||||
],
|
||||
[
|
||||
'name' => 'license',
|
||||
'value' => 'extended',
|
||||
],
|
||||
[
|
||||
'name' => 'language',
|
||||
'value' => 'en',
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user