X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/6669998c10e66ebfa2d492290efd23f34ae66463..refs/pull/691/head:/tests/BrowserKitTest.php diff --git a/tests/BrowserKitTest.php b/tests/BrowserKitTest.php index 0a97c1292..a8ff03044 100644 --- a/tests/BrowserKitTest.php +++ b/tests/BrowserKitTest.php @@ -1,23 +1,33 @@ -make(Illuminate\Contracts\Console\Kernel::class)->bootstrap(); + $app->make(Kernel::class)->bootstrap(); return $app; } @@ -48,7 +58,7 @@ abstract class BrowserKitTest extends \Laravel\BrowserKitTesting\TestCase */ public function getAdmin() { if($this->admin === null) { - $adminRole = \BookStack\Role::getRole('admin'); + $adminRole = Role::getSystemRole('admin'); $this->admin = $adminRole->users->first(); } return $this->admin; @@ -95,12 +105,10 @@ abstract class BrowserKitTest extends \Laravel\BrowserKitTesting\TestCase protected function createEntityChainBelongingToUser($creatorUser, $updaterUser = false) { if ($updaterUser === false) $updaterUser = $creatorUser; - $book = factory(BookStack\Book::class)->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]; + $book = factory(\BookStack\Book::class)->create(['created_by' => $creatorUser->id, 'updated_by' => $updaterUser->id]); + $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, @@ -110,15 +118,35 @@ abstract class BrowserKitTest extends \Laravel\BrowserKitTesting\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 = \BookStack\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; } @@ -211,7 +239,6 @@ abstract class BrowserKitTest extends \Laravel\BrowserKitTesting\TestCase /** * Check if the page contains the given element. * @param string $selector - * @return bool */ protected function pageHasElement($selector) { @@ -223,7 +250,6 @@ abstract class BrowserKitTest extends \Laravel\BrowserKitTesting\TestCase /** * Check if the page contains the given element. * @param string $selector - * @return bool */ protected function pageNotHasElement($selector) {