+ $this->permissions->addEntityPermission($page, [], $roleA);
+ $this->permissions->addEntityPermission($page, ['view'], $roleB);
+
+ $this->assertVisibleToUser($page, $user);
+ }
+
+ public function test_20_inherit_allow()
+ {
+ [$user, $roleA] = $this->users->newUserWithRole();
+ $page = $this->entities->pageWithinChapter();
+ $chapter = $page->chapter;
+
+ $this->permissions->disableEntityInheritedPermissions($chapter);
+ $this->permissions->addEntityPermission($chapter, ['view'], $roleA);
+
+ $this->assertVisibleToUser($page, $user);
+ }
+
+ public function test_21_inherit_deny()
+ {
+ [$user, $roleA] = $this->users->newUserWithRole();
+ $page = $this->entities->pageWithinChapter();
+ $chapter = $page->chapter;
+
+ $this->permissions->disableEntityInheritedPermissions($chapter);
+ $this->permissions->addEntityPermission($chapter, [], $roleA);
+
+ $this->assertNotVisibleToUser($page, $user);
+ }
+
+ public function test_22_same_level_conflict_inherit()
+ {
+ [$user, $roleA] = $this->users->newUserWithRole();
+ $roleB = $this->users->attachNewRole($user);
+ $page = $this->entities->pageWithinChapter();
+ $chapter = $page->chapter;
+
+ $this->permissions->disableEntityInheritedPermissions($chapter);
+ $this->permissions->addEntityPermission($chapter, [], $roleA);
+ $this->permissions->addEntityPermission($chapter, ['view'], $roleB);
+
+ $this->assertVisibleToUser($page, $user);
+ }