mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 15:34:12 +01:00
101 lines
2.9 KiB
PHP
101 lines
2.9 KiB
PHP
<?php
|
|
/**
|
|
* Copyright (C) 2018 Dennis Lassiter
|
|
*
|
|
* This file is part of iTop.
|
|
*
|
|
* iTop is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* iTop is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with iTop. If not, see <http://www.gnu.org/licenses/>
|
|
*
|
|
*/
|
|
|
|
/**
|
|
* @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',
|
|
],
|
|
];
|
|
}
|
|
}
|