Permalink
Browse files

Adding another test for #250.

  • Loading branch information...
1 parent 500550f commit 9992cff96c48842de23147e4dc6925c7e7c657f0 @markstory markstory committed Sep 29, 2010
Showing with 46 additions and 0 deletions.
  1. +28 −0 cake/tests/cases/libs/model/model_delete.test.php
  2. +18 −0 cake/tests/cases/libs/model/models.php
@@ -708,4 +708,32 @@ 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.');
+ }
}
@@ -283,6 +283,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

0 comments on commit 9992cff

Please sign in to comment.