-
-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Expand file tree
/
Copy pathEntityAccessTest.php
More file actions
51 lines (43 loc) · 1.63 KB
/
EntityAccessTest.php
File metadata and controls
51 lines (43 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
namespace Tests\Entity;
use BookStack\Entities\Models\Entity;
use BookStack\Users\UserRepo;
use Tests\TestCase;
class EntityAccessTest extends TestCase
{
public function test_entities_viewable_after_creator_deletion()
{
// Create required assets and revisions
$creator = $this->users->editor();
$updater = $this->users->viewer();
$entities = $this->entities->createChainBelongingToUser($creator, $updater);
app()->make(UserRepo::class)->destroy($creator);
$this->entities->updatePage($entities['page'], ['html' => '<p>hello!</p>>']);
$this->checkEntitiesViewable($entities);
}
public function test_entities_viewable_after_updater_deletion()
{
// Create required assets and revisions
$creator = $this->users->viewer();
$updater = $this->users->editor();
$entities = $this->entities->createChainBelongingToUser($creator, $updater);
app()->make(UserRepo::class)->destroy($updater);
$this->entities->updatePage($entities['page'], ['html' => '<p>Hello there!</p>']);
$this->checkEntitiesViewable($entities);
}
/**
* @param array<string, Entity> $entities
*/
private function checkEntitiesViewable(array $entities)
{
// Check pages and books are visible.
$this->asAdmin();
foreach ($entities as $entity) {
$this->get($entity->getUrl())
->assertStatus(200)
->assertSee($entity->name);
}
// Check revision listing shows no errors.
$this->get($entities['page']->getUrl('/revisions'))->assertStatus(200);
}
}