Jelajahi Sumber

Fix test on verifCond for value 0

Laurent Destailleur 3 tahun lalu
induk
melakukan
e609622f2b
2 mengubah file dengan 10 tambahan dan 4 penghapusan
  1. 1 1
      htdocs/core/lib/functions.lib.php
  2. 9 3
      test/phpunit/FunctionsLibTest.php

+ 1 - 1
htdocs/core/lib/functions.lib.php

@@ -8082,7 +8082,7 @@ function verifCond($strRights)
 
 	//print $strRights."<br>\n";
 	$rights = true;
-	if ($strRights != '') {
+	if ($strRights !== '') {
 		$str = 'if(!('.$strRights.')) { $rights = false; }';
 		dol_eval($str); // The dol_eval must contains all the global $xxx used into a condition
 	}

+ 9 - 3
test/phpunit/FunctionsLibTest.php

@@ -1048,13 +1048,19 @@ class FunctionsLibTest extends PHPUnit\Framework\TestCase
 		$this->assertFalse($verifcond, 'Test a false comparison');
 
 		$verifcond=verifCond('$conf->facture->enabled');
-		$this->assertTrue($verifcond, 'Test that conf property of a module report true when enabled');
+		$this->assertTrue($verifcond, 'Test that the conf property of a module reports true when enabled');
 
 		$verifcond=verifCond('$conf->moduledummy->enabled');
-		$this->assertFalse($verifcond, 'Test that conf property of a module report false when disabled');
+		$this->assertFalse($verifcond, 'Test that the conf property of a module reports false when disabled');
+
+		$verifcond=verifCond(0);
+		$this->assertFalse($verifcond, 'Test that verifConf(0) return False');
+
+		$verifcond=verifCond("0");
+		$this->assertFalse($verifcond, 'Test that verifConf("0") return False');
 
 		$verifcond=verifCond('');
-		$this->assertTrue($verifcond);
+		$this->assertTrue($verifcond, 'Test that verifConf("") return False (special case)');
 	}
 
 	/**