GenerateGpgTest.php
1 <?php 2 3 namespace Tests\Feature\User; 4 5 use App\Http\Services\GpgService; 6 use App\Models\User; 7 use Illuminate\Foundation\Testing\RefreshDatabase; 8 use Illuminate\Foundation\Testing\WithFaker; 9 use Livewire\Livewire; 10 use Tests\TestCase; 11 12 class GenerateGpgTest extends TestCase 13 { 14 15 public function test_can_generate_all_gpg(){ 16 $this->actingAs($this->getAdminUser()); 17 $component = Livewire::test('users.index'); 18 $component->call('generateAllGpg'); 19 // $this->checkSuccess($component, 'users.notifications.generate_all_gpg.success.title', 'users.notifications.generate_all_gpg.success.message'); 20 foreach (User::all() as $user) { 21 $this->assertNotNull($user->activeKey); 22 } 23 24 } 25 26 public function test_cannot_generate_all_gpg_with_worker_permission(){ 27 $this->actingAs($this->getWorkerUser()); 28 $component = Livewire::test('users.index') 29 ->assertForbidden(); 30 31 } 32 33 public function test_can_generate_user_gpg(){ 34 $this->actingAs($this->getAdminUser()); 35 $user = User::factory()->create(); 36 $component = Livewire::test('users.view', ['user' => $user]); 37 $component->call('generateGpgKey'); 38 $passphrase = $component->get('passphrase'); 39 $user->refresh(); 40 $component->assertDispatchedBrowserEvent('wireui:dialog', [ 41 'options' => [ 42 'icon' => 'info', 43 'title' => __('settings.gpg.actions.passphrase.title'), 44 'description' => __('settings.gpg.actions.passphrase.description', ['passphrase' => $user->activeKey->key_passphrase]), 45 ], 46 'componentId' => $component->id, 47 ]); 48 $this->assertNotNull($user->activeKey); 49 } 50 51 public function test_can_see_generate_gpg_button(){ 52 $this->actingAs($this->getAdminUser()); 53 $user = User::factory()->create(); 54 $component = Livewire::test('users.view', ['user' => $user]); 55 $component->assertSee(__('users.panel.title.generate_gpg')); 56 } 57 58 public function test_can_download_public_key(){ 59 $this->actingAs($this->getAdminUser()); 60 $user = User::factory()->create(); 61 $gpgService = new GpgService(); 62 $gpgService->generateUserKey($user); 63 $component = Livewire::test('users.view', ['user' => $user]); 64 $component->call('downloadPublicGpgKey') 65 ->assertFileDownloaded(); 66 } 67 68 public function test_user_can_download_his_private_key(){ 69 $this->actingAs($this->getAdminUser()); 70 $gpgService = new GpgService(); 71 $gpgService->generateUserKey($this->getAdminUser()); 72 $component = Livewire::test('users.view', ['user' => $this->getAdminUser()]); 73 $component->call('downloadPrivateGpgKey') 74 ->assertFileDownloaded(); 75 } 76 77 78 public function test_another_user_cannot_download_private_key(){ 79 $this->actingAs($this->getAdminUser()); 80 $user = User::factory()->create(); 81 $gpgService = new GpgService(); 82 $gpgService->generateUserKey($user); 83 $component = Livewire::test('users.view', ['user' => $user]); 84 $component->call('downloadPrivateGpgKey'); 85 $component->assertForbidden(); 86 } 87 88 }