2020-03-10 13:06:53 +00:00
|
|
|
<?php namespace App\Tests;
|
|
|
|
|
|
|
|
use ApiPlatform\Core\Exception\ItemNotFoundException;
|
|
|
|
use Codeception\Test\Unit;
|
|
|
|
use SuiteCRM\Core\Legacy\SystemConfigHandler;
|
|
|
|
|
|
|
|
class SystemConfigHandlerTest extends Unit
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @var UnitTester
|
|
|
|
*/
|
|
|
|
protected $tester;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @var SystemConfigHandler
|
|
|
|
*/
|
|
|
|
protected $handler;
|
|
|
|
|
2020-03-25 10:15:37 +00:00
|
|
|
protected function _before(): void
|
2020-03-10 13:06:53 +00:00
|
|
|
{
|
|
|
|
$exposedSystemConfigs = [
|
|
|
|
'default_language' => true,
|
|
|
|
'passwordsetting' => [
|
|
|
|
'forgotpasswordON' => true
|
|
|
|
],
|
|
|
|
'search' => [
|
|
|
|
'controller' => true,
|
|
|
|
'pagination' => [
|
|
|
|
'min' => true,
|
|
|
|
]
|
|
|
|
],
|
|
|
|
'languages' => true,
|
|
|
|
];
|
|
|
|
|
|
|
|
$projectDir = codecept_root_dir();
|
|
|
|
$legacyDir = $projectDir . '/legacy';
|
|
|
|
$legacySessionName = 'LEGACYSESSID';
|
|
|
|
$defaultSessionName = 'PHPSESSID';
|
|
|
|
|
|
|
|
$this->handler = new SystemConfigHandler($projectDir, $legacyDir, $legacySessionName, $defaultSessionName,
|
|
|
|
$exposedSystemConfigs);
|
|
|
|
}
|
|
|
|
|
|
|
|
// tests
|
2020-03-13 11:59:52 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Test empty config key handling in SystemConfigHandler
|
|
|
|
*/
|
2020-03-25 10:15:37 +00:00
|
|
|
public function testEmptySystemConfigKeyCheck(): void
|
2020-03-10 13:06:53 +00:00
|
|
|
{
|
|
|
|
$defaultLanguage = $this->handler->getSystemConfig('');
|
|
|
|
static::assertNull($defaultLanguage);
|
|
|
|
}
|
|
|
|
|
2020-03-13 11:59:52 +00:00
|
|
|
/**
|
|
|
|
* Test invalid config key handling in SystemConfigHandler
|
|
|
|
*/
|
2020-03-25 10:15:37 +00:00
|
|
|
public function testInvalidExposedSystemConfigCheck(): void
|
2020-03-10 13:06:53 +00:00
|
|
|
{
|
|
|
|
$this->expectException(ItemNotFoundException::class);
|
|
|
|
$this->handler->getSystemConfig('dbconfig');
|
|
|
|
}
|
|
|
|
|
2020-03-13 11:59:52 +00:00
|
|
|
/**
|
|
|
|
* Test retrieval of first level system config in SystemConfigHandler
|
|
|
|
*/
|
2020-03-25 10:15:37 +00:00
|
|
|
public function testGetValidOneLevelSystemConfig(): void
|
2020-03-10 13:06:53 +00:00
|
|
|
{
|
|
|
|
$defaultLanguage = $this->handler->getSystemConfig('default_language');
|
|
|
|
static::assertNotNull($defaultLanguage);
|
|
|
|
static::assertEquals('default_language', $defaultLanguage->getId());
|
|
|
|
static::assertEquals('en_us', $defaultLanguage->getValue());
|
|
|
|
static::assertEmpty($defaultLanguage->getItems());
|
|
|
|
}
|
|
|
|
|
2020-03-13 11:59:52 +00:00
|
|
|
/**
|
|
|
|
* Test retrieval of second level deep system config in SystemConfigHandler
|
|
|
|
*/
|
2020-03-25 10:15:37 +00:00
|
|
|
public function testGetValidTwoLevelSystemConfig(): void
|
2020-03-10 13:06:53 +00:00
|
|
|
{
|
|
|
|
$defaultLanguage = $this->handler->getSystemConfig('passwordsetting');
|
|
|
|
static::assertNotNull($defaultLanguage);
|
|
|
|
static::assertEquals('passwordsetting', $defaultLanguage->getId());
|
|
|
|
static::assertNull($defaultLanguage->getValue());
|
|
|
|
static::assertIsArray($defaultLanguage->getItems());
|
|
|
|
|
|
|
|
$expected = [
|
|
|
|
'forgotpasswordON' => false
|
|
|
|
];
|
|
|
|
|
|
|
|
$this->assertSame(
|
|
|
|
$expected,
|
|
|
|
$defaultLanguage->getItems()
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2020-03-13 11:59:52 +00:00
|
|
|
/**
|
|
|
|
* Test retrieval of third level deep system config in SystemConfigHandler
|
|
|
|
*/
|
2020-03-25 10:15:37 +00:00
|
|
|
public function testGetValidThreeLevelSystemConfig(): void
|
2020-03-10 13:06:53 +00:00
|
|
|
{
|
|
|
|
$defaultLanguage = $this->handler->getSystemConfig('search');
|
|
|
|
static::assertNotNull($defaultLanguage);
|
|
|
|
static::assertEquals('search', $defaultLanguage->getId());
|
|
|
|
static::assertNull($defaultLanguage->getValue());
|
|
|
|
static::assertIsArray($defaultLanguage->getItems());
|
|
|
|
|
|
|
|
$expected = [
|
|
|
|
'controller' => 'UnifiedSearch',
|
|
|
|
'pagination' => [
|
|
|
|
'min' => 10,
|
|
|
|
]
|
|
|
|
];
|
|
|
|
|
|
|
|
static::assertSame(
|
|
|
|
$expected,
|
|
|
|
$defaultLanguage->getItems()
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|