<?php namespace Tests;
-use BookStack\Entity;
-use BookStack\Role;
-use BookStack\Services\PermissionService;
+use BookStack\Entities\Entity;
+use BookStack\Auth\Role;
+use BookStack\Auth\Permissions\PermissionService;
+use BookStack\Settings\SettingService;
use Illuminate\Contracts\Console\Kernel;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Laravel\BrowserKitTesting\TestCase;
{
use DatabaseTransactions;
-
- // Local user instances
- private $admin;
- private $editor;
+ use SharedTestHelpers;
/**
* The base URL to use while testing the application.
*/
protected $baseUrl = 'http://localhost';
- public function tearDown()
+ public function tearDown() : void
{
\DB::disconnect();
parent::tearDown();
return $app;
}
- /**
- * Set the current user context to be an admin.
- * @return $this
- */
- public function asAdmin()
- {
- return $this->actingAs($this->getAdmin());
- }
-
- /**
- * Get the current admin user.
- * @return mixed
- */
- public function getAdmin() {
- if($this->admin === null) {
- $adminRole = Role::getSystemRole('admin');
- $this->admin = $adminRole->users->first();
- }
- return $this->admin;
- }
-
- /**
- * Set the current editor context to be an editor.
- * @return $this
- */
- public function asEditor()
- {
- if ($this->editor === null) {
- $this->editor = $this->getEditor();
- }
- return $this->actingAs($this->editor);
- }
/**
* Get a user that's not a system user such as the guest user.
*/
public function getNormalUser()
{
- return \BookStack\User::where('system_name', '=', null)->get()->last();
+ return \BookStack\Auth\User::where('system_name', '=', null)->get()->last();
}
/**
*/
protected function setSettings($settingsArray)
{
- $settings = app('BookStack\Services\SettingService');
+ $settings = app(SettingService::class);
foreach ($settingsArray as $key => $value) {
$settings->put($key, $value);
}
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, '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]);
+ $book = factory(\BookStack\Entities\Book::class)->create(['created_by' => $creatorUser->id, 'updated_by' => $updaterUser->id]);
+ $chapter = factory(\BookStack\Entities\Chapter::class)->create(['created_by' => $creatorUser->id, 'updated_by' => $updaterUser->id, 'book_id' => $book->id]);
+ $page = factory(\BookStack\Entities\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 [
$restrictionService->buildJointPermissionsForEntity($entity);
}
- /**
- * Get an instance of a user with 'editor' permissions
- * @param array $attributes
- * @return mixed
- */
- protected function getEditor($attributes = [])
- {
- $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;
- }
/**
* Quick way to create a new user without any permissions
*/
protected function getNewBlankUser($attributes = [])
{
- $user = factory(\BookStack\User::class)->create($attributes);
+ $user = factory(\BookStack\Auth\User::class)->create($attributes);
return $user;
}