* */ /** * @runTestsInSeparateProcesses * @preserveGlobalState disabled * @backupGlobals disabled * @covers utils */ class UtilsTest extends \Combodo\iTop\Test\UnitTest\ItopTestCase { public function setUp() { parent::setUp(); require_once(APPROOT.'application/utils.inc.php'); } /** * @dataProvider memoryLimitDataProvider */ public function testIsMemoryLimit($expected, $memoryLimit, $requiredMemory) { $this->assertSame($expected, utils::IsMemoryLimitOk($memoryLimit, $requiredMemory)); } /** * DataProvider for testIsMemoryLimitOk * * @return array */ public function memoryLimitDataProvider() { return [ [true, '-1', 1024], [true, -1, 1024], [true, 1024, 1024], [true, 2048, 1024], [false, 1024, 2048], ]; } /** * @dataProvider realPathDataProvider * @covers utils::RealPath() */ public function testRealPath($sPath, $sBasePath, $expected) { $this->assertSame($expected, utils::RealPath($sPath, $sBasePath)); } public function realPathDataProvider() { parent::setUp(); // if not called, APPROOT won't be defined :( $sSep = DIRECTORY_SEPARATOR; $sItopRootRealPath = realpath(APPROOT).$sSep; return [ 'licence.txt' => [APPROOT.'license.txt', APPROOT, $sItopRootRealPath.'license.txt'], 'unexisting file' => [APPROOT.'license_DOES_NOT_EXIST.txt', APPROOT, false], '/license.txt' => [APPROOT.$sSep.'license.txt', APPROOT, $sItopRootRealPath.'license.txt'], '%2flicense.txt' => [APPROOT.'%2flicense.txt', APPROOT, false], '../license.txt' => [APPROOT.'..'.$sSep.'license.txt', APPROOT, false], '%2e%2e%2flicense.txt' => [APPROOT.'%2e%2e%2flicense.txt', APPROOT, false], 'application/utils.inc.php with basepath=APPROOT' => [ APPROOT.'application/utils.inc.php', APPROOT, $sItopRootRealPath.'application'.$sSep.'utils.inc.php', ], 'application/utils.inc.php with basepath=APPROOT/application' => [ APPROOT.'application/utils.inc.php', APPROOT.'application', $sItopRootRealPath.'application'.$sSep.'utils.inc.php', ], 'basepath containing / and \\' => [ APPROOT.'sources/form/form.class.inc.php', APPROOT.'sources/form\\form.class.inc.php', $sItopRootRealPath.'sources'.$sSep.'form'.$sSep.'form.class.inc.php', ], ]; } }