public function testLoadFileWithAnotherPrefix() { USVN_Db_Table::$prefix = "fake_"; USVN_Db_Utils::loadFile($this->db, $this->testfile); $list_tables = $this->db->listTables(); $this->assertEquals(3, sizeof($list_tables)); $this->assertTrue(in_array('fake_users', $list_tables)); $this->assertTrue(in_array('fake_groups', $list_tables)); }
protected function setUp() { parent::setUp(); $params = array('host' => 'localhost', 'username' => 'usvn-test', 'password' => 'usvn-test', 'dbname' => 'usvn-test'); if (getenv('DB') == "PDO_SQLITE" || getenv('DB') === false) { $this->_clean(); Install::installDb('tests/db.ini', dirname(__FILE__) . '/../../SQL/', 'localhost', 'usvn-test', 'usvn-test', 'tests/usvn.db', 'usvn_', 'PDO_SQLITE', false); $params['dbname'] = "tests/usvn.db"; $this->db = Zend_Db::factory('PDO_SQLITE', $params); file_put_contents('tests/test.ini', ' database.adapterName = "PDO_SQLITE" database.prefix = "usvn_" database.options.host = "localhost" database.options.username = "******" database.options.password = "******" database.options.dbname = "' . getcwd() . '/tests/usvn.db" subversion.passwd = "' . getcwd() . '/tests/htpasswd" ', FILE_APPEND); } else { $this->db = Zend_Db::factory(getenv('DB'), $params); $this->_clean(); Install::installDb('tests/db.ini', dirname(__FILE__) . '/../../SQL/', 'localhost', 'usvn-test', 'usvn-test', 'usvn-test', 'usvn_', getenv('DB'), false); file_put_contents('tests/test.ini', ' database.adapterName = "' . getenv('DB') . '" database.prefix = "usvn_" database.options.host = "localhost" database.options.username = "******" database.options.password = "******" database.options.dbname = "usvn-test" subversion.passwd = "' . getcwd() . '/tests/htpasswd" ', FILE_APPEND); } Zend_Db_Table::setDefaultAdapter($this->db); USVN_Db_Table::$prefix = "usvn_"; $config = new USVN_Config_Ini('tests/test.ini', 'general'); Zend_Registry::set('config', $config); }
* @since 0.6.4 * @package tools * * This software has been written at EPITECH <http://www.epitech.net> * EPITECH, European Institute of Technology, Paris - FRANCE - * This project has been realised as part of * end of studies project. * * $Id$ */ defined('APPLICATION_PATH') || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../../app')); require_once '../../app/bootstrap.php'; if (!isset($argv[2]) || isset($argv[3])) { echo "Usage: usvn-import-htpasswd.php config-file htpasswd-file\n"; exit(1); } $configfile = $argv[1]; $htpasswdfile = $argv[2]; try { $config = new USVN_Config_Ini($configfile, 'general'); USVN_Translation::initTranslation($config->translation->locale, APPLICATION_PATH . '/locale'); Zend_Db_Table::setDefaultAdapter(Zend_Db::factory($config->database->adapterName, $config->database->options->toArray())); Zend_Db_Table::getDefaultAdapter()->getProfiler()->setEnabled(true); USVN_Db_Table::$prefix = $config->database->prefix; Zend_Registry::set('config', $config); $import = new USVN_ImportHtpasswd($htpasswdfile); } catch (Exception $e) { echo $e->getMessage() . "\n"; exit(1); } exit(0);
/** * This method will test connection to the database, load database schemas * and finally write the config file. * * Throw an exception in case of problems. * * @param string Path to the USVN config file * @param string Path to the SQL files * @param string Database host * @param string Database user * @param string Database password * @param string Database name * @param string Database table prefix (ex: usvn_) * @param string Database type (mysql or sqlite) * @param boolean Create the database before installing * @throw USVN_Exception */ public static function installDb($config_file, $path_sql, $host, $user, $password, $database, $prefix, $adapter, $createdb) { $params = array('host' => $host, 'username' => $user, 'password' => $password, 'dbname' => $database); if ($createdb && ($adapter == 'PDO_MYSQL' || $adapter == 'MYSQLI')) { try { $tmp_params = $params; if ($adapter == 'PDO_MYSQL' || $adapter == 'MYSQLI') { $tmp_params['dbname'] = 'mysql'; } $db = Zend_Db::factory($adapter, $tmp_params); if ($adapter == 'PDO_MYSQL') { $db->query("CREATE DATABASE `{$database}`;"); } else { if ($adapter == 'MYSQLI') { $cnx = $db->getConnection(); $cnx->query("CREATE DATABASE `{$database}`;"); } } $db->closeConnection(); } catch (Exception $e) { throw new USVN_Exception(T_("Can't create database\n") . $e->getMessage()); } } try { $db = Zend_Db::factory($adapter, $params); $db->getConnection(); } catch (Exception $e) { throw new USVN_Exception(T_("Can't connect to database.\n") . ' ' . $e->getMessage()); } Zend_Db_Table::setDefaultAdapter($db); USVN_Db_Table::$prefix = $prefix; try { if ($adapter == 'PDO_MYSQL' || $adapter == 'MYSQLI') { USVN_Db_Utils::loadFile($db, $path_sql . '/mysql.sql'); } else { if ($adapter == 'PDO_SQLITE') { USVN_Db_Utils::loadFile($db, $path_sql . '/sqlite.sql'); } else { throw new USVN_Exception(T_("Invalid adapter %s.\n") . $adapter); } } } catch (Exception $e) { try { USVN_Db_Utils::deleteAllTables($db, $prefix); } catch (Exception $e2) { } $db->closeConnection(); throw new USVN_Exception(T_("Can't load SQL file.\n") . $e->getMessage()); } $db->closeConnection(); try { $config = Install::_loadConfig($config_file); $array = array('adapterName' => $adapter, 'prefix' => $prefix, 'options' => array('host' => $host, 'username' => $user, 'password' => $password, 'dbname' => $database)); if ($adapter == 'PDO_SQLITE') { unset($array['options']['host']); unset($array['options']['username']); unset($array['options']['password']); } $config->database = $array; $config->save(); } catch (Exception $e) { USVN_Db_Utils::deleteAllTables($db, $prefix); $db->closeConnection(); throw new USVN_Exception(T_("Can't write config file %s.\n") . ' ' . $e->getMessage(), $config_file); } }