Permalink
Browse files

Adding another test for #250.

  • Loading branch information...
1 parent 9cb15be commit 29d1314c8a1fdcc494e778c7fd5964bf8b93bb86 @markstory markstory committed Sep 29, 2010
Showing with 48 additions and 2 deletions.
  1. +29 −1 cake/tests/cases/libs/model/model_delete.test.php
  2. +19 −1 cake/tests/cases/libs/model/models.php
@@ -635,6 +635,34 @@ function testDeleteHabtmPostgresFailure() {
// Removing Article #2 from Tag #1 is all that should have happened.
$this->assertEqual(count($before[0]["Tag"]), count($after[0]["Tag"]));
}
+
+/**
+ * test that deleting records inside the beforeDelete doesn't truncate the table.
+ *
+ * @return void
+ */
+ function testBeforeDeleteWipingTable() {
+ $this->loadFixtures('Comment');
+
+ $Comment =& new BeforeDeleteComment();
+ // Delete 3 records.
+ $Comment->delete(4);
+ $result = $Comment->find('count');
+
+ $this->assertTrue($result > 1, 'Comments are all gone.');
+ $Comment->create(array(
+ 'article_id' => 1,
+ 'user_id' => 2,
+ 'comment' => 'new record',
+ 'published' => 'Y'
+ ));
+ $Comment->save();
+
+ $Comment->delete(5);
+ $result = $Comment->find('count');
+
+ $this->assertTrue($result > 1, 'Comments are all gone.');
+ }
}
-?>
+?>
@@ -259,6 +259,24 @@ function titleDuplicate ($title) {
}
}
/**
+ * Model stub for beforeDelete testing
+ *
+ * @see #250
+ * @package cake.tests
+ */
+class BeforeDeleteComment extends CakeTestModel {
+ var $name = 'BeforeDeleteComment';
+
+ var $useTable = 'comments';
+
+ function beforeDelete($cascade = true) {
+ $db =& $this->getDataSource();
+ $db->delete($this, array($this->alias . '.' . $this->primaryKey => array(1, 3)));
+ return true;
+ }
+}
+
+/**
* NumericArticle class
*
* @package cake
@@ -3161,4 +3179,4 @@ class GroupUpdateAll extends CakeTestModel {
}
-?>
+?>

0 comments on commit 29d1314

Please sign in to comment.