mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-18 07:23:13 +00:00
97 lines
3.3 KiB
PHP
97 lines
3.3 KiB
PHP
<?php
|
|
|
|
namespace Alchemy\Tests\Phrasea\Setup;
|
|
|
|
use Alchemy\Phrasea\Core\Configuration\PropertyAccess;
|
|
use Alchemy\Phrasea\Setup\Installer;
|
|
use Alchemy\Phrasea\Application;
|
|
use Alchemy\Phrasea\Core\Configuration\Configuration;
|
|
use Symfony\Component\Yaml\Parser;
|
|
use Symfony\Component\Yaml\Yaml;
|
|
use Alchemy\Phrasea\Core\Configuration\Compiler;
|
|
|
|
/**
|
|
* @group functional
|
|
* @group legacy
|
|
*/
|
|
class InstallerTest extends \PhraseanetTestCase
|
|
{
|
|
public function tearDown()
|
|
{
|
|
$app = new Application(Application::ENV_TEST);
|
|
\phrasea::reset_sbasDatas($app['phraseanet.appbox']);
|
|
\phrasea::reset_baseDatas($app['phraseanet.appbox']);
|
|
parent::tearDown();
|
|
}
|
|
|
|
public function testInstall()
|
|
{
|
|
$app = new Application(Application::ENV_TEST);
|
|
\phrasea::reset_sbasDatas($app['phraseanet.appbox']);
|
|
\phrasea::reset_baseDatas($app['phraseanet.appbox']);
|
|
|
|
$app->bindRoutes();
|
|
|
|
$parser = new Parser();
|
|
$config = $parser->parse(file_get_contents(__DIR__ . '/../../../../../config/configuration.yml'));
|
|
$credentials = $config['main']['database'];
|
|
|
|
$configFile = __DIR__ . '/configuration.yml';
|
|
$compiledFile = __DIR__ . '/configuration.yml.php';
|
|
|
|
@unlink($configFile);
|
|
@unlink($compiledFile);
|
|
|
|
$app['configuration.store'] = $app->share(function() use ($configFile, $compiledFile) {
|
|
return new Configuration(new Yaml(), new Compiler(), $configFile, $compiledFile, true);
|
|
});
|
|
|
|
$app['conf'] = $app->share(function() use($app) {
|
|
return new PropertyAccess($app['configuration.store']);
|
|
});
|
|
|
|
$app['phraseanet.appbox'] = $app->share(function() use($app) {
|
|
return new \appbox($app);
|
|
});
|
|
|
|
$abInfo = [
|
|
'host' => $credentials['host'],
|
|
'port' => $credentials['port'],
|
|
'user' => $credentials['user'],
|
|
'password' => $credentials['password'],
|
|
'dbname' => 'ab_setup_test',
|
|
];
|
|
|
|
$abConn = $app['dbal.provider']($abInfo);
|
|
$dbConn = $app['dbal.provider']([
|
|
'host' => $credentials['host'],
|
|
'port' => $credentials['port'],
|
|
'user' => $credentials['user'],
|
|
'password' => $credentials['password'],
|
|
'dbname' => 'db_setup_test',
|
|
]);
|
|
$key = $app['orm.add']($abInfo);
|
|
$app['orm.ems.default'] = $key;
|
|
$dataPath = __DIR__ . '/../../../../../datas/';
|
|
|
|
$installer = new Installer($app);
|
|
$installer->install(uniqid('admin') . '@example.com', 'sdfsdsd', $abConn, 'http://local.phrasea.test.installer/', ['subdefs' => $dataPath], $dbConn, 'en-simple');
|
|
|
|
$this->assertTrue($app['configuration.store']->isSetup());
|
|
$this->assertTrue($app['phraseanet.configuration-tester']->isUpToDate());
|
|
|
|
$databox = current($app->getDataboxes());
|
|
$this->assertContains('<path>'.realpath($dataPath).'/db_setup_test/subdefs</path>', $databox->get_structure());
|
|
|
|
$conf = $app['configuration.store']->getConfig();
|
|
$this->assertArrayHasKey('main', $conf);
|
|
$this->assertArrayHasKey('key', $conf['main']);
|
|
$this->assertGreaterThan(10, strlen($conf['main']['key']));
|
|
|
|
@unlink($configFile);
|
|
@unlink($compiledFile);
|
|
|
|
$app['connection.pool.manager']->closeAll();
|
|
}
|
|
}
|