2
0
forked from Wavyzz/dolibarr

Test switch in dol_eval function()

This commit is contained in:
ldestailleur
2025-04-01 12:23:58 +02:00
parent f824e03b87
commit bcf0ef0bc0
2 changed files with 34 additions and 8 deletions

View File

@@ -604,9 +604,8 @@ class SecurityTest extends CommonClassTest
include_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
include_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
$result = dol_eval('1==\x01', 1, 0); // Check that we can't make dol_eval on string containing \ char.
print "result0 = ".$result."\n";
$this->assertStringContainsString('Bad string syntax to evaluate', $result);
$conf->global->MAIN_USE_DOL_EVAL_NEW = 0;
//$conf->global->MAIN_USE_DOL_EVAL_NEW = 1;
$result = dol_eval('1==1', 1, 0);
print "result1 = ".$result."\n";
@@ -619,7 +618,7 @@ class SecurityTest extends CommonClassTest
$s = '((($reloadedobj = new ClassThatDoesNotExists($db)) && ($reloadedobj->fetchNoCompute($objectoffield->fk_product) > 0)) ? \'1\' : \'0\')';
$result3a = dol_eval($s, 1, 1, '2');
print "result3a = ".$result3a."\n";
$this->assertEquals('Exception during evaluation: '.$s, $result3a);
$this->assertStringContainsString('Exception during evaluation: '.$s, $result3a);
$s = '((($reloadedobj = new Project($db)) && ($reloadedobj->fetchNoCompute($objectoffield->fk_product) > 0)) ? \'1\' : \'0\')';
$result3b = dol_eval($s, 1, 1, '2');
@@ -636,6 +635,10 @@ class SecurityTest extends CommonClassTest
print "result4 = ".$result."\n";
$this->assertEquals('Parent project not found', $result, 'Test 4');
$result = dol_eval('1==\x01', 1, 0); // Check that we can't make dol_eval on string containing \ char.
print "result0 = ".$result."\n";
$this->assertStringContainsString('Bad string syntax to evaluate', $result);
$s = '4 < 5';
$result = (string) dol_eval($s, 1, 1, '2');
print "result5 = ".$result."\n";