X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/7c9937e9240b9656fe865de85a89c97b734656ab..refs/pull/691/head:/tests/BrowserKitTest.php diff --git a/tests/BrowserKitTest.php b/tests/BrowserKitTest.php index 8e02cb5f1..a8ff03044 100644 --- a/tests/BrowserKitTest.php +++ b/tests/BrowserKitTest.php @@ -1,6 +1,8 @@ create(['created_by' => $creatorUser->id, 'updated_by' => $updaterUser->id]); - $chapter = factory(\BookStack\Chapter::class)->create(['created_by' => $creatorUser->id, 'updated_by' => $updaterUser->id]); - $page = factory(\BookStack\Page::class)->create(['created_by' => $creatorUser->id, 'updated_by' => $updaterUser->id, 'book_id' => $book->id]); - $book->chapters()->saveMany([$chapter]); - $chapter->pages()->saveMany([$page]); - $restrictionService = $this->app[\BookStack\Services\PermissionService::class]; + $chapter = factory(\BookStack\Chapter::class)->create(['created_by' => $creatorUser->id, 'updated_by' => $updaterUser->id, 'book_id' => $book->id]); + $page = factory(\BookStack\Page::class)->create(['created_by' => $creatorUser->id, 'updated_by' => $updaterUser->id, 'book_id' => $book->id, 'chapter_id' => $chapter->id]); + $restrictionService = $this->app[PermissionService::class]; $restrictionService->buildJointPermissionsForEntity($book); return [ 'book' => $book, @@ -113,15 +118,35 @@ abstract class BrowserKitTest extends TestCase } /** - * Quick way to create a new user + * Helper for updating entity permissions. + * @param Entity $entity + */ + protected function updateEntityPermissions(Entity $entity) + { + $restrictionService = $this->app[PermissionService::class]; + $restrictionService->buildJointPermissionsForEntity($entity); + } + + /** + * Get an instance of a user with 'editor' permissions * @param array $attributes * @return mixed */ protected function getEditor($attributes = []) { - $user = factory(\BookStack\User::class)->create($attributes); - $role = Role::getRole('editor'); - $user->attachRole($role);; + $user = \BookStack\Role::getRole('editor')->users()->first(); + if (!empty($attributes)) $user->forceFill($attributes)->save(); + return $user; + } + + /** + * Get an instance of a user with 'viewer' permissions + * @return mixed + */ + protected function getViewer() + { + $user = \BookStack\Role::getRole('viewer')->users()->first(); + if (!empty($attributes)) $user->forceFill($attributes)->save(); return $user; }