Skip to content

Commit

Permalink
cascade false for recover
Browse files Browse the repository at this point in the history
  • Loading branch information
euromark committed Nov 13, 2012
1 parent 22f65f7 commit 354069d
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 13 deletions.
4 changes: 2 additions & 2 deletions lib/Cake/Model/Behavior/TreeBehavior.php
Expand Up @@ -622,9 +622,9 @@ public function recover(Model $Model, $mode = 'parent', $missingParentAction = n
}
return false;
} elseif ($missingParentAction === 'delete') {
$Model->deleteAll(array($Model->alias . '.' . $Model->primaryKey => array_flip($missingParents)));
$Model->deleteAll(array($Model->escapeField($Model->primaryKey) => array_flip($missingParents)), false);
} else {
$Model->updateAll(array($parent => $missingParentAction), array($Model->escapeField($Model->primaryKey) => array_flip($missingParents)));
$Model->updateAll(array($Model->escapeField($parent) => $missingParentAction), array($Model->escapeField($Model->primaryKey) => array_flip($missingParents)));
}
}
$count = 1;
Expand Down
31 changes: 20 additions & 11 deletions lib/Cake/Test/Case/Model/Behavior/TreeBehaviorNumberTest.php
Expand Up @@ -183,19 +183,19 @@ public function testRecoverUsingParentMode() {
$this->Tree = new $modelClass();
$this->Tree->Behaviors->disable('Tree');

$this->Tree->save(array('parent_id' => null, 'name' => 'Main', $parentField => null, $leftField => 0, $rightField => 0));
$this->Tree->save(array('name' => 'Main', $parentField => null, $leftField => 0, $rightField => 0));
$node1 = $this->Tree->id;

$this->Tree->create();
$this->Tree->save(array('parent_id' => null, 'name' => 'About Us', $parentField => $node1, $leftField => 0, $rightField => 0));
$this->Tree->save(array('name' => 'About Us', $parentField => $node1, $leftField => 0, $rightField => 0));
$node11 = $this->Tree->id;
$this->Tree->create();
$this->Tree->save(array('parent_id' => null, 'name' => 'Programs', $parentField => $node1, $leftField => 0, $rightField => 0));
$this->Tree->save(array('name' => 'Programs', $parentField => $node1, $leftField => 0, $rightField => 0));
$node12 = $this->Tree->id;
$this->Tree->create();
$this->Tree->save(array('parent_id' => null, 'name' => 'Mission and History', $parentField => $node11, $leftField => 0, $rightField => 0));
$this->Tree->save(array('name' => 'Mission and History', $parentField => $node11, $leftField => 0, $rightField => 0));
$this->Tree->create();
$this->Tree->save(array('parent_id' => null, 'name' => 'Overview', $parentField => $node12, $leftField => 0, $rightField => 0));
$this->Tree->save(array('name' => 'Overview', $parentField => $node12, $leftField => 0, $rightField => 0));

$this->Tree->Behaviors->enable('Tree');

Expand Down Expand Up @@ -234,24 +234,33 @@ public function testRecoverUsingParentModeAndDelete() {
$this->Tree = new $modelClass();
$this->Tree->Behaviors->disable('Tree');

$this->Tree->save(array('parent_id' => null, 'name' => 'Main', $parentField => null, $leftField => 0, $rightField => 0));
$this->Tree->save(array('name' => 'Main', $parentField => null, $leftField => 0, $rightField => 0));
$node1 = $this->Tree->id;

$this->Tree->create();
$this->Tree->save(array('parent_id' => null, 'name' => 'About Us', $parentField => $node1, $leftField => 0, $rightField => 0));
$this->Tree->save(array('name' => 'About Us', $parentField => $node1, $leftField => 0, $rightField => 0));
$node11 = $this->Tree->id;
$this->Tree->create();
$this->Tree->save(array('parent_id' => null, 'name' => 'Programs', $parentField => $node1, $leftField => 0, $rightField => 0));
$this->Tree->save(array('name' => 'Programs', $parentField => $node1, $leftField => 0, $rightField => 0));
$node12 = $this->Tree->id;
$this->Tree->create();
$this->Tree->save(array('parent_id' => null, 'name' => 'Mission and History', $parentField => $node11, $leftField => 0, $rightField => 0));
$this->Tree->save(array('name' => 'Mission and History', $parentField => $node11, $leftField => 0, $rightField => 0));
$this->Tree->create();
$this->Tree->save(array('parent_id' => null, 'name' => 'Overview', $parentField => $node12, $leftField => 0, $rightField => 0));
$this->Tree->save(array('name' => 'Overview', $parentField => $node12, $leftField => 0, $rightField => 0));
$this->Tree->create();
$this->Tree->save(array('parent_id' => null, 'name' => 'Lost', $parentField => 9, $leftField => 0, $rightField => 0));
$this->Tree->save(array('name' => 'Lost', $parentField => 9, $leftField => 0, $rightField => 0));

$this->Tree->Behaviors->enable('Tree');

$this->Tree->bindModel(array('belongsTo' => array('Parent' => array(
'className' => $this->Tree->name,
'foreignKey' => $parentField
))));
$this->Tree->bindModel(array('hasMany' => array('Child' => array(
'className' => $this->Tree->name,
'foreignKey' => $parentField
))));

$result = $this->Tree->verify();
$this->assertNotSame($result, true);

Expand Down

0 comments on commit 354069d

Please sign in to comment.