mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-05 18:23:48 +00:00
added test for getRecordsCount, format code
This commit is contained in:
@@ -905,7 +905,7 @@ return [
|
||||
'total_x_of_x_members' => 'Total ${use} of ${total} Members',
|
||||
'go_back_from_x' => 'Go back from {location}',
|
||||
'new_team_invitation' => 'New Team Invitation',
|
||||
'x_invite_to_join_team' => ":name invite you to join into Team Folder.",
|
||||
'x_invite_to_join_team' => ':name invite you to join into Team Folder.',
|
||||
'team_invitation_notify_title' => 'You are invited to collaboration with team folder in :app',
|
||||
'team_invitation_notify_desc' => 'You are invited to collaboration with team folder',
|
||||
'team_invitation_notify_desc_without_account' => 'You are invited to collaboration with team folder. But at first, you have to create an account to proceed into team folder.',
|
||||
@@ -915,12 +915,12 @@ return [
|
||||
'file_request_filled_desc' => "Your file request for ':name' folder was filled successfully.",
|
||||
'show_files' => 'Show Files',
|
||||
'file_request_filled_mail' => "Your file request was fulfilled in your ':name' folder",
|
||||
'file_request_filled_mail_note' => "We are emailing you because your file request was fulfilled. Please click on the link below to show uploaded files.",
|
||||
'file_request_filled_mail_note' => 'We are emailing you because your file request was fulfilled. Please click on the link below to show uploaded files.',
|
||||
'thanks_salutation' => 'Thank you for using our application!',
|
||||
'upload_your_files' => 'Upload your Files',
|
||||
'file_request_optional_message' => "PS: :name left you a message: :notes",
|
||||
'file_request_optional_message' => 'PS: :name left you a message: :notes',
|
||||
'file_request_notify_title' => ':name Request You for File Upload',
|
||||
'file_request_notify_description' => "We are emailing you because :name requested files from you. Please click on the link below and upload your files for :name.",
|
||||
'file_request_notify_description' => 'We are emailing you because :name requested files from you. Please click on the link below and upload your files for :name.',
|
||||
'user_action_not_allowed' => 'This user action is not allowed.',
|
||||
'pcs.' => 'Pcs.',
|
||||
'mem.' => 'Mem.',
|
||||
|
||||
@@ -62,6 +62,6 @@ return [
|
||||
],
|
||||
|
||||
'paginate' => [
|
||||
'perPage' => 15
|
||||
]
|
||||
'perPage' => 15,
|
||||
],
|
||||
];
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<?php
|
||||
namespace App\Providers;
|
||||
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Schema;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
|
||||
class AppServiceProvider extends ServiceProvider
|
||||
{
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
namespace App\Socialite\Controllers;
|
||||
|
||||
use App\Users\Models\User;
|
||||
@@ -8,15 +7,16 @@ use App\Http\Controllers\Controller;
|
||||
use Laravel\Socialite\Facades\Socialite;
|
||||
use App\Users\Actions\CreateNewUserAction;
|
||||
use Illuminate\Contracts\Auth\StatefulGuard;
|
||||
use VueFileManager\Subscription\Domain\Plans\Exceptions\MeteredBillingPlanDoesntExist;
|
||||
use VueFileManager\Subscription\Domain\Plans\Models\Plan;
|
||||
use VueFileManager\Subscription\Domain\Plans\Exceptions\MeteredBillingPlanDoesntExist;
|
||||
|
||||
class SocialiteCallbackController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
protected StatefulGuard $guard,
|
||||
protected StatefulGuard $guard,
|
||||
public CreateNewUserAction $createNewUser,
|
||||
) {}
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws MeteredBillingPlanDoesntExist
|
||||
@@ -60,7 +60,7 @@ class SocialiteCallbackController extends Controller
|
||||
}
|
||||
|
||||
// Check if account registration is enabled
|
||||
if (!$isAllowedRegistration) {
|
||||
if (! $isAllowedRegistration) {
|
||||
return response([
|
||||
'type' => 'error',
|
||||
'message' => 'User registration is not allowed',
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace App\Users\Actions;
|
||||
|
||||
use App\Users\Rules\PasswordValidationRules;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use App\Users\Rules\PasswordValidationRules;
|
||||
use Laravel\Fortify\Contracts\UpdatesUserPasswords;
|
||||
|
||||
class UpdateUserPassword implements UpdatesUserPasswords
|
||||
@@ -25,7 +24,7 @@ class UpdateUserPassword implements UpdatesUserPasswords
|
||||
'current_password' => ['required', 'string'],
|
||||
'password' => $this->passwordRules(),
|
||||
])->after(function ($validator) use ($user, $input) {
|
||||
if (!isset($input['current_password']) || !Hash::check($input['current_password'], $user->password)) {
|
||||
if (! isset($input['current_password']) || ! Hash::check($input['current_password'], $user->password)) {
|
||||
$validator->errors()->add('current_password', __t('password_doesnt_match'));
|
||||
}
|
||||
})->validateWithBag('updatePassword');
|
||||
|
||||
@@ -5,7 +5,9 @@ use Str;
|
||||
use Domain\Files\Models\File;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Domain\Files\Resources\FilesCollection;
|
||||
use Domain\Folders\Resources\FolderResource;
|
||||
use Domain\Folders\Resources\FolderCollection;
|
||||
|
||||
class BrowseFolderController
|
||||
{
|
||||
@@ -18,16 +20,16 @@ class BrowseFolderController
|
||||
'parent_id' => $root_id,
|
||||
'team_folder' => false,
|
||||
'user_id' => Auth::id(),
|
||||
'deleted_at' => null
|
||||
'deleted_at' => null,
|
||||
];
|
||||
|
||||
$fileQuery = [
|
||||
'parent_id' => $root_id,
|
||||
'user_id' => Auth::id(),
|
||||
'deleted_at' => null
|
||||
'deleted_at' => null,
|
||||
];
|
||||
|
||||
list($foldersTake, $foldersSkip, $filesTake, $filesSkip, $totalItemsCount) = getRecordsCount($folderQuery, $fileQuery);
|
||||
list($foldersTake, $foldersSkip, $filesTake, $filesSkip, $totalItemsCount) = getRecordsCount($folderQuery, $fileQuery, request()->input('page'));
|
||||
|
||||
$folders = Folder::with(['parent:id,name', 'shared:token,id,item_id,permission,is_protected,expire_in'])
|
||||
->where($folderQuery)
|
||||
@@ -42,16 +44,21 @@ class BrowseFolderController
|
||||
->skip($filesSkip)
|
||||
->take($filesTake)
|
||||
->get();
|
||||
|
||||
$entries = collect([
|
||||
$folders ? json_decode((new FolderCollection($folders))->toJson(), true) : null,
|
||||
$files ? json_decode((new FilesCollection($files))->toJson(), true) : null,
|
||||
])->collapse();
|
||||
|
||||
list($data, $paginate, $links) = groupPaginate($folders, $files, $totalItemsCount);
|
||||
list($paginate, $links) = generatePaginationCounts($totalItemsCount);
|
||||
|
||||
return [
|
||||
'data' => $data,
|
||||
'data' => $entries,
|
||||
'links' => $links,
|
||||
'meta' => [
|
||||
'paginate' => $paginate,
|
||||
'root' => $root_id ? new FolderResource(Folder::findOrFail($root_id)) : null,
|
||||
]
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
namespace Domain\Browsing\Controllers;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class BrowseLatestFilesController
|
||||
{
|
||||
@@ -23,7 +23,7 @@ class BrowseLatestFilesController
|
||||
'meta' => [
|
||||
'paginate' => $paginate,
|
||||
'root' => null,
|
||||
]
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?php
|
||||
namespace Domain\Browsing\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Domain\Files\Models\File;
|
||||
use Domain\Sharing\Models\Share;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class BrowseSharedItemsController
|
||||
{
|
||||
@@ -44,7 +44,7 @@ class BrowseSharedItemsController
|
||||
'meta' => [
|
||||
'paginate' => $paginate,
|
||||
'root' => null,
|
||||
]
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<?php
|
||||
namespace Domain\Browsing\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Domain\Files\Models\File;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class BrowseTrashContentController
|
||||
{
|
||||
@@ -27,14 +27,12 @@ class BrowseTrashContentController
|
||||
->where('parent_id', $root_id)
|
||||
->sortable()
|
||||
->get();
|
||||
|
||||
|
||||
} else {
|
||||
// Get folders and files
|
||||
$folders_trashed = Folder::onlyTrashed()
|
||||
->with(['trashedFolders', 'parent'])
|
||||
->where('user_id', $user_id)
|
||||
->get(['parent_id', 'id', 'name']);
|
||||
->with(['trashedFolders', 'parent'])
|
||||
->where('user_id', $user_id)
|
||||
->get(['parent_id', 'id', 'name']);
|
||||
|
||||
$folders = Folder::onlyTrashed()
|
||||
->with(['parent'])
|
||||
@@ -64,7 +62,7 @@ class BrowseTrashContentController
|
||||
'meta' => [
|
||||
'paginate' => $paginate,
|
||||
'root' => $requestedFolder,
|
||||
]
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
<?php
|
||||
namespace Domain\Browsing\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Domain\Files\Models\File;
|
||||
use Domain\Sharing\Models\Share;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Domain\Folders\Resources\FolderResource;
|
||||
use Domain\Sharing\Actions\ProtectShareRecordAction;
|
||||
use Domain\Sharing\Actions\VerifyAccessToItemAction;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
/**
|
||||
* Browse shared folder
|
||||
@@ -56,7 +56,7 @@ class VisitorBrowseFolderController
|
||||
'meta' => [
|
||||
'paginate' => $paginate,
|
||||
'root' => new FolderResource($requestedFolder),
|
||||
]
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,6 @@ class GenerateImageThumbnailAction
|
||||
collect(config("vuefilemanager.image_sizes.$execution"))
|
||||
->each(function ($size) use ($userId, $fileName, $imageWidth) {
|
||||
if ($imageWidth > $size['size']) {
|
||||
|
||||
// Create intervention image
|
||||
$intervention = Image::make(
|
||||
Storage::disk('local')->path("temp/$userId/$fileName")
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
namespace Domain\Files\Controllers;
|
||||
|
||||
use Domain\Files\Models\File;
|
||||
use Illuminate\Http\Response;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Files\Requests\UploadRequest;
|
||||
use Domain\Files\Resources\FileResource;
|
||||
@@ -21,7 +20,8 @@ class UploadFileController extends Controller
|
||||
/**
|
||||
* Upload file for authenticated master|editor user
|
||||
*/
|
||||
public function __invoke(UploadRequest $request) {
|
||||
public function __invoke(UploadRequest $request)
|
||||
{
|
||||
if (is_demo_account()) {
|
||||
return ($this->fakeUploadFile)($request);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
namespace Domain\Files\Requests;
|
||||
|
||||
use Domain\Admin\Rules\DisabledMimetypes;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<?php
|
||||
namespace Domain\Items\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Files\Models\File;
|
||||
use Domain\Files\Resources\FileResource;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Files\Resources\FileResource;
|
||||
use Domain\Folders\Resources\FolderResource;
|
||||
use Domain\Items\Requests\RenameItemRequest;
|
||||
use Domain\Items\Actions\RenameFileOrFolderAction;
|
||||
|
||||
@@ -3,7 +3,6 @@ namespace Domain\SetupWizard\Controllers;
|
||||
|
||||
use Artisan;
|
||||
use App\Users\Models\User;
|
||||
use Domain\SetupWizard\Actions\CreateDiskDirectoriesAction;
|
||||
use Illuminate\Http\Response;
|
||||
use Domain\Settings\Models\Setting;
|
||||
use App\Http\Controllers\Controller;
|
||||
@@ -12,6 +11,7 @@ use Domain\Pages\Actions\SeedDefaultPagesAction;
|
||||
use Domain\Settings\Actions\SeedDefaultSettingsAction;
|
||||
use Domain\SetupWizard\Requests\StoreAdminAccountRequest;
|
||||
use Domain\Localization\Actions\SeedDefaultLanguageAction;
|
||||
use Domain\SetupWizard\Actions\CreateDiskDirectoriesAction;
|
||||
|
||||
/**
|
||||
* Create and login admin account
|
||||
|
||||
@@ -53,8 +53,8 @@ class BrowseSharedWithMeController
|
||||
'links' => $links,
|
||||
'meta' => [
|
||||
'paginate' => $paginate,
|
||||
'root' => $id ? new FolderResource(Folder::findOrFail($id)) : null
|
||||
]
|
||||
'root' => $id ? new FolderResource(Folder::findOrFail($id)) : null,
|
||||
],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ class TeamFoldersController extends Controller
|
||||
'meta' => [
|
||||
'paginate' => $paginate,
|
||||
'root' => $id ? new FolderResource(Folder::findOrFail($id)) : null,
|
||||
]
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ class InvitationIntoTeamFolder extends Notification implements ShouldQueue
|
||||
return [
|
||||
'category' => 'team-invitation',
|
||||
'title' => __t('new_team_invitation'),
|
||||
'description' => __t('x_invite_to_join_team', ['name' => $this->invitation->inviter->settings->name,]),
|
||||
'description' => __t('x_invite_to_join_team', ['name' => $this->invitation->inviter->settings->name, ]),
|
||||
'action' => [
|
||||
'type' => 'invitation',
|
||||
'params' => [
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
namespace Domain\UploadRequest\Notifications;
|
||||
|
||||
use Illuminate\Bus\Queueable;
|
||||
@@ -19,7 +18,8 @@ class UploadRequestFulfilledNotification extends Notification implements ShouldQ
|
||||
*/
|
||||
public function __construct(
|
||||
public UploadRequest $uploadRequest
|
||||
) {}
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the notification's delivery channels.
|
||||
@@ -50,7 +50,7 @@ class UploadRequestFulfilledNotification extends Notification implements ShouldQ
|
||||
return [
|
||||
'category' => 'file-request',
|
||||
'title' => __t('file_request_filled'),
|
||||
'description' => __t('file_request_filled_desc', ['name' => $this->uploadRequest->parent->name,]),
|
||||
'description' => __t('file_request_filled_desc', ['name' => $this->uploadRequest->parent->name, ]),
|
||||
'action' => [
|
||||
'type' => 'route',
|
||||
'params' => [
|
||||
|
||||
@@ -9,15 +9,13 @@ use Domain\Files\Models\File;
|
||||
use Domain\Sharing\Models\Share;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Illuminate\Support\Collection;
|
||||
use Domain\Settings\Models\Setting;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Domain\Settings\Models\Setting;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\QueryException;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Domain\Localization\Models\Language;
|
||||
use Domain\Files\Resources\FilesCollection;
|
||||
use Domain\Folders\Resources\FolderCollection;
|
||||
use Intervention\Image\ImageManagerStatic as Image;
|
||||
use Illuminate\Database\Eloquent\ModelNotFoundException;
|
||||
|
||||
@@ -1152,30 +1150,20 @@ if (! function_exists('replace_occurrence')) {
|
||||
}
|
||||
}
|
||||
|
||||
if(! function_exists('groupPaginate')) {
|
||||
if (! function_exists('generatePaginationCounts')) {
|
||||
/**
|
||||
* Group paginate of Foldes and Files
|
||||
*/
|
||||
function groupPaginate(
|
||||
?Collection $folders = null,
|
||||
?Collection $files = null,
|
||||
function generatePaginationCounts(
|
||||
int $totalItemsCount
|
||||
) : array {
|
||||
|
||||
$perPage = config('vuefilemanager.paginate.perPage');
|
||||
$currentPage = request()->input('page') === 'all' ? 1 : (int)request()->input('page');
|
||||
|
||||
// Collect Folders with Files
|
||||
$entries = collect([
|
||||
$folders ? json_decode((new FolderCollection($folders))->toJson(), true) : null,
|
||||
$files ? json_decode((new FilesCollection($files))->toJson(), true) : null,
|
||||
])->collapse();
|
||||
$currentPage = request()->input('page') === 'all' ? 1 : (int) request()->input('page');
|
||||
|
||||
$uri = request()->fullUrl();
|
||||
$lastPage = ceil($totalItemsCount / $perPage);
|
||||
|
||||
return [
|
||||
$entries,
|
||||
[
|
||||
'currentPage' => $currentPage,
|
||||
'from' => 1,
|
||||
@@ -1188,28 +1176,29 @@ if (! function_exists('replace_occurrence')) {
|
||||
[
|
||||
'first' => $uri . '&page=' . 1,
|
||||
'last' => $uri . '&page=' . $lastPage,
|
||||
'next' => $currentPage == $lastPage ? null : $uri . '&page=' . $currentPage + 1,
|
||||
'prev' => $currentPage == 1 ? null : $uri . '&page=' . $currentPage -1,
|
||||
]
|
||||
'next' => $currentPage == $lastPage ? null : $uri . '&page=' . $currentPage + 1,
|
||||
'prev' => $currentPage == 1 ? null : $uri . '&page=' . $currentPage - 1,
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
if(! function_exists('getRecordsCount')) {
|
||||
}
|
||||
|
||||
if (! function_exists('getRecordsCount')) {
|
||||
/**
|
||||
* Get count of items from the Database
|
||||
*/
|
||||
function getRecordsCount (
|
||||
array $folderQuery,
|
||||
array $fileQuery
|
||||
) : array {
|
||||
|
||||
function getRecordsCount(
|
||||
array $folderQuery,
|
||||
array $fileQuery,
|
||||
string $page
|
||||
) : array {
|
||||
$perPage = config('vuefilemanager.paginate.perPage');
|
||||
$currentPage = request()->input('page') === 'all' ? 1 : (int)request()->input('page');
|
||||
$currentPage = $page === 'all' ? 1 : (int) $page;
|
||||
|
||||
$foldersSkip = 0;
|
||||
$foldersTake = 0;
|
||||
$filesSkip = 0;
|
||||
$filesTake = 0;
|
||||
$filesSkip = 0;
|
||||
$filesTake = 0;
|
||||
|
||||
$foldersCount = DB::table('folders')
|
||||
->where($folderQuery)
|
||||
@@ -1221,34 +1210,32 @@ if (! function_exists('replace_occurrence')) {
|
||||
|
||||
$totalItemsCount = $foldersCount + $filesCount;
|
||||
|
||||
if(request()->input('page') !== 'all') {
|
||||
|
||||
if ($page !== 'all') {
|
||||
// Folders pages
|
||||
if($foldersCount >= $currentPage * $perPage) {
|
||||
if ($foldersCount >= $currentPage * $perPage) {
|
||||
$foldersTake = $perPage;
|
||||
$foldersSkip = ($currentPage - 1) * $perPage;
|
||||
}
|
||||
|
||||
// Mixed page
|
||||
if($foldersCount < $currentPage * $perPage && ceil($currentPage) === ceil($foldersCount / $perPage) ) {
|
||||
if ($foldersCount < $currentPage * $perPage && ceil($currentPage) === ceil($foldersCount / $perPage)) {
|
||||
$foldersSkip = ($currentPage - 1) * $perPage;
|
||||
$foldersTake = $foldersCount - $foldersSkip;
|
||||
$filesTake = ($currentPage * $perPage) - $foldersCount;
|
||||
$filesTake = ($currentPage * $perPage) - $foldersCount;
|
||||
$filesSkip = 0;
|
||||
}
|
||||
|
||||
// Files pages
|
||||
if($currentPage > ceil($foldersCount / $perPage)) {
|
||||
if ($currentPage > ceil($foldersCount / $perPage)) {
|
||||
$filesTake = $perPage;
|
||||
$filesSkip = ((ceil($foldersCount / $perPage) * $perPage) - $foldersCount) + ($currentPage - (ceil($foldersCount / $perPage)) -1) * $perPage;
|
||||
$filesSkip = ((ceil($foldersCount / $perPage) * $perPage) - $foldersCount) + ($currentPage - (ceil($foldersCount / $perPage)) - 1) * $perPage;
|
||||
}
|
||||
} else {
|
||||
$foldersTake = $foldersCount;
|
||||
$filesTake = $filesCount;
|
||||
$filesTake = $filesCount;
|
||||
}
|
||||
|
||||
return [$foldersTake, $foldersSkip, $filesTake, $filesSkip, $totalItemsCount];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\App\Users;
|
||||
|
||||
use Storage;
|
||||
|
||||
@@ -133,7 +133,7 @@ class AdminLanguageTranslatorTest extends TestCase
|
||||
->assertStatus(200)
|
||||
->assertJsonFragment([
|
||||
'locale' => 'en',
|
||||
'close' => 'Close',
|
||||
'close' => 'Close',
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -180,7 +180,7 @@ class AdminLanguageTranslatorTest extends TestCase
|
||||
->getJson("/api/admin/languages/$language->id")
|
||||
->assertStatus(200)
|
||||
->assertJsonFragment([
|
||||
'close' => 'Close',
|
||||
'close' => 'Close',
|
||||
'locale' => 'en',
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -61,21 +61,21 @@ class SetupWizardTest extends TestCase
|
||||
Setting::all()->each->delete();
|
||||
|
||||
$this->postJson('/api/setup/app-setup', [
|
||||
'color' => '#00BC72',
|
||||
'title' => 'VueFileManager',
|
||||
'description' => 'The best file manager on the internet',
|
||||
'googleAnalytics' => 'UA-12345678-1',
|
||||
'contactMail' => 'john@doe.com',
|
||||
'subscriptionType' => 'metered',
|
||||
'userVerification' => 1,
|
||||
'userRegistration' => 1,
|
||||
'storageLimitation' => 1,
|
||||
'defaultStorage' => 10,
|
||||
'logo' => UploadedFile::fake()->image('fake-logo.jpg'),
|
||||
'color' => '#00BC72',
|
||||
'title' => 'VueFileManager',
|
||||
'description' => 'The best file manager on the internet',
|
||||
'googleAnalytics' => 'UA-12345678-1',
|
||||
'contactMail' => 'john@doe.com',
|
||||
'subscriptionType' => 'metered',
|
||||
'userVerification' => 1,
|
||||
'userRegistration' => 1,
|
||||
'storageLimitation' => 1,
|
||||
'defaultStorage' => 10,
|
||||
'logo' => UploadedFile::fake()->image('fake-logo.jpg'),
|
||||
'logo_dark' => UploadedFile::fake()->image('fake-logo-dark.jpg'),
|
||||
'logo_horizontal' => UploadedFile::fake()->image('fake-logo-horizontal.jpg'),
|
||||
'logo_horizontal' => UploadedFile::fake()->image('fake-logo-horizontal.jpg'),
|
||||
'logo_horizontal_dark' => UploadedFile::fake()->image('fake-logo-horizontal-dark.jpg'),
|
||||
'favicon' => UploadedFile::fake()->image('fake-favicon.jpg'),
|
||||
'favicon' => UploadedFile::fake()->image('fake-favicon.jpg'),
|
||||
])->assertStatus(204);
|
||||
|
||||
$this
|
||||
|
||||
@@ -2,6 +2,10 @@
|
||||
namespace Tests\Support\Helpers;
|
||||
|
||||
use Tests\TestCase;
|
||||
use App\Users\Models\User;
|
||||
use Domain\Files\Models\File;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Illuminate\Support\Facades\Config;
|
||||
|
||||
class HelperTest extends TestCase
|
||||
{
|
||||
@@ -25,4 +29,57 @@ class HelperTest extends TestCase
|
||||
$this->assertEquals('Jane', $thirdTest['first_name']);
|
||||
$this->assertEquals('', $thirdTest['last_name']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_test_get_records_count()
|
||||
{
|
||||
$user = User::factory()
|
||||
->hasSettings()
|
||||
->create();
|
||||
|
||||
Folder::factory()
|
||||
->count(12)
|
||||
->create([
|
||||
'user_id' => $user->id,
|
||||
'parent_id' => null,
|
||||
]);
|
||||
|
||||
File::factory()
|
||||
->count(13)
|
||||
->create([
|
||||
'user_id' => $user->id,
|
||||
'parent_id' => null,
|
||||
]);
|
||||
|
||||
$folderQuery = [
|
||||
'parent_id' => null,
|
||||
'team_folder' => false,
|
||||
'user_id' => $user->id,
|
||||
'deleted_at' => null,
|
||||
];
|
||||
|
||||
$fileQuery = [
|
||||
'parent_id' => null,
|
||||
'user_id' => $user->id,
|
||||
'deleted_at' => null,
|
||||
];
|
||||
|
||||
Config::set('vuefilemanager.paginate.perPage', 5);
|
||||
|
||||
// getRecordsCunt returned array [foldersTake, foldersSkip, filesTake, filesSkip, totalItemsCount]
|
||||
|
||||
// Get folders page
|
||||
$this->assertEquals([5, 0, 0, 0, 25], getRecordsCount($folderQuery, $fileQuery, '1'));
|
||||
|
||||
// Get mixed page
|
||||
$this->assertEquals([2, 10, 3, 0, 25], getRecordsCount($folderQuery, $fileQuery, '3'));
|
||||
|
||||
// Get files page
|
||||
$this->assertEquals([0, 0, 5, 8, 25], getRecordsCount($folderQuery, $fileQuery, '5'));
|
||||
|
||||
// Get all pages
|
||||
$this->assertEquals([12, 0, 13, 0, 25], getRecordsCount($folderQuery, $fileQuery, 'all'));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user