This repository has been archived on 2026-07-19. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
espocrm-base/tests/Espo/Core/Utils/File/ManagerTest.php
T
2014-10-20 11:13:16 +03:00

174 lines
5.5 KiB
PHP

<?php
namespace tests\Espo\Core\Utils\File;
use tests\ReflectionHelper;
class ManagerTest extends \PHPUnit_Framework_TestCase
{
protected $object;
protected $objects;
protected $filesPath= 'tests/testData/FileManager';
protected $reflection;
protected function setUp()
{
$this->objects['config'] = $this->getMockBuilder('\Espo\Core\Utils\Config')->disableOriginalConstructor()->getMock();
$this->object = new \Espo\Core\Utils\File\Manager();
$this->reflection = new ReflectionHelper($this->object);
}
protected function tearDown()
{
$this->object = NULL;
}
public function testGetFileName()
{
$this->assertEquals('Donwload', $this->object->getFileName('Donwload.php'));
$this->assertEquals('Donwload', $this->object->getFileName('/Donwload.php'));
$this->assertEquals('Donwload', $this->object->getFileName('\Donwload.php'));
$this->assertEquals('Donwload', $this->object->getFileName('application/Espo/EntryPoints/Donwload.php'));
}
public function testGetContents()
{
$result = file_get_contents($this->filesPath.'/getContent/test.json');
$this->assertEquals($result, $this->object->getContents( array($this->filesPath, 'getContent/test.json') ));
}
public function testPutContents()
{
$testPath= $this->filesPath.'/setContent';
$result= 'next value';
$this->assertTrue($this->object->putContents(array($testPath, 'test.json'), $result));
$this->assertEquals($result, $this->object->getContents( array($testPath, 'test.json')) );
$this->assertTrue($this->object->putContents(array($testPath, 'test.json'), 'initial value'));
}
public function testConcatPaths()
{
$input = 'application/Espo/Resources/metadata/app/panel.json';
$result = 'application/Espo/Resources/metadata/app/panel.json';
$this->assertEquals($result, $this->reflection->invokeMethod('concatPaths', array($input)) );
$input = array(
'application',
'Espo/Resources/metadata/',
'app',
'panel.json',
);
$result = 'application/Espo/Resources/metadata/app/panel.json';
$this->assertEquals($result, $this->reflection->invokeMethod('concatPaths', array($input)) );
$input = array(
'application/Espo/Resources/metadata/app',
'panel.json',
);
$result = 'application/Espo/Resources/metadata/app/panel.json';
$this->assertEquals($result, $this->reflection->invokeMethod('concatPaths', array($input)) );
$input = array(
'application/Espo/Resources/metadata/app/',
'panel.json',
);
$result = 'application/Espo/Resources/metadata/app/panel.json';
$this->assertEquals($result, $this->reflection->invokeMethod('concatPaths', array($input)) );
}
public function testGetDirName()
{
$input = 'data/logs/espo.log';
$result = 'logs';
$this->assertEquals($result, $this->object->getDirName($input, false));
$input = 'data/logs/espo.log/';
$result = 'logs';
$this->assertEquals($result, $this->object->getDirName($input, false));
$input = 'application/Espo/Resources/metadata/entityDefs';
$result = 'metadata';
$this->assertEquals($result, $this->object->getDirName($input, false));
$input = 'application/Espo/Resources/metadata/entityDefs/';
$result = 'metadata';
$this->assertEquals($result, $this->object->getDirName($input, false));
$input = '/application/Espo/Resources/metadata/entityDefs';
$result = 'metadata';
$this->assertEquals($result, $this->object->getDirName($input, false));
$input = 'notRealPath/logs/espo.log';
$result = 'logs';
$this->assertEquals($result, $this->object->getDirName($input, false));
}
public function testGetDirNameFullPath()
{
$input = 'data/logs/espo.log';
$result = 'data/logs';
$this->assertEquals($result, $this->object->getDirName($input));
$input = 'data/logs/espo.log/';
$result = 'data/logs';
$this->assertEquals($result, $this->object->getDirName($input));
$input = 'application/Espo/Resources/metadata/entityDefs';
$result = 'application/Espo/Resources/metadata';
$this->assertEquals($result, $this->object->getDirName($input));
$input = 'application/Espo/Resources/metadata/entityDefs/';
$result = 'application/Espo/Resources/metadata';
$this->assertEquals($result, $this->object->getDirName($input));
$input = '/application/Espo/Resources/metadata/entityDefs';
$result = '/application/Espo/Resources/metadata';
$this->assertEquals($result, $this->object->getDirName($input));
$input = 'notRealPath/logs/espo.log';
$result = 'notRealPath/logs';
$this->assertEquals($result, $this->object->getDirName($input));
}
public function testUnsetContents()
{
$testPath = $this->filesPath.'/unsets/test.json';
$initData = '{"fields":{"someName":{"type":"varchar","maxLength":40},"someName2":{"type":"varchar","maxLength":36}}}';
$this->object->putContents($testPath, $initData);
$unsets = 'fields.someName2';
$this->assertTrue($this->object->unsetContents($testPath, $unsets));
$result = '{"fields":{"someName":{"type":"varchar","maxLength":40}}}';
$this->assertJsonStringEqualsJsonFile($testPath, $result);
}
}
?>