. */ namespace SP\Tests\Util; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Group; use SP\Tests\UnitaryTestCase; use SP\Util\Util; /** * Class UtilTest */ #[Group('unitary')] class UtilTest extends UnitaryTestCase { /** * This method is called after the last test of this test class is run. */ public static function tearDownAfterClass(): void { ini_set('memory_limit', -1); } public static function boolProvider(): array { return [ ['false', false], ['no', false], ['n', false], ['0', false], ['off', false], [0, false], ['true', true], ['yes', true], ['y', true], ['1', true], ['on', true], [1, true] ]; } public static function unitsProvider(): array { return [ ['128K', 131072], ['128M', 134217728], ['128G', 137438953472], ['131072', 131072], ['134217728', 134217728], ['137438953472', 137438953472], ]; } #[DataProvider('unitsProvider')] public function testConvertShortUnit(string $unit, int $expected) { $this->assertEquals($expected, Util::convertShortUnit($unit)); } public function testGetMaxUpload() { $upload = ini_set('upload_max_filesize', '30M'); $post = ini_set('post_max_size', '10M'); $memory = ini_set('memory_limit', memory_get_usage() * 1.5); if ($upload !== false && $post !== false && $memory !== false ) { $this->assertEquals(10485760, Util::getMaxUpload()); } else { self::markTestSkipped('Unable to set PHP\'s ini variables'); } } /** * @param $value * @param $expected */ #[DataProvider('boolProvider')] public function testBoolval($value, $expected) { $this->assertEquals($expected, Util::boolval($value)); $this->assertEquals($expected, Util::boolval($value, true)); } public function testGetTempDir() { self::markTestIncomplete(); } }