mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2025-01-31 17:16:18 +00:00
Merge branch '1.3' of git@github.com:cakephp/cakephp1x into 1.3
* '1.3' of git@github.com:cakephp/cakephp1x: Adding tests for and fixing the behavior of `cake acl initdb` it now correctly delegates to SchemaShell. Fixes #608 Making TestTask not depend on Inflection rules for creating directory names, refs #610 Adding tests for Inflector::rules() clearing cached values. Fixes #609 Clear cache of pluralized, singularized and tableize when set rules.
This commit is contained in:
commit
fca070fe9e
5 changed files with 41 additions and 3 deletions
|
@ -379,7 +379,7 @@ class AclShell extends Shell {
|
|||
* @access public
|
||||
*/
|
||||
function initdb() {
|
||||
$this->Dispatch->args = array('schema', 'run', 'create', 'DbAcl');
|
||||
$this->Dispatch->args = array('schema', 'create', 'DbAcl');
|
||||
$this->Dispatch->dispatch();
|
||||
}
|
||||
|
||||
|
|
|
@ -423,7 +423,7 @@ class TestTask extends BakeTask {
|
|||
*/
|
||||
function testCaseFileName($type, $className) {
|
||||
$path = $this->getPath();;
|
||||
$path .= 'cases' . DS . Inflector::tableize($type) . DS;
|
||||
$path .= 'cases' . DS . strtolower($type) . 's' . DS;
|
||||
if (strtolower($type) == 'controller') {
|
||||
$className = $this->getRealClassName($type, $className);
|
||||
}
|
||||
|
|
|
@ -370,6 +370,11 @@ class Inflector {
|
|||
$_this->{$var}[$rule] = array_merge($pattern, $_this->{$var}[$rule]);
|
||||
}
|
||||
unset($rules[$rule], $_this->{$var}['cache' . ucfirst($rule)], $_this->{$var}['merged'][$rule]);
|
||||
if ($type === 'plural') {
|
||||
$_this->_pluralized = $_this->_tableize = array();
|
||||
} elseif ($type === 'singular') {
|
||||
$_this->_singularized = array();
|
||||
}
|
||||
}
|
||||
}
|
||||
$_this->{$var}['rules'] = array_merge($rules, $_this->{$var}['rules']);
|
||||
|
|
|
@ -36,7 +36,7 @@ if (!class_exists('AclShell')) {
|
|||
|
||||
Mock::generatePartial(
|
||||
'ShellDispatcher', 'TestAclShellMockShellDispatcher',
|
||||
array('getInput', 'stdout', 'stderr', '_stop', '_initEnvironment')
|
||||
array('getInput', 'stdout', 'stderr', '_stop', '_initEnvironment', 'dispatch')
|
||||
);
|
||||
Mock::generatePartial(
|
||||
'AclShell', 'MockAclShell',
|
||||
|
@ -331,5 +331,17 @@ class AclShellTest extends CakeTestCase {
|
|||
$this->Task->expectAt(3, 'out', array(' [4] Elrond'));
|
||||
$this->Task->getPath();
|
||||
}
|
||||
|
||||
/**
|
||||
* test that initdb makes the correct call.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function testInitDb() {
|
||||
$this->Task->Dispatch->expectOnce('dispatch');
|
||||
$this->Task->initdb();
|
||||
|
||||
$this->assertEqual($this->Task->Dispatch->args, array('schema', 'create', 'DbAcl'));
|
||||
}
|
||||
}
|
||||
?>
|
|
@ -400,6 +400,27 @@ class InflectorTest extends CakeTestCase {
|
|||
$this->assertEqual(Inflector::slug('Testing æ ø å', '-', array('/ø/' => 'oe')), 'Testing-ae-oe-aa');
|
||||
}
|
||||
|
||||
/**
|
||||
* test that setting new rules clears the inflector caches.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function testRulesClearsCaches() {
|
||||
$this->assertEqual(Inflector::singularize('Bananas'), 'Banana');
|
||||
$this->assertEqual(Inflector::tableize('Banana'), 'bananas');
|
||||
$this->assertEqual(Inflector::pluralize('Banana'), 'Bananas');
|
||||
|
||||
Inflector::rules('singular', array(
|
||||
'rules' => array('/(.*)nas$/i' => '\1zzz')
|
||||
));
|
||||
$this->assertEqual(Inflector::singularize('Bananas'), 'Banazzz', 'Was inflected with old rules. %s');
|
||||
|
||||
Inflector::rules('plural', array(
|
||||
'rules' => array('/(.*)na$/i' => '\1zzz')
|
||||
));
|
||||
$this->assertEqual(Inflector::pluralize('Banana'), 'Banazzz', 'Was inflected with old rules. %s');
|
||||
}
|
||||
|
||||
/**
|
||||
* Test resetting inflection rules.
|
||||
*
|
||||
|
|
Loading…
Add table
Reference in a new issue