public static function close_db_connections() { foreach (Database::$instances as $db) { $db->disconnect(); unset($db); } Database::$instances = array(); }
public function action_index() { if ($_POST) { $dir = $_POST['dir']; $sort = $_POST['sort']; $name1 = $_POST['city']; $name2 = $_POST['struct']; $name3 = $_POST['ded']; $name4 = $_POST['cov']; $name5 = $_POST['dist']; $name6 = $_POST['year']; $query = DB::select()->from('ho3')->where('ho3.city', '=', $name1)->and_where('ho3.structure', '=', $name2)->and_where('ho3.deductible', '=', $name3)->and_where('ho3.coverage', '=', $name4)->and_where('ho3.distance', '=', $name5)->and_where('ho3.year', '=', $name6)->join('home')->on('home.company', '=', 'ho3.company')->order_by($sort, $dir)->execute()->as_array(); $this->request->response = '{"results":' . json_encode($query) . '}'; return; Database::$instances = array(); } }
function Index() { if (!TEST_MODE) { print Kohana::show_404(); } $original_config = DOCROOT . "var/database.php"; $test_config = VARPATH . "database.php"; if (!file_exists($original_config)) { print "Please copy kohana/config/database.php to {$original_config}.\n"; return; } else { copy($original_config, $test_config); $db_config = Kohana::config('database'); if (empty($db_config['unit_test'])) { $default = $db_config['default']; $conn = $default['connection']; Kohana::config_set('database.unit_test.benchmark', $default['benchmark']); Kohana::config_set('database.unit_test.persistent', $default['persistent']); Kohana::config_set('database.unit_test.connection.type', $conn['type']); Kohana::config_set('database.unit_test.connection.user', $conn['user']); Kohana::config_set('database.unit_test.connection.pass', $conn['pass']); Kohana::config_set('database.unit_test.connection.host', $conn['host']); Kohana::config_set('database.unit_test.connection.port', $conn['port']); Kohana::config_set('database.unit_test.connection.socket', $conn['socket']); Kohana::config_set('database.unit_test.connection.database', "{$conn['database']}_test"); Kohana::config_set('database.unit_test.character_set', $default['character_set']); Kohana::config_set('database.unit_test.table_prefix', $default['table_prefix']); Kohana::config_set('database.unit_test.object', $default['object']); Kohana::config_set('database.unit_test.cache', $default['cache']); Kohana::config_set('database.unit_test.escape', $default['escape']); $db_config = Kohana::config('database'); } if ($db_config['default']['connection']['database'] == $db_config['unit_test']['connection']['database']) { print "Don't use the default database for your unit tests or you'll lose all your data.\n"; return; } try { $db = Database::instance('unit_test'); $db->connect(); // Make this the default database for the rest of this run Database::$instances = array('default' => $db); } catch (Exception $e) { print "{$e->getMessage()}\n"; return; } } // Find all tests, excluding sample tests that come with the unit_test module. foreach (glob(MODPATH . "*/tests") as $path) { if ($path != MODPATH . "unit_test/tests") { $paths[] = $path; } } Kohana::config_set('unit_test.paths', $paths); // Clean out the database if ($tables = $db->list_tables()) { foreach ($db->list_tables() as $table) { $db->query("DROP TABLE {$table}"); } } // Clean out the filesystem @system("rm -rf test/var"); @mkdir('test/var/logs', 0777, true); // Reset our caches module::$modules = array(); module::$active = array(); module::$var_cache = array(); $db->clear_cache(); // Install all modules // Force gallery and user to be installed first to resolve dependencies. gallery_installer::install(true); module::load_modules(); module::install("user"); module::activate("user"); $modules = array(); foreach (glob(MODPATH . "*/helpers/*_installer.php") as $file) { $module_name = basename(dirname(dirname($file))); if (in_array($module_name, array("gallery", "user"))) { continue; } module::install($module_name); module::activate($module_name); } $filter = count($_SERVER["argv"]) > 2 ? $_SERVER["argv"][2] : null; print new Unit_Test($modules, $filter); }
function Index() { if (!TEST_MODE) { print Kohana::show_404(); } // Jump through some hoops to satisfy the way that we check for the site_domain in // config.php. We structure this such that the code in config will leave us with a // site_domain of "." (for historical reasons) // @todo: for tests, we should force the site_domain to something like example.com $_SERVER["SCRIPT_FILENAME"] = "index.php"; $_SERVER["SCRIPT_NAME"] = "./index.php"; $original_config = DOCROOT . "var/database.php"; $test_config = VARPATH . "database.php"; if (!file_exists($original_config)) { print "Please copy kohana/config/database.php to {$original_config}.\n"; return; } else { copy($original_config, $test_config); $db_config = Kohana::config('database'); if (empty($db_config['unit_test'])) { $default = $db_config['default']; $conn = $default['connection']; Kohana::config_set('database.unit_test.benchmark', $default['benchmark']); Kohana::config_set('database.unit_test.persistent', $default['persistent']); Kohana::config_set('database.unit_test.connection.type', $conn['type']); Kohana::config_set('database.unit_test.connection.user', $conn['user']); Kohana::config_set('database.unit_test.connection.pass', $conn['pass']); Kohana::config_set('database.unit_test.connection.host', $conn['host']); Kohana::config_set('database.unit_test.connection.port', $conn['port']); Kohana::config_set('database.unit_test.connection.socket', $conn['socket']); Kohana::config_set('database.unit_test.connection.database', "{$conn['database']}_test"); Kohana::config_set('database.unit_test.character_set', $default['character_set']); Kohana::config_set('database.unit_test.table_prefix', $default['table_prefix']); Kohana::config_set('database.unit_test.object', $default['object']); Kohana::config_set('database.unit_test.cache', $default['cache']); Kohana::config_set('database.unit_test.escape', $default['escape']); $db_config = Kohana::config('database'); } if ($db_config['default']['connection']['database'] == $db_config['unit_test']['connection']['database']) { print "Don't use the default database for your unit tests or you'll lose all your data.\n"; return; } try { $db = Database::instance('unit_test'); $db->connect(); // Make this the default database for the rest of this run Database::$instances = array('default' => $db); } catch (Exception $e) { print "{$e->getMessage()}\n"; return; } } try { // Find all tests, excluding sample tests that come with the unit_test module. foreach (glob(MODPATH . "*/tests") as $path) { if ($path != MODPATH . "unit_test/tests") { $paths[] = $path; } } Kohana::config_set('unit_test.paths', $paths); // Clean out the database if ($tables = $db->list_tables()) { foreach ($db->list_tables() as $table) { $db->query("DROP TABLE {$table}"); } } // Clean out the filesystem @system("rm -rf test/var"); @mkdir('test/var/logs', 0777, true); // Reset our caches module::$modules = array(); module::$active = array(); module::$var_cache = array(); $db->clear_cache(); // Rest the cascading class path Kohana::config_set("core", Kohana::config_load("core")); // Install all modules // Force gallery and user to be installed first to resolve dependencies. gallery_installer::install(true); module::load_modules(); module::install("user"); module::activate("user"); $modules = array(); foreach (glob(MODPATH . "*/helpers/*_installer.php") as $file) { $module_name = basename(dirname(dirname($file))); if (in_array($module_name, array("gallery", "user"))) { continue; } module::install($module_name); module::activate($module_name); } // Trigger late-binding install actions (defined in gallery_event::user_login) graphics::choose_default_toolkit(); $filter = count($_SERVER["argv"]) > 2 ? $_SERVER["argv"][2] : null; print new Unit_Test($modules, $filter); } catch (Exception $e) { print "Exception: {$e->getMessage()}\n"; print $e->getTraceAsString() . "\n"; } }