mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
80 lines
1.9 KiB
PHP
80 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace Combodo\iTop\Application\TwigBase\Controller;
|
|
|
|
use Combodo\iTop\Test\UnitTest\ItopDataTestCase;
|
|
use MetaModel;
|
|
|
|
class ControllerTest extends ItopDataTestCase
|
|
{
|
|
protected function setUp(): void
|
|
{
|
|
parent::setUp();
|
|
|
|
$this->RequireOnceUnitTestFile('FakeController.php');
|
|
}
|
|
|
|
public function CheckAccessProvider()
|
|
{
|
|
return [
|
|
'simple token access OK' => [
|
|
'access_token' => 'toto123',
|
|
'http_access_token' => 'toto123',
|
|
'bSuccess' => true,
|
|
],
|
|
'simple token access OK sent by POST' => [
|
|
'access_token' => 'toto123',
|
|
'http_access_token' => 'toto123',
|
|
'bSuccess' => true,
|
|
'bPost' => true,
|
|
],
|
|
'simple token access FAILED' => [
|
|
'access_token' => 'toto123',
|
|
'http_access_token' => 'toto124',
|
|
'bSuccess' => false,
|
|
],
|
|
'url encoded token access OK' => [
|
|
'access_token' => 'rfb4j"E?7}-ZJq4T^B*26pk8{;zxem',
|
|
'http_access_token' => 'rfb4j%22E%3F7%7D-ZJq4T%5EB%2A26pk8%7B%3Bzxem',
|
|
'bSuccess' => true,
|
|
],
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Fix N°7147
|
|
* @dataProvider CheckAccessProvider
|
|
*/
|
|
public function testCheckAccess($sConfiguredAccessToken, $sHttpAccessToken, $bSuccess, $bPost = false)
|
|
{
|
|
$sModuleName = "MyModule";
|
|
$sTokenParamName = "access_token_conf_param";
|
|
|
|
$_SESSION = [];
|
|
$_POST = [];
|
|
$_REQUEST = [];
|
|
|
|
$_REQUEST['exec_module'] = $sModuleName;
|
|
if ($bPost) {
|
|
$_POST[$sTokenParamName] = $sHttpAccessToken;
|
|
} else {
|
|
$_REQUEST[$sTokenParamName] = $sHttpAccessToken;
|
|
}
|
|
|
|
$oController = new FakeController();
|
|
$oController->SetAccessTokenConfigParamId($sTokenParamName);
|
|
|
|
MetaModel::GetConfig()->SetModuleSetting($sModuleName, $sTokenParamName, $sConfiguredAccessToken);
|
|
|
|
if (! $bSuccess) {
|
|
$this->expectExceptionMessage("Invalid token");
|
|
}
|
|
|
|
$this->InvokeNonPublicMethod(FakeController::class, "CheckAccess", $oController);
|
|
|
|
if ($bSuccess) {
|
|
$this->assertTrue(true, "no issue encountered");
|
|
}
|
|
}
|
|
}
|