diff --git a/eZ/Publish/API/Repository/Tests/Limitation/PermissionResolver/LocationLimitationIntegrationTest.php b/eZ/Publish/API/Repository/Tests/Limitation/PermissionResolver/LocationLimitationIntegrationTest.php index 2ce01c4399b..013f36565c2 100644 --- a/eZ/Publish/API/Repository/Tests/Limitation/PermissionResolver/LocationLimitationIntegrationTest.php +++ b/eZ/Publish/API/Repository/Tests/Limitation/PermissionResolver/LocationLimitationIntegrationTest.php @@ -8,6 +8,7 @@ namespace eZ\Publish\API\Repository\Tests\Limitation\PermissionResolver; +use eZ\Publish\API\Repository\Repository; use eZ\Publish\API\Repository\Values\User\Limitation\LocationLimitation; use eZ\Publish\SPI\Limitation\Target\Version; @@ -62,4 +63,35 @@ public function testCanUserEditContent(array $limitations, bool $expectedResult) [$location, new Version(['allLanguageCodesList' => 'eng-GB'])] ); } + + /** + * @dataProvider providerForCanUserEditOrPublishContent + * + * @throws \eZ\Publish\API\Repository\Exceptions\ForbiddenException + * @throws \eZ\Publish\API\Repository\Exceptions\NotFoundException + * @throws \eZ\Publish\API\Repository\Exceptions\UnauthorizedException + */ + public function testCanUserReadTrashedContent(array $limitations, bool $expectedResult): void + { + $repository = $this->getRepository(); + $locationService = $repository->getLocationService(); + + $location = $locationService->loadLocation(2); + + $this->loginAsEditorUserWithLimitations('content', 'read', $limitations); + + $trashItem = $repository->sudo( + function (Repository $repository) use ($location) { + return $repository->getTrashService()->trash($location); + } + ); + + $this->assertCanUser( + $expectedResult, + 'content', + 'read', + $limitations, + $trashItem->contentInfo + ); + } }