mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
* add few APIs to ease tests * code style * log testname via IssueLog only through ItopDataTestCase * code style * ci: phpunit fix fatal error
63 lines
1.8 KiB
PHP
63 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace Combodo\iTop\Test\UnitTest\Application;
|
|
|
|
use Combodo\iTop\Test\UnitTest\ItopDataTestCase;
|
|
use MetaModel;
|
|
|
|
class LoginTest extends ItopDataTestCase
|
|
{
|
|
protected $sConfigPath;
|
|
protected $sLoginMode;
|
|
|
|
protected function setUp(): void
|
|
{
|
|
parent::setUp();
|
|
|
|
clearstatcache();
|
|
|
|
// The test consists in requesting UI.php from outside iTop with a specific configuration
|
|
// Hence the configuration file must be tweaked on disk (and restored)
|
|
$this->sConfigPath = MetaModel::GetConfig()->GetLoadedFile();
|
|
$this->sConfigTmpBackupFile = tempnam(sys_get_temp_dir(), "config_");
|
|
file_put_contents($this->sConfigTmpBackupFile, file_get_contents($this->sConfigPath));
|
|
|
|
$oConfig = new \Config($this->sConfigPath);
|
|
$this->sLoginMode = "unimplemented_loginmode";
|
|
$oConfig->AddAllowedLoginTypes($this->sLoginMode);
|
|
|
|
@chmod($this->sConfigPath, 0770);
|
|
$oConfig->WriteToFile();
|
|
@chmod($this->sConfigPath, 0444);
|
|
}
|
|
|
|
protected function tearDown(): void
|
|
{
|
|
if (! is_null($this->sConfigTmpBackupFile) && is_file($this->sConfigTmpBackupFile)) {
|
|
//put config back
|
|
@chmod($this->sConfigPath, 0770);
|
|
file_put_contents($this->sConfigPath, file_get_contents($this->sConfigTmpBackupFile));
|
|
@chmod($this->sConfigPath, 0444);
|
|
@unlink($this->sConfigTmpBackupFile);
|
|
}
|
|
parent::tearDown();
|
|
}
|
|
|
|
protected function CallItopUrlByCurl($sUri, ?array $aPostFields = [])
|
|
{
|
|
$ch = curl_init();
|
|
|
|
$sUrl = MetaModel::GetConfig()->Get('app_root_url')."/$sUri";
|
|
curl_setopt($ch, CURLOPT_URL, $sUrl);
|
|
if (0 !== sizeof($aPostFields)) {
|
|
curl_setopt($ch, CURLOPT_POST, 1);// set post data to true
|
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $aPostFields);
|
|
}
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
$sOutput = curl_exec($ch);
|
|
curl_close($ch);
|
|
|
|
return $sOutput;
|
|
}
|
|
}
|