Browse Source

Fix messages being deleted to eagerly.

euromark 11 years ago
parent
commit
ab19357218
2 changed files with 14 additions and 3 deletions
  1. 8 0
      Test/Case/View/Helper/CommonHelperTest.php
  2. 6 3
      View/Helper/CommonHelper.php

+ 8 - 0
Test/Case/View/Helper/CommonHelperTest.php

@@ -64,6 +64,14 @@ class CommonHelperTest extends MyCakeTestCase {
 		$result = $this->Common->flash(array('warning', 'error'));
 		$expected = '<div class="flashMessages"><div class="message warning">I am a warning</div><div class="message error">I am an error</div></div>';
 		$this->assertEquals($expected, $result);
+
+		$result = $this->Common->flash(array('info'));
+		$expected = '<div class="flashMessages"><div class="message info">I am some info</div><div class="message info">I am also some info</div></div>';
+		$this->assertEquals($expected, $result);
+
+		$result = $this->Common->flash();
+		$expected = '<div class="flashMessages"><div class="message custom">I am sth custom</div></div>';
+		$this->assertEquals($expected, $result);
 	}
 
 	/**

+ 6 - 3
View/Helper/CommonHelper.php

@@ -49,12 +49,15 @@ class CommonHelper extends AppHelper {
 				}
 			}
 			$html .= '</div>';
-			if (method_exists($this->Session, 'delete')) {
-				$this->Session->delete('messages');
+			if ($types) {
+				foreach ($types as $type) {
+					CakeSession::delete('messages.' . $type);
+					Configure::delete('messages.' . $type);
+				}
 			} else {
 				CakeSession::delete('messages');
+				Configure::delete('messages');
 			}
-			Configure::delete('messages');
 		}
 
 		return $html;