* */ use Combodo\iTop\Portal\Brick\AbstractBrick; use Combodo\iTop\Portal\Helper\ApplicationHelper; use Combodo\iTop\Test\UnitTest\ItopDataTestCase; /** * @covers \Combodo\iTop\Portal\Helper\RequestManipulatorHelper */ class ApplicationHelperTest extends ItopDataTestCase { const PASSWORD = "aBCDEFG@123456789"; protected function LoadRequiredItopFiles(): void { parent::LoadRequiredItopFiles(); $this->RequireOnceItopFile('datamodels/2.x/itop-portal-base/portal/src/Helper/ApplicationHelper.php'); } public static function LoadBrickSecurityProvider() { return [ 'can access admin profile' => [ 'associated_profile' => 'Administrator', ], 'cannot access admin profile' => [ 'associated_profile' => 'Portal user', ], ]; } /** * @dataProvider LoadBrickSecurityProvider */ public function testLoadBrickSecurity_GetAllowedProfilesOql(string $sAssociatedProfileName) { $oBrick = $this->createMock(AbstractBrick::class); $oBrick->expects($this->any()) ->method('GetAllowedProfilesOql') ->willReturn("SELECT URP_Profiles WHERE name IN ('Administrator')"); $oBrick->expects($this->exactly(1)) ->method('AddAllowedProfile') ->willReturn("Administrator"); $_SESSION = []; $oUser = $this->CreateContactlessUser("$sAssociatedProfileName-" . uniqid(), self::$aURP_Profiles[$sAssociatedProfileName], self::PASSWORD); \UserRights::Login($oUser->Get('login')); $this->InvokeNonPublicStaticMethod(ApplicationHelper::class, 'LoadBrickSecurity', [$oBrick]); } /** * @dataProvider LoadBrickSecurityProvider */ public function testLoadBrickSecurity_GetDeniedProfilesOql(string $sAssociatedProfileName) { $oBrick = $this->createMock(AbstractBrick::class); $oBrick->expects($this->any()) ->method('GetDeniedProfilesOql') ->willReturn("SELECT URP_Profiles WHERE name IN ('Administrator')"); $oBrick->expects($this->exactly(1)) ->method('AddDeniedProfile') ->willReturn("Administrator"); $_SESSION = []; $oUser = $this->CreateContactlessUser("$sAssociatedProfileName-" . uniqid(), self::$aURP_Profiles[$sAssociatedProfileName], self::PASSWORD); \UserRights::Login($oUser->Get('login')); $this->InvokeNonPublicStaticMethod(ApplicationHelper::class, 'LoadBrickSecurity', [$oBrick]); } }