Adding fix for Set::reverse() XML handling, fixes #4275, plus fixes from previous commit

git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@6551 3807eeeb-6ff5-0310-8944-8be069107fe0
This commit is contained in:
nate 2008-03-10 06:05:31 +00:00
parent 1ddeb7fbfe
commit bacb74a6ef
4 changed files with 19 additions and 11 deletions

View file

@ -100,16 +100,12 @@ class ModelEngine extends CacheEngine {
if (isset($this->settings['serialize'])) {
$data = serialize($data);
}
if (!$data) {
if ($data === '') {
return false;
}
$cache = array('id' => $key,
$this->__fields[0] => $data,
$this->__fields[1] => time() + $duration
);
$cache = array('id' => $key, $this->__fields[0] => $data, $this->__fields[1] => time() + $duration);
$result = false;
if ($this->__Model->save($cache)) {
$result = true;
}

View file

@ -814,6 +814,11 @@ class Set extends Object {
}
}
$camelName = Inflector::camelize($object->name);
unset($parent);
if (isset($child) && is_object($child)) {
$parent =& $child->parent();
}
if (!empty($object->attributes) && !empty($children)) {
$out[$camelName] = array_merge($object->attributes, $children);
@ -821,7 +826,10 @@ class Set extends Object {
$out[$object->name] = array_merge($object->attributes, array('value' => $object->value));
} elseif (!empty($object->attributes)) {
$out[$camelName] = $object->attributes;
} elseif (!empty($children) && (isset($children[$childName][0]) || isset($children[$child->name][0]))) {
} elseif (
(!empty($children) && (isset($children[$childName][0]) || isset($children[$child->name][0]))) ||
(!empty($children) && count($parent->children) > 1 && count($child->children) == 0)
) {
$out = $children;
} elseif (!empty($children)) {
$out[$camelName] = $children;

View file

@ -26,9 +26,7 @@
* @lastmodified $Date$
* @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License
*/
// Include the class to be tested
uses('set');
App::import('Core', 'Set');
/**
* UnitTestCase for the Set class
@ -1083,6 +1081,11 @@ class SetTest extends UnitTestCase {
$result = Set::reverse($xml);
$expected = array('Data' => array('Post' => array('title' => 'Title of this post', 'description' => 'cool')));
$this->assertEqual($result, $expected);
$xml = new Xml('<example><item><title>An example of a correctly reversed XMLNode</title><desc/></item></example>');
$result = Set::reverse($xml);
$expected = array('Item' => array(array('title' => 'An example of a correctly reversed XMLNode')));
$this->assertIdentical($result, $expected);
}
function testStrictKeyCheck() {

View file

@ -416,6 +416,7 @@ class CakeTestCase extends UnitTestCase {
/**
* Initialize DB connection.
*
* @access protected
*/
function _initDb() {
$testDbAvailable = false;