Browse Source

Revert "Fix null not stopping model callbacks."

This reverts commit 82a8400deff6fe56f3ea2b3bc8c59556419d1075.

The previous change broke a number of tests as existing tests expect
that a return value of null will not stop events.
mark_story 13 years ago
parent
commit
7d2cbec79d

+ 0 - 4
lib/Cake/Event/CakeEventManager.php

@@ -248,10 +248,6 @@ class CakeEventManager {
 			if ($result === false) {
 				$event->stopPropagation();
 			}
-			// TODO remove this in 3.0 as its a compatibility shim for model callbacks.
-			if (isset($event->break, $event->breakOn) && in_array($result, (array)$event->breakOn)) {
-				$event->stopPropagation();
-			}
 			if ($result !== null) {
 				$event->result = $result;
 			}

+ 1 - 1
lib/Cake/Model/Model.php

@@ -1667,7 +1667,7 @@ class Model extends Object implements CakeEventListener {
 			$event = new CakeEvent('Model.beforeSave', $this, array($options));
 			list($event->break, $event->breakOn) = array(true, array(false, null));
 			$this->getEventManager()->dispatch($event);
-			if ($event->isStopped()) {
+			if (!$event->result) {
 				$this->whitelist = $_whitelist;
 				return false;
 			}

+ 0 - 39
lib/Cake/Test/Case/Model/ModelWriteTest.php

@@ -540,25 +540,6 @@ class ModelWriteTest extends BaseModelTest {
 	}
 
 /**
- * test that beforeValidate returning false can abort saves.
- *
- * @return void
- */
-	public function testBeforeValidateNullSaveAbortion() {
-		$this->loadFixtures('Post');
-		$Model = new CallbackPostTestModel();
-		$Model->beforeValidateReturn = null;
-
-		$data = array(
-			'title' => 'new article',
-			'body' => 'this is some text.'
-		);
-		$Model->create();
-		$result = $Model->save($data);
-		$this->assertFalse($result);
-	}
-
-/**
  * test that beforeSave returning false can abort saves.
  *
  * @return void
@@ -578,26 +559,6 @@ class ModelWriteTest extends BaseModelTest {
 	}
 
 /**
- * Test that beforeSave returnning null can abort saves.
- *
- * @return void
- */
-	public function testBeforeSaveNullAbort() {
-		$this->loadFixtures('Post');
-		$Model = new CallbackPostTestModel();
-		$Model->beforeSaveReturn = null;
-
-		$data = array(
-			'title' => 'new article',
-			'body' => 'this is some text.'
-		);
-		$Model->create();
-		$result = $Model->save($data);
-		$this->assertFalse($result);
-
-	}
-
-/**
  * testSaveField method
  *
  * @return void