mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 11:28:25 +00:00
Merge branch '1.3-console' into 1.3
Conflicts: cake/tests/cases/console/libs/schema.test.php
This commit is contained in:
commit
42017e95c6
3 changed files with 56 additions and 15 deletions
|
@ -58,18 +58,12 @@ class SchemaShell extends Shell {
|
|||
* @access public
|
||||
*/
|
||||
function startup() {
|
||||
$name = null;
|
||||
$name = $file = $path = $connection = null;
|
||||
if (!empty($this->params['name'])) {
|
||||
$name = $this->params['name'];
|
||||
$this->params['file'] = Inflector::underscore($name);
|
||||
}
|
||||
|
||||
$path = null;
|
||||
if (!empty($this->params['path'])) {
|
||||
$path = $this->params['path'];
|
||||
}
|
||||
|
||||
$file = null;
|
||||
$path = $this->_getPath();
|
||||
if (empty($this->params['file'])) {
|
||||
$this->params['file'] = 'schema.php';
|
||||
}
|
||||
|
@ -78,7 +72,6 @@ class SchemaShell extends Shell {
|
|||
}
|
||||
$file = $this->params['file'];
|
||||
|
||||
$connection = null;
|
||||
if (!empty($this->params['connection'])) {
|
||||
$connection = $this->params['connection'];
|
||||
}
|
||||
|
@ -86,6 +79,23 @@ class SchemaShell extends Shell {
|
|||
$this->Schema =& new CakeSchema(compact('name', 'path', 'file', 'connection'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the correct path for the params. Uses path, and plugin to find the correct path.
|
||||
* path param takes precedence over any plugins specified.
|
||||
*
|
||||
* @return mixed string to correct path or null.
|
||||
**/
|
||||
function _getPath() {
|
||||
if (!empty($this->params['path'])) {
|
||||
return $this->params['path'];
|
||||
}
|
||||
if (!empty($this->params['plugin'])) {
|
||||
$pluginPath = $this->_pluginPath($this->params['plugin']);
|
||||
return $pluginPath . 'config' . DS . 'schema' . DS;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override main
|
||||
*
|
||||
|
@ -107,7 +117,8 @@ class SchemaShell extends Shell {
|
|||
$this->out($File->read());
|
||||
$this->_stop();
|
||||
} else {
|
||||
$this->err(__('Schema could not be found', true));
|
||||
$file = $this->Schema->path . DS . $this->params['file'];
|
||||
$this->err(sprintf(__('Schema file (%s) could not be found.', true), $file));
|
||||
$this->_stop();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -90,7 +90,11 @@ class CakeSchema extends Object {
|
|||
}
|
||||
|
||||
if (empty($options['path'])) {
|
||||
$this->path = CONFIGS . 'schema';
|
||||
if (is_dir(CONFIGS . 'schema')) {
|
||||
$this->path = CONFIGS . 'schema';
|
||||
} else {
|
||||
$this->path = CONFIGS . 'sql';
|
||||
}
|
||||
}
|
||||
|
||||
$options = array_merge(get_object_vars($this), $options);
|
||||
|
@ -239,8 +243,6 @@ class CakeSchema extends Object {
|
|||
foreach ($Object->hasAndBelongsToMany as $Assoc => $assocData) {
|
||||
if (isset($assocData['with'])) {
|
||||
$class = $assocData['with'];
|
||||
} elseif ($assocData['_with']) {
|
||||
$class = $assocData['_with'];
|
||||
}
|
||||
if (is_object($Object->$class)) {
|
||||
$table = $db->fullTableName($Object->$class, false);
|
||||
|
|
|
@ -148,7 +148,7 @@ class SchemaShellTest extends CakeTestCase {
|
|||
$this->Shell->startup();
|
||||
$this->assertTrue(isset($this->Shell->Schema));
|
||||
$this->assertTrue(is_a($this->Shell->Schema, 'CakeSchema'));
|
||||
$this->assertEqual(strtolower($this->Shell->Schema->name), APP_DIR);
|
||||
$this->assertEqual(strtolower($this->Shell->Schema->name), strtolower(APP_DIR));
|
||||
$this->assertEqual($this->Shell->Schema->file, 'schema.php');
|
||||
|
||||
unset($this->Shell->Schema);
|
||||
|
@ -168,7 +168,7 @@ class SchemaShellTest extends CakeTestCase {
|
|||
'path' => '/test/path'
|
||||
);
|
||||
$this->Shell->startup();
|
||||
$this->assertEqual(strtolower($this->Shell->Schema->name), APP_DIR);
|
||||
$this->assertEqual(strtolower($this->Shell->Schema->name), strtolower(APP_DIR));
|
||||
$this->assertEqual($this->Shell->Schema->file, 'other_file.php');
|
||||
$this->assertEqual($this->Shell->Schema->connection, 'test_suite');
|
||||
$this->assertEqual($this->Shell->Schema->path, '/test/path');
|
||||
|
@ -354,5 +354,33 @@ class SchemaShellTest extends CakeTestCase {
|
|||
$this->_fixtures['core.article']->create($this->db);
|
||||
}
|
||||
|
||||
/**
|
||||
* test that the plugin param creates the correct path in the schema object.
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function testPluginParam() {
|
||||
App::build(array(
|
||||
'plugins' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS)
|
||||
));
|
||||
$this->Shell->params = array(
|
||||
'plugin' => 'TestPlugin',
|
||||
'connection' => 'test_suite'
|
||||
);
|
||||
$this->Shell->startup();
|
||||
$expected = TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS . 'test_plugin' . DS . 'config' . DS . 'schema' . DS;
|
||||
$this->assertEqual($this->Shell->Schema->path, $expected);
|
||||
|
||||
unset($this->Shell->Schema);
|
||||
$this->Shell->params = array(
|
||||
'plugin' => 'TestPlugin',
|
||||
'connection' => 'test_suite',
|
||||
'path' => '/some/path'
|
||||
);
|
||||
$this->Shell->startup();
|
||||
$expected = '/some/path';
|
||||
$this->assertEqual($this->Shell->Schema->path, $expected);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
Loading…
Reference in a new issue