Permalink
Browse files

Merge branch '1.2' of dev@code.cakephp.org:cakephp into 1.2

  • Loading branch information...
markstory committed Aug 31, 2009
2 parents 3cdf89d + a678a60 commit 86f2008d32d7fed5c6afa19e2357927689e18ac5
Showing with 55 additions and 8 deletions.
  1. +16 −8 cake/libs/controller/scaffold.php
  2. +39 −0 cake/tests/cases/libs/controller/scaffold.test.php
@@ -267,11 +267,12 @@ function __scaffoldSave($params = array(), $action = 'edit') {
}
if (!$this->ScaffoldModel->exists()) {
+ $message = sprintf(__("Invalid id for %s::edit()", true), Inflector::humanize($this->modelKey));
if (isset($this->controller->Session) && $this->controller->Session->valid() != false) {
- $this->controller->Session->setFlash(sprintf(__("Invalid id for %s::edit()", true), Inflector::humanize($this->modelKey)));
+ $this->controller->Session->setFlash($message);
$this->controller->redirect($this->redirect);
} else {
- return $this->controller->flash(sprintf(__("Invalid id for %s::edit()", true), Inflector::humanize($this->modelKey)), $this->redirect);
+ return $this->controller->flash($message, $this->redirect);
}
}
}
@@ -283,11 +284,16 @@ function __scaffoldSave($params = array(), $action = 'edit') {
if ($this->ScaffoldModel->save($this->controller->data)) {
if ($this->controller->_afterScaffoldSave($action)) {
+ $message = sprintf(__('The %1$s has been %2$s', true),
+ Inflector::humanize($this->modelKey),
+ $success
+ );
if (isset($this->controller->Session) && $this->controller->Session->valid() != false) {
- $this->controller->Session->setFlash(sprintf(__('The %1$s has been %2$s', true), Inflector::humanize($this->modelClass), $success));
+ $this->controller->Session->setFlash($message);
$this->controller->redirect($this->redirect);
} else {
- return $this->controller->flash(sprintf(__('The %1$s has been %2$s', true), Inflector::humanize($this->modelClass), $success), $this->redirect);
+ $this->controller->flash($message, $this->redirect);
+ return $this->_output();
}
} else {
return $this->controller->_afterScaffoldSaveError($action);
@@ -336,23 +342,25 @@ function __scaffoldDelete($params = array()) {
$this->controller->Session->setFlash(sprintf(__("No id set for %s::delete()", true), Inflector::humanize($this->modelKey)));
$this->controller->redirect($this->redirect);
} else {
- return $this->controller->flash(sprintf(__("No id set for %s::delete()", true), Inflector::humanize($this->modelKey)),
- '/' . Inflector::underscore($this->controller->viewPath));
+ $this->controller->flash(sprintf(__("No id set for %s::delete()", true), Inflector::humanize($this->modelKey)), '/' . Inflector::underscore($this->controller->viewPath));
+ return $this->_output();
}
if ($this->ScaffoldModel->del($id)) {
if (isset($this->controller->Session) && $this->controller->Session->valid() != false) {
$this->controller->Session->setFlash(sprintf(__('The %1$s with id: %2$d has been deleted.', true), Inflector::humanize($this->modelClass), $id));
$this->controller->redirect($this->redirect);
} else {
- return $this->controller->flash(sprintf(__('The %1$s with id: %2$d has been deleted.', true), Inflector::humanize($this->modelClass), $id), '/' . $this->viewPath);
+ $this->controller->flash(sprintf(__('The %1$s with id: %2$d has been deleted.', true), Inflector::humanize($this->modelClass), $id), '/' . $this->viewPath);
+ return $this->_output();
}
} else {
if (isset($this->controller->Session) && $this->controller->Session->valid() != false) {
$this->controller->Session->setFlash(sprintf(__('There was an error deleting the %1$s with id: %2$d', true), Inflector::humanize($this->modelClass), $id));
$this->controller->redirect($this->redirect);
} else {
- return $this->controller->flash(sprintf(__('There was an error deleting the %1$s with id: %2$d', true), Inflector::humanize($this->modelClass), $id), '/' . $this->viewPath);
+ $this->controller->flash(sprintf(__('There was an error deleting the %1$s with id: %2$d', true), Inflector::humanize($this->modelClass), $id), '/' . $this->viewPath);
+ return $this->_output();
}
}
} elseif ($this->controller->_scaffoldError('delete') === false) {
@@ -676,6 +676,45 @@ function testScaffoldVariableSetting() {
$this->assertEqual($result['pluralVar'], 'scaffoldMock');
$this->assertEqual($result['scaffoldFields'], array('id', 'user_id', 'title', 'body', 'published', 'created', 'updated'));
}
+/**
+ * test that scaffold outputs flash messages when sessions are unset.
+ *
+ * @return void
+ **/
+ function testScaffoldFlashMessages() {
+ $this->Controller->action = 'edit';
+ $this->Controller->here = '/scaffold_mock';
+ $this->Controller->webroot = '/';
+ $params = array(
+ 'plugin' => null,
+ 'pass' => array(1),
+ 'form' => array(),
+ 'named' => array(),
+ 'url' => array('url' =>'scaffold_mock'),
+ 'controller' => 'scaffold_mock',
+ 'action' => 'edit',
+ );
+ //set router.
+ Router::reload();
+ Router::setRequestInfo(array($params, array('base' => '/', 'here' => '/scaffold_mock', 'webroot' => '/')));
+ $this->Controller->params = $params;
+ $this->Controller->controller = 'scaffold_mock';
+ $this->Controller->base = '/';
+ $this->Controller->data = array(
+ 'ScaffoldMock' => array(
+ 'id' => 1,
+ 'title' => 'New title',
+ 'body' => 'new body'
+ )
+ );
+ $this->Controller->constructClasses();
+ unset($this->Controller->Session);
+
+ ob_start();
+ new Scaffold($this->Controller, $params);
+ $result = ob_get_clean();
+ $this->assertPattern('/Scaffold Mock has been updated/', $result);
+ }
/**
* test that habtm relationship keys get added to scaffoldFields.
*

0 comments on commit 86f2008

Please sign in to comment.