abstract class WP_CLI_Spec extends PHPUnit_Extensions_Story_TestCase {
- protected static $db_settings = array(
- 'dbname' => 'wp_cli_test',
- 'dbuser' => 'wp_cli_test',
- 'dbpass' => 'password1'
- );
-
- private static function run_sql( $sql ) {
- $dbuser = self::$db_settings['dbuser'];
- $dbpass = self::$db_settings['dbpass'];
-
- exec( "mysql -u$dbuser -p$dbpass -e '$sql'" );
- }
-
- protected function tearDown() {
- $dbname = self::$db_settings['dbname'];
- $this->run_sql( "DROP DATABASE IF EXISTS $dbname" );
- }
-
- private function create_db() {
- $dbname = self::$db_settings['dbname'];
- $this->run_sql( "CREATE DATABASE $dbname" );
- }
-
public function runGiven( &$world, $action, $arguments ) {
switch ( $action ) {
case 'empty dir': {
break;
case 'database': {
- $this->create_db();
+ $world['runner']->create_db();
}
break;
break;
case 'wp config': {
- $world['runner']->create_config( self::$db_settings );
+ $world['runner']->create_config();
}
break;
case 'wp install': {
- $this->create_db();
$world['runner'] = new WP_CLI_Command_Runner;
+ $world['runner']->create_db();
$world['runner']->download_wordpress_files();
- $world['runner']->create_config( self::$db_settings );
+ $world['runner']->create_config();
$world['runner']->run_install();
}
break;
break;
case 'core config': {
- $world['result'] = $world['runner']->create_config( self::$db_settings );
+ $world['result'] = $world['runner']->create_config();
}
break;
class WP_CLI_Command_Runner {
+ protected static $db_settings = array(
+ 'dbname' => 'wp_cli_test',
+ 'dbuser' => 'wp_cli_test',
+ 'dbpass' => 'password1'
+ );
+
private $install_dir;
public function __construct() {
$this->install_dir = sys_get_temp_dir() . '/' . uniqid( "wp-cli-test-", TRUE );
mkdir( $this->install_dir );
+
+ $this->drop_db();
+ }
+
+ public function create_db() {
+ $dbname = self::$db_settings['dbname'];
+ self::run_sql( "CREATE DATABASE $dbname" );
+ }
+
+ public function drop_db() {
+ $dbname = self::$db_settings['dbname'];
+ self::run_sql( "DROP DATABASE IF EXISTS $dbname" );
+ }
+
+ private static function run_sql( $sql ) {
+ $dbuser = self::$db_settings['dbuser'];
+ $dbpass = self::$db_settings['dbpass'];
+
+ exec( "mysql -u$dbuser -p$dbpass -e '$sql'" );
}
public function run( $command, $cwd = false ) {
return (object) compact( 'command', 'return_code', 'stdout', 'stderr' );
}
- public function create_config( $db_settings ) {
- return $this->run( 'core config' . \WP_CLI\Utils\assoc_args_to_str( $db_settings ) );
+ public function create_config() {
+ return $this->run( 'core config' . \WP_CLI\Utils\assoc_args_to_str( self::$db_settings ) );
}
public function define_custom_wp_content_dir() {