Code Duplication    Length = 32-35 lines in 2 locations

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

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