Code Duplication    Length = 32-35 lines in 2 locations

eZ/Publish/API/Repository/Tests/PermissionResolverTest.php 2 locations

@@ 879-913 (lines=35) @@
876
     * @depends \eZ\Publish\API\Repository\Tests\RepositoryTest::testGetContentService
877
     * @depends \eZ\Publish\API\Repository\Tests\PermissionResolverTest::testHasAccessForCurrentUserNo
878
     */
879
    public function testLookupLimitationsForAnonymousUserHasNoAccess(): void
880
    {
881
        $repository = $this->getRepository();
882
883
        $homeId = $this->generateId('object', 57);
884
885
        $anonymousUserId = $this->generateId('user', 10);
886
        /* BEGIN: Use Case */
887
        // $anonymousUserId is the ID of the "Anonymous" user in a eZ
888
        // Publish demo installation.
889
        // $homeId contains the ID of the "Home" frontpage
890
891
        $contentService = $repository->getContentService();
892
        $userService = $repository->getUserService();
893
        $permissionResolver = $repository->getPermissionResolver();
894
895
        // Load anonymous user
896
        $anonymousUser = $userService->loadUser($anonymousUserId);
897
898
        // Set anonymous user as current user reference
899
        $permissionResolver->setCurrentUserReference($anonymousUser);
900
901
        // Load the ContentInfo for "Home" frontpage
902
        $contentInfo = $contentService->loadContentInfo($homeId);
903
904
        // `$lookupLimitations->hasAccess` will return false because anonymous user does not have access
905
        // to content removal and hence no permission to remove given content. `$lookupLimitations->lookupPolicyLimitations`
906
        // will be empty array
907
        $lookupLimitations = $permissionResolver->lookupLimitations('content', 'remove', $contentInfo);
908
        /* END: Use Case */
909
910
        $this->assertFalse($lookupLimitations->hasAccess);
911
        $this->assertEquals($lookupLimitations->roleLimitations, []);
912
        $this->assertEquals($lookupLimitations->lookupPolicyLimitations, []);
913
    }
914
915
    /**
916
     * Test for the lookupLimitations() method.
@@ 923-954 (lines=32) @@
920
     * @depends \eZ\Publish\API\Repository\Tests\RepositoryTest::testGetContentService
921
     * @depends \eZ\Publish\API\Repository\Tests\PermissionResolverTest::testHasAccessForCurrentUserYes
922
     */
923
    public function testLookupLimitationsForAdministratorUser(): void
924
    {
925
        $repository = $this->getRepository();
926
927
        $administratorUserId = $this->generateId('user', 14);
928
        $homeId = $this->generateId('object', 57);
929
930
        /* BEGIN: Use Case */
931
        // $administratorUserId contains the ID of the administrator user
932
        // $homeId contains the ID of the "Home" frontpage
933
934
        $contentService = $repository->getContentService();
935
        $userService = $repository->getUserService();
936
        $permissionResolver = $repository->getPermissionResolver();
937
938
        // Load administrator user
939
        $administratorUser = $userService->loadUser($administratorUserId);
940
941
        // Set administrator user as current user reference
942
        $permissionResolver->setCurrentUserReference($administratorUser);
943
944
        // Load the ContentInfo for "Home" frontpage
945
        $contentInfo = $contentService->loadContentInfo($homeId);
946
947
        // This call will return true
948
        $lookupLimitations = $permissionResolver->lookupLimitations('content', 'remove', $contentInfo);
949
        /* END: Use Case */
950
951
        $this->assertTrue($lookupLimitations->hasAccess);
952
        $this->assertEquals($lookupLimitations->roleLimitations, []);
953
        $this->assertEquals($lookupLimitations->lookupPolicyLimitations, []);
954
    }
955
956
    /**
957
     * When one of policy pass then all limitation should be returned.