mirror of
https://github.com/Combodo/iTop.git
synced 2026-10-21 15:59:05 +02:00
94 lines
2.8 KiB
PHP
94 lines
2.8 KiB
PHP
<?php
|
|
|
|
/*
|
|
* @copyright Copyright (C) 2010-2026 Combodo SAS
|
|
* @license http://opensource.org/licenses/AGPL-3.0
|
|
*/
|
|
|
|
namespace Combodo\iTop\Test\UnitTest\Application\LoginFSM;
|
|
|
|
use Combodo\iTop\Application\Helper\Session;
|
|
use Combodo\iTop\Test\UnitTest\ItopDataTestCase;
|
|
use LoginBasic;
|
|
use LoginWebPage;
|
|
|
|
class LoginBasicTest extends ItopDataTestCase
|
|
{
|
|
public function testListSupportedLoginModes()
|
|
{
|
|
// Given
|
|
$oLoginBasic = new LoginBasic();
|
|
|
|
// When
|
|
$aActual = $oLoginBasic->ListSupportedLoginModes();
|
|
|
|
// Then
|
|
$this->assertEquals(['basic'], $aActual);
|
|
}
|
|
|
|
public function testOnModeDetectionForLoginPass()
|
|
{
|
|
// Given
|
|
$oLoginBasic = new LoginBasic();
|
|
$_SERVER['HTTP_AUTHORIZATION'] = 'Basic '.base64_encode("Login:BasicTest");
|
|
|
|
// When
|
|
$_SESSION = [];
|
|
$iErrorCode = 0;
|
|
$sActualRes = $oLoginBasic->LoginAction(LoginWebPage::LOGIN_STATE_MODE_DETECTION, $iErrorCode);
|
|
|
|
// Then
|
|
$this->assertEquals('basic', $_SESSION['login_mode'], 'Login mode should have detected basic mode');
|
|
$this->assertEquals(LoginWebPage::LOGIN_FSM_CONTINUE, $sActualRes, 'No Login FSM error should have been detected');
|
|
}
|
|
|
|
public function testOnModeDetectionForRedirect()
|
|
{
|
|
// Given
|
|
$oLoginBasic = new LoginBasic();
|
|
$_SERVER['REDIRECT_HTTP_AUTHORIZATION'] = 'Basic '.base64_encode('Login:BasicTest');
|
|
|
|
// When
|
|
$_SESSION = [];
|
|
$iErrorCode = 0;
|
|
$sActualRes = $oLoginBasic->LoginAction(LoginWebPage::LOGIN_STATE_MODE_DETECTION, $iErrorCode);
|
|
|
|
// Then
|
|
$this->assertEquals('basic', $_SESSION['login_mode'], 'Login mode should have detected basic mode');
|
|
$this->assertEquals(LoginWebPage::LOGIN_FSM_CONTINUE, $sActualRes, 'No Login FSM error should have been detected');
|
|
}
|
|
|
|
public function testOnModeDetectionForBasicLoginPassword()
|
|
{
|
|
// Given
|
|
$oLoginBasic = new LoginBasic();
|
|
$_SERVER['PHP_AUTH_USER'] = 'Login';
|
|
$_SERVER['PHP_AUTH_PW'] = 'Passwd';
|
|
|
|
// When
|
|
$_SESSION = [];
|
|
$iErrorCode = 0;
|
|
$sActualRes = $oLoginBasic->LoginAction(LoginWebPage::LOGIN_STATE_MODE_DETECTION, $iErrorCode);
|
|
|
|
// Then
|
|
$this->assertEquals('basic', $_SESSION['login_mode'], 'Login mode should have detected basic mode');
|
|
$this->assertEquals(LoginWebPage::LOGIN_FSM_CONTINUE, $sActualRes, 'No Login FSM error should have been detected');
|
|
}
|
|
|
|
public function testOnModeDetectionForBearerTokenNotDetectedAsBasic()
|
|
{
|
|
// Given
|
|
$oLoginBasic = new LoginBasic();
|
|
$_SERVER['HTTP_AUTHORIZATION'] = 'Bearer '.base64_encode('Login:BasicTest');
|
|
|
|
// When
|
|
$_SESSION = [];
|
|
$iErrorCode = 0;
|
|
$sActualRes = $oLoginBasic->LoginAction(LoginWebPage::LOGIN_STATE_MODE_DETECTION, $iErrorCode);
|
|
|
|
// Then
|
|
$this->assertFalse(Session::IsSet('login_mode'), 'No basic login mode should have been detected');
|
|
$this->assertEquals(LoginWebPage::LOGIN_FSM_CONTINUE, $sActualRes, 'No Login FSM error should have been detected');
|
|
}
|
|
}
|