mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-25 11:38:44 +02:00
N°3867 Fix "Invalid configuration: Stmt_Expression is forbidden in line 10" error when saving valid config in configuration editor
Now this is tested in \ConfigValidator\iTopConfigAstValidatorTest
This commit is contained in:
56
test/core/ConfigValidator/iTopConfigAstValidatorTest.php
Normal file
56
test/core/ConfigValidator/iTopConfigAstValidatorTest.php
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
/*
|
||||
* @copyright Copyright (C) 2010-2021 Combodo SARL
|
||||
* @license http://opensource.org/licenses/AGPL-3.0
|
||||
*/
|
||||
|
||||
namespace ConfigValidator;
|
||||
|
||||
use Combodo\iTop\Config\Validator\iTopConfigAstValidator;
|
||||
use Combodo\iTop\Test\UnitTest\ItopTestCase;
|
||||
use Exception;
|
||||
|
||||
class iTopConfigAstValidatorTest extends ItopTestCase
|
||||
{
|
||||
protected function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
require_once APPROOT.'datamodels/2.x/itop-config/src/Validator/iTopConfigAstValidator.php';
|
||||
require_once APPROOT.'datamodels/2.x/itop-config/src/Validator/ConfigNodesVisitor.php';
|
||||
}
|
||||
|
||||
public function testValidateFileValid()
|
||||
{
|
||||
try {
|
||||
$this->CallValidatorOnFile('config-itop_VALID.php');
|
||||
}
|
||||
catch (Exception $e) {
|
||||
$this->fail('An exception was thrown by the validation method on a valid file: '.$e->getMessage());
|
||||
}
|
||||
|
||||
$this->assertTrue(true, 'The file is valid and interpreted as such');
|
||||
}
|
||||
|
||||
public function testValidateFileWithCode()
|
||||
{
|
||||
$this->expectExceptionMessage('type Stmt_Function is forbidden');
|
||||
$this->CallValidatorOnFile('config-itop_KO_function.php');
|
||||
}
|
||||
|
||||
public function testValidateFileValidWithCodeAtTheEnd()
|
||||
{
|
||||
$this->expectExceptionMessage('Stmt_Echo is forbidden');
|
||||
$this->CallValidatorOnFile('config-itop_KO_config_plus_code.php');
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws \Exception
|
||||
*/
|
||||
private function CallValidatorOnFile(string $sConfigFilePath)
|
||||
{
|
||||
$sContents = file_get_contents(__DIR__.DIRECTORY_SEPARATOR.$sConfigFilePath);
|
||||
|
||||
$oiTopConfigValidator = new iTopConfigAstValidator();
|
||||
$oiTopConfigValidator->Validate($sContents);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user