Merge remote-tracking branch 'origin/master' into light

# Conflicts:
#	.env.testing
#	README.md
#	composer.json
#	composer.lock
#	config/language-translations.php
#	config/vuefilemanager.php
#	public/chunks/admin.js
#	public/chunks/database.js
#	public/chunks/demo.js
#	public/chunks/files.js
#	public/chunks/my-shared-items.js
#	public/chunks/platform.js
#	public/chunks/recent-uploads.js
#	public/chunks/settings-storage.js
#	public/chunks/settings.js
#	public/chunks/shared.js
#	public/chunks/shared/browser.js
#	public/chunks/shared/single-file.js
#	public/chunks/sign-in.js
#	public/chunks/status-check.js
#	public/chunks/trash.js
#	public/chunks/user-storage.js
#	public/css/tailwind.css
#	public/js/main.js
#	public/mix-manifest.json
#	resources/js/components/Subscription/UserFixedSubscriptionDetail.vue
#	resources/js/store/modules/userAuth.js
#	resources/js/views/Admin.vue
#	resources/js/views/Admin/PaymentSettings/PaymentSettingsTab/Payments.vue
#	resources/js/views/Admin/Plans.vue
#	resources/js/views/Admin/Plans/Create/CreateFixedPlan.vue
#	resources/js/views/Admin/Settings/AppSettingsTabs/SignInUp.vue
#	resources/js/views/Demo.vue
#	resources/js/views/Frontpage/Homepage.vue
#	resources/js/views/Platform.vue
#	resources/views/index.blade.php
#	src/App/Console/Commands/SetupWebsocketEnvironment.php
#	src/App/Users/Models/UserLimitation.php
#	src/Domain/RemoteUpload/Controllers/RemoteUploadFileController.php
#	src/Domain/RemoteUpload/Controllers/UploadFilesRemotelyForUploadRequestController.php
#	src/Domain/RemoteUpload/Controllers/VisitorRemoteUploadFileController.php
#	src/Domain/RemoteUpload/Requests/RemoteUploadRequest.php
#	src/Domain/Settings/Controllers/StoreBroadcastServiceCredentialsController.php
#	src/Domain/Settings/Controllers/StorePaymentServiceCredentialsController.php
#	src/Domain/SetupWizard/Controllers/StoreEnvironmentSettingsController.php
#	src/Domain/UploadRequest/Controllers/UploadFilesForUploadRequestController.php
#	src/Support/Upgrading/Controllers/UpgradingVersionsController.php
This commit is contained in:
Čarodej
2022-05-10 16:06:09 +02:00
45 changed files with 593 additions and 199 deletions
-3
View File
@@ -1,7 +1,6 @@
<?php
namespace Tests\Domain\Files;
use Event;
use Storage;
use Tests\TestCase;
use App\Users\Models\User;
@@ -10,8 +9,6 @@ use Domain\Files\Models\File;
use Domain\Folders\Models\Folder;
use Illuminate\Http\UploadedFile;
use Domain\Settings\Models\Setting;
use Illuminate\Support\Facades\Http;
use Domain\RemoteUpload\Events\RemoteFileCreatedEvent;
class FileTest extends TestCase
{
@@ -0,0 +1,69 @@
<?php
namespace Tests\Domain\RemoteUpload;
use Event;
use Storage;
use Tests\TestCase;
use App\Users\Models\User;
use Domain\Files\Models\File;
use Domain\Folders\Models\Folder;
use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\Http;
use Domain\RemoteUpload\Events\RemoteFileCreatedEvent;
class RemoteUploadTest extends TestCase
{
/**
* @test
*/
public function it_remotely_upload_new_file()
{
Event::fake([
RemoteFileCreatedEvent::class,
]);
$user = User::factory()
->hasSettings()
->create();
$folder = Folder::factory()
->create([
'user_id' => $user->id,
]);
$fakeFile = UploadedFile::fake()
->create('top-secret-document.pdf', 12000000, 'application/pdf');
Http::fake([
'https://fake.com/top-secret-document.pdf' => Http::response($fakeFile->getContent()),
'https://fake.com/another-secret-document.pdf' => Http::response($fakeFile->getContent()),
]);
$this
->actingAs($user)
->postJson('/api/upload/remote', [
'urls' => [
'https://fake.com/top-secret-document.pdf',
'https://fake.com/another-secret-document.pdf',
],
'parent_id' => $folder->id,
])->assertStatus(201);
$this
->assertDatabaseHas('files', [
'user_id' => $user->id,
'name' => 'top-secret-document',
'parent_id' => $folder->id,
])
->assertDatabaseHas('files', [
'name' => 'another-secret-document',
]);
File::all()
->each(function ($file) {
Event::assertDispatched(fn (RemoteFileCreatedEvent $event) => $event->payload['file']->id === $file->id);
Storage::assertExists("files/$file->user_id/$file->basename");
});
}
}