+ public function test_entity_permissions_are_removed_on_delete()
+ {
+ /** @var Role $roleA */
+ $roleA = Role::query()->create(['display_name' => 'Entity Permissions Delete Test']);
+ $page = $this->entities->page();
+
+ $this->entities->setPermissions($page, ['view'], [$roleA]);
+
+ $this->assertDatabaseHas('entity_permissions', [
+ 'role_id' => $roleA->id,
+ 'entity_id' => $page->id,
+ 'entity_type' => $page->getMorphClass(),
+ ]);
+
+ $this->asAdmin()->delete("/settings/roles/delete/$roleA->id");
+
+ $this->assertDatabaseMissing('entity_permissions', [
+ 'role_id' => $roleA->id,
+ 'entity_id' => $page->id,
+ 'entity_type' => $page->getMorphClass(),
+ ]);
+ }
+
+ public function test_image_view_notice_shown_on_role_form()
+ {
+ /** @var Role $role */
+ $role = Role::query()->first();
+ $this->asAdmin()->get("/settings/roles/{$role->id}")
+ ->assertSee('Actual access of uploaded image files will be dependant upon system image storage option');
+ }
+
+ public function test_copy_role_button_shown()
+ {
+ /** @var Role $role */
+ $role = Role::query()->first();
+ $resp = $this->asAdmin()->get("/settings/roles/{$role->id}");
+ $this->withHtml($resp)->assertElementContains('a[href$="/roles/new?copy_from=' . $role->id . '"]', 'Copy');
+ }
+
+ public function test_copy_from_param_on_create_prefills_with_other_role_data()
+ {
+ /** @var Role $role */
+ $role = Role::query()->first();
+ $resp = $this->asAdmin()->get("/settings/roles/new?copy_from={$role->id}");
+ $resp->assertOk();
+ $this->withHtml($resp)->assertElementExists('input[name="display_name"][value="' . ($role->display_name . ' (Copy)') . '"]');
+ }
+