. */ /** * Test bootstrap * * @author Johan Cwiklinski */ if (!isset($basepath)) { if (file_exists('../galette/index.php')) { $basepath = '../galette/'; } elseif (file_exists('galette/index.php')) { $basepath = 'galette/'; } else { die('Unable to define GALETTE_BASE_PATH :\'('); } } $db = 'mysql'; $dbenv = getenv('DB'); if ( $dbenv === 'pgsql' || substr($dbenv, 0, strlen('postgres')) === 'postgres' ) { $db = 'pgsql'; } $testenv = getenv('TESTENV'); $fail_env = $testenv === 'FAIL'; if ($fail_env !== false) { $db .= '_fail'; } define('GALETTE_CONFIG_PATH', __DIR__ . '/config/' . $db . '/'); define('GALETTE_BASE_PATH', $basepath); define('GALETTE_TESTS', true); define('GALETTE_TESTS_PATH', __DIR__); define('GALETTE_MODE', 'PROD'); if (!defined('GALETTE_PLUGINS_PATH')) { define('GALETTE_PLUGINS_PATH', GALETTE_TESTS_PATH . '/plugins/'); } define('GALETTE_TPL_SUBDIR', 'templates/default/'); define('GALETTE_THEME', 'themes/default/'); define('GALETTE_DATA_PATH', GALETTE_TESTS_PATH . '/tests-data/'); define('GALETTE_CACHE_DIR', GALETTE_DATA_PATH . 'cache/'); if (is_dir(GALETTE_DATA_PATH)) { $files = new RecursiveIteratorIterator( new RecursiveDirectoryIterator( GALETTE_DATA_PATH, RecursiveDirectoryIterator::SKIP_DOTS ), RecursiveIteratorIterator::CHILD_FIRST ); foreach ($files as $fileinfo) { $todo = ($fileinfo->isDir() ? 'rmdir' : 'unlink'); $todo($fileinfo->getRealPath()); } rmdir(GALETTE_DATA_PATH); } mkdir(GALETTE_DATA_PATH); $directories = [ 'logs', 'templates_c', 'cache', 'exports', 'imports', 'photos', 'attachments', 'files', 'tempimages' ]; foreach ($directories as $directory) { mkdir(GALETTE_DATA_PATH . $directory); } $logfile = 'galette_tests'; require_once GALETTE_BASE_PATH . 'includes/galette.inc.php'; $session_name = 'galette_tests'; $session = new \RKA\SessionMiddleware([ 'name' => $session_name, 'lifetime' => 0 ]); $session->start(); $gapp = new \Galette\Core\SlimApp(); $app = $gapp->getApp(); $app->add($session); require_once GALETTE_BASE_PATH . '/includes/dependencies.php'; //Globals... :( global $preferences, $emitter, $zdb; $zdb = $container->get('zdb'); $preferences = $container->get('preferences'); $emitter = $container->get('event_manager'); $i18n->changeLanguage('en_US'); if (!defined('_CURRENT_THEME_PATH')) { define( '_CURRENT_THEME_PATH', GALETTE_THEMES_PATH . $preferences->pref_theme . '/' ); } if ( $testenv !== 'UPDATE' && $testenv !== 'FAIL' ) { //do not initialize Tiles on update nor fail tests $titles = new \Galette\Repository\Titles($zdb); $res = $titles->installInit($zdb); } require_once __DIR__ . '/GaletteTestCase.php';