Browse Source

Merge branch 'master' into 2.6

ADmad 11 years ago
parent
commit
713f430fc4

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

@@ -197,7 +197,7 @@ class Cache {
 
 /**
  * Drops a cache engine. Deletes the cache configuration information
- * If the deleted configuration is the last configuration using an certain engine,
+ * If the deleted configuration is the last configuration using a certain engine,
  * the Engine instance is also unset.
  *
  * @param string $name A currently configured cache config you wish to remove.

+ 1 - 1
lib/Cake/Console/Command/Task/FixtureTask.php

@@ -381,7 +381,7 @@ class FixtureTask extends BakeTask {
 	}
 
 /**
- * Convert a $records array into a a string.
+ * Convert a $records array into a string.
  *
  * @param array $records Array of records to be converted to string
  * @return string A string value of the $records array.

+ 1 - 1
lib/Cake/Console/Command/Task/ViewTask.php

@@ -248,7 +248,7 @@ class ViewTask extends BakeTask {
  *	'singularHumanName', 'pluralHumanName', 'fields', 'foreignKeys',
  *	'belongsTo', 'hasOne', 'hasMany', 'hasAndBelongsToMany'
  *
- * @return array Returns an variables to be made available to a view template
+ * @return array Returns a variables to be made available to a view template
  */
 	protected function _loadController() {
 		if (!$this->controllerName) {

+ 1 - 1
lib/Cake/Console/ConsoleErrorHandler.php

@@ -47,7 +47,7 @@ class ConsoleErrorHandler {
 	}
 
 /**
- * Handle a exception in the console environment. Prints a message to stderr.
+ * Handle an exception in the console environment. Prints a message to stderr.
  *
  * @param Exception $exception The exception to handle
  * @return void

+ 1 - 1
lib/Cake/Console/ConsoleOutput.php

@@ -170,7 +170,7 @@ class ConsoleOutput {
  * Outputs a single or multiple messages to stdout. If no parameters
  * are passed, outputs just a newline.
  *
- * @param string|array $message A string or a an array of strings to output
+ * @param string|array $message A string or an array of strings to output
  * @param int $newlines Number of newlines to append
  * @return int Returns the number of bytes returned from writing to stdout.
  */

+ 1 - 1
lib/Cake/Console/HelpFormatter.php

@@ -45,7 +45,7 @@ class HelpFormatter {
 	protected $_maxOptions = 6;
 
 /**
- * Build the help formatter for a an OptionParser
+ * Build the help formatter for an OptionParser
  *
  * @param ConsoleOptionParser $parser The option parser help is being generated for.
  */

+ 2 - 2
lib/Cake/Console/Shell.php

@@ -602,7 +602,7 @@ class Shell extends Object {
  * present in most shells. Using Shell::QUIET for a message means it will always display.
  * While using Shell::VERBOSE means it will only display when verbose output is toggled.
  *
- * @param string|array $message A string or a an array of strings to output
+ * @param string|array $message A string or an array of strings to output
  * @param int $newlines Number of newlines to append
  * @param int $level The message's output level, see above.
  * @return int|bool Returns the number of bytes returned from writing to stdout.
@@ -659,7 +659,7 @@ class Shell extends Object {
  * Outputs a single or multiple error messages to stderr. If no parameters
  * are passed outputs just a newline.
  *
- * @param string|array $message A string or a an array of strings to output
+ * @param string|array $message A string or an array of strings to output
  * @param int $newlines Number of newlines to append
  * @return void
  * @link http://book.cakephp.org/2.0/en/console-and-shells.html#Shell::err

+ 1 - 1
lib/Cake/Controller/Component/RequestHandlerComponent.php

@@ -506,7 +506,7 @@ class RequestHandlerComponent extends Component {
  *   in the request content type will be returned.
  */
 	public function requestedWith($type = null) {
-		if (!$this->request->is('post') && !$this->request->is('put')) {
+		if (!$this->request->is('post') && !$this->request->is('put') && !$this->request->is('delete')) {
 			return null;
 		}
 		if (is_array($type)) {

+ 1 - 1
lib/Cake/Core/App.php

@@ -590,7 +590,7 @@ class App {
  * not construct any classes contained in the files. It will only find and require() the file.
  *
  * @param string|array $type The type of Class if passed as a string, or all params can be passed as
- *   an single array to $type.
+ *   a single array to $type.
  * @param string $name Name of the Class or a unique name for the file
  * @param bool|array $parent boolean true if Class Parent should be searched, accepts key => value
  *   array('parent' => $parent, 'file' => $file, 'search' => $search, 'ext' => '$ext');

+ 1 - 1
lib/Cake/Core/CakePlugin.php

@@ -33,7 +33,7 @@ class CakePlugin {
 	protected static $_plugins = array();
 
 /**
- * Loads a plugin and optionally loads bootstrapping, routing files or loads a initialization function
+ * Loads a plugin and optionally loads bootstrapping, routing files or loads an initialization function
  *
  * Examples:
  *

+ 1 - 1
lib/Cake/Error/ExceptionRenderer.php

@@ -35,7 +35,7 @@ App::uses('Controller', 'Controller');
  *
  * You can implement application specific exception handling in one of a few ways:
  *
- * - Create a AppController::appError();
+ * - Create an AppController::appError();
  * - Create a subclass of ExceptionRenderer and configure it to be the `Exception.renderer`
  *
  * #### Using AppController::appError();

+ 1 - 1
lib/Cake/Model/Datasource/Database/Mysql.php

@@ -700,7 +700,7 @@ class Mysql extends DboSource {
 	}
 
 /**
- * Returns an detailed array of sources (tables) in the database.
+ * Returns a detailed array of sources (tables) in the database.
  *
  * @param string $name Table name to get parameters
  * @return array Array of table names in the database

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

@@ -3246,7 +3246,7 @@ class DboSource extends DataSource {
 	}
 
 /**
- * Generate a alter syntax from CakeSchema::compare()
+ * Generate an alter syntax from CakeSchema::compare()
  *
  * @param mixed $compare The comparison data.
  * @param string $table The table name.

+ 2 - 2
lib/Cake/Network/CakeResponse.php

@@ -954,7 +954,7 @@ class CakeResponse {
 	}
 
 /**
- * Sets the Last-Modified header for the response by taking an modification time
+ * Sets the Last-Modified header for the response by taking a modification time
  * If called with no parameters it will return the current Last-Modified value
  *
  * ## Examples:
@@ -1007,7 +1007,7 @@ class CakeResponse {
  * parameters are passed, then an array with the current Vary header
  * value is returned
  *
- * @param string|array $cacheVariances a single Vary string or a array
+ * @param string|array $cacheVariances a single Vary string or an array
  *   containing the list for variances.
  * @return array
  */

+ 1 - 1
lib/Cake/Routing/Router.php

@@ -1206,7 +1206,7 @@ class Router {
 /**
  * Instructs the router to parse out file extensions from the URL.
  *
- * For example, http://example.com/posts.rss would yield an file extension of "rss".
+ * For example, http://example.com/posts.rss would yield a file extension of "rss".
  * The file extension itself is made available in the controller as
  * `$this->params['ext']`, and is used by the RequestHandler component to
  * automatically switch to alternate layouts and templates, and load helpers

+ 3 - 0
lib/Cake/Test/Case/Controller/Component/RequestHandlerComponentTest.php

@@ -601,6 +601,9 @@ class RequestHandlerComponentTest extends CakeTestCase {
 		$result = $this->RequestHandler->requestedWith(array('rss', 'atom'));
 		$this->assertFalse($result);
 
+		$_SERVER['REQUEST_METHOD'] = 'DELETE';
+		$this->assertEquals('json', $this->RequestHandler->requestedWith());
+
 		$_SERVER['REQUEST_METHOD'] = 'POST';
 		unset($_SERVER['CONTENT_TYPE']);
 		$_SERVER['HTTP_CONTENT_TYPE'] = 'application/json';

+ 71 - 2
lib/Cake/Test/Case/Controller/ScaffoldTest.php

@@ -63,7 +63,7 @@ class ScaffoldMockControllerWithFields extends Controller {
 /**
  * function beforeScaffold
  *
- * @param string method
+ * @param string $method Method name.
  * @return bool true
  */
 	public function beforeScaffold($method) {
@@ -74,6 +74,39 @@ class ScaffoldMockControllerWithFields extends Controller {
 }
 
 /**
+ * ScaffoldMockControllerWithError class
+ *
+ * @package       Cake.Test.Case.Controller
+ */
+class ScaffoldMockControllerWithError extends Controller {
+
+/**
+ * name property
+ *
+ * @var string
+ */
+	public $name = 'ScaffoldMock';
+
+/**
+ * scaffold property
+ *
+ * @var mixed
+ */
+	public $scaffold;
+
+/**
+ * function beforeScaffold
+ *
+ * @param string $method Method name.
+ * @return bool false
+ */
+	public function beforeScaffold($method) {
+		return false;
+	}
+
+}
+
+/**
  * TestScaffoldMock class
  *
  * @package       Cake.Test.Case.Controller
@@ -83,7 +116,7 @@ class TestScaffoldMock extends Scaffold {
 /**
  * Overload _scaffold
  *
- * @param CakeRequest $request
+ * @param CakeRequest $request Request object for scaffolding
  * @return void
  */
 	protected function _scaffold(CakeRequest $request) {
@@ -344,4 +377,40 @@ class ScaffoldTest extends CakeTestCase {
 		$this->assertNotRegExp('/textarea name="data\[ScaffoldMock\]\[body\]" cols="30" rows="6" id="ScaffoldMockBody"/', $result);
 	}
 
+/**
+ * test in case of scaffold error
+ *
+ * @return void
+ */
+	public function testScaffoldError() {
+		$request = new CakeRequest(null, false);
+		$this->Controller = new ScaffoldMockControllerWithError($request);
+		$this->Controller->response = $this->getMock('CakeResponse', array('_sendHeader'));
+
+		$params = array(
+			'plugin' => null,
+			'pass' => array(1),
+			'form' => array(),
+			'named' => array(),
+			'url' => array('url' => 'scaffold_mock/edit'),
+			'controller' => 'scaffold_mock',
+			'action' => 'edit',
+		);
+		$this->Controller->request->base = '';
+		$this->Controller->request->webroot = '/';
+		$this->Controller->request->here = '/scaffold_mock/edit';
+		$this->Controller->request->addParams($params);
+
+		//set router.
+		Router::reload();
+		Router::setRequestInfo($this->Controller->request);
+
+		$this->Controller->constructClasses();
+		ob_start();
+		new Scaffold($this->Controller, $this->Controller->request);
+		$this->Controller->response->send();
+		$result = ob_get_clean();
+
+		$this->assertRegExp('/Scaffold Error/', $result);
+	}
 }

+ 2 - 1
lib/Cake/Test/Case/Utility/ValidationTest.php

@@ -1462,10 +1462,11 @@ class ValidationTest extends CakeTestCase {
 		$this->assertTrue(Validation::date('2008', array('y')));
 		$this->assertTrue(Validation::date('2013', array('y')));
 		$this->assertTrue(Validation::date('2104', array('y')));
+		$this->assertTrue(Validation::date('1899', array('y')));
 		$this->assertFalse(Validation::date('20009', array('y')));
 		$this->assertFalse(Validation::date(' 2012', array('y')));
 		$this->assertFalse(Validation::date('3000', array('y')));
-		$this->assertFalse(Validation::date('1899', array('y')));
+		$this->assertFalse(Validation::date('1799', array('y')));
 	}
 
 /**

+ 1 - 1
lib/Cake/Utility/File.php

@@ -197,7 +197,7 @@ class File {
 	}
 
 /**
- * Prepares a ASCII string for writing. Converts line endings to the
+ * Prepares an ASCII string for writing. Converts line endings to the
  * correct terminator for the current platform. If Windows, "\r\n" will be used,
  * all other platforms will use "\n"
  *

+ 1 - 1
lib/Cake/Utility/ObjectCollection.php

@@ -234,7 +234,7 @@ abstract class ObjectCollection {
 	}
 
 /**
- * Disables callbacks on a object or array of objects. Public object methods are still
+ * Disables callbacks on an object or array of objects. Public object methods are still
  * callable as normal.
  *
  * @param string|array $name CamelCased name of the objects(s) to disable (string or array)

+ 1 - 1
lib/Cake/Utility/Set.php

@@ -910,7 +910,7 @@ class Set {
 	}
 
 /**
- * Expand/unflattens an string to an array
+ * Expand/unflattens a string to an array
  *
  * For example, unflattens an array that was collapsed with `Set::flatten()`
  * into a multi-dimensional array. So, `array('0.Foo.Bar' => 'Far')` becomes

+ 4 - 2
lib/Cake/Utility/Validation.php

@@ -292,7 +292,9 @@ class Validation {
 
 /**
  * Date validation, determines if the string passed is a valid date.
- * keys that expect full month, day and year will validate leap years
+ * keys that expect full month, day and year will validate leap years.
+ *
+ * Years are valid from 1800 to 2999.
  *
  * ### Formats:
  *
@@ -318,7 +320,7 @@ class Validation {
 		}
 		$month = '(0[123456789]|10|11|12)';
 		$separator = '([- /.])';
-		$fourDigitYear = '(([1][9][0-9][0-9])|([2][0-9][0-9][0-9]))';
+		$fourDigitYear = '(([1][8-9][0-9][0-9])|([2][0-9][0-9][0-9]))';
 		$twoDigitYear = '([0-9]{2})';
 		$year = '(?:' . $fourDigitYear . '|' . $twoDigitYear . ')';
 

+ 1 - 1
lib/Cake/Utility/Xml.php

@@ -325,7 +325,7 @@ class Xml {
 	}
 
 /**
- * Returns this XML structure as a array.
+ * Returns this XML structure as an array.
  *
  * @param SimpleXMLElement|DOMDocument|DOMNode $obj SimpleXMLElement, DOMDocument or DOMNode instance
  * @return array Array representation of the XML structure.

+ 5 - 1
lib/Cake/View/Errors/scaffold_error.ctp

@@ -31,4 +31,8 @@ function _scaffoldError() {<br />
 
 </pre>
 
-<?php echo $this->element('exception_stack_trace'); ?>
+<?php
+if (isset($error) && $error instanceof Exception) {
+	echo $this->element('exception_stack_trace'); 
+}
+?>

+ 5 - 5
lib/Cake/View/Helper/FormHelper.php

@@ -329,7 +329,7 @@ class FormHelper extends AppHelper {
  *   If an array is passed and $options argument is empty, the array will be used as options.
  *   If `false` no model is used.
  * @param array $options An array of html attributes and options.
- * @return string An formatted opening FORM tag.
+ * @return string A formatted opening FORM tag.
  * @link http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#options-for-create
  */
 	public function create($model = null, $options = array()) {
@@ -1483,7 +1483,7 @@ class FormHelper extends AppHelper {
  * - `hiddenField` - boolean to indicate if you want the results of radio() to include
  *    a hidden input with a value of ''. This is useful for creating radio sets that non-continuous
  * - `disabled` - Set to `true` or `disabled` to disable all the radio buttons.
- * - `empty` - Set to `true` to create a input with the value '' as the first option. When `true`
+ * - `empty` - Set to `true` to create an input with the value '' as the first option. When `true`
  *   the radio label will be 'empty'. Set this option to a string to control the label value.
  *
  * @param string $fieldName Name of a field, like this "Modelname.fieldname"
@@ -2258,7 +2258,7 @@ class FormHelper extends AppHelper {
  * ### Attributes:
  *
  * - `monthNames` - If false, 2 digit numbers will be used instead of text.
- *   If a array, the given array will be used.
+ *   If an array, the given array will be used.
  * - `empty` - If true, the empty select option is shown. If a string,
  *   that string is displayed as the empty element.
  * - `value` The selected value of the input.
@@ -2456,7 +2456,7 @@ class FormHelper extends AppHelper {
  * ### Attributes:
  *
  * - `monthNames` If false, 2 digit numbers will be used instead of text.
- *   If a array, the given array will be used.
+ *   If an array, the given array will be used.
  * - `minYear` The lowest year to use in the year select
  * - `maxYear` The maximum year to use in the year select
  * - `interval` The interval for the minutes select. Defaults to 1
@@ -2934,7 +2934,7 @@ class FormHelper extends AppHelper {
  *   Disabling the field using the `disabled` option, will also omit the field from being
  *   part of the hashed key.
  *
- * This method will convert a numerically indexed 'disabled' into a associative
+ * This method will convert a numerically indexed 'disabled' into an associative
  * value. FormHelper's internals expect associative options.
  *
  * @param string $field Name of the field to initialize options for.

+ 1 - 1
lib/Cake/View/Helper/HtmlHelper.php

@@ -512,7 +512,7 @@ class HtmlHelper extends AppHelper {
  *
  * Add the script file to a custom block:
  *
- * `$this->Html->script('styles.js', null, array('block' => 'bodyScript'));`
+ * `$this->Html->script('styles.js', array('block' => 'bodyScript'));`
  *
  * ### Options
  *

+ 1 - 1
lib/Cake/View/Helper/JsBaseEngineHelper.php

@@ -476,7 +476,7 @@ abstract class JsBaseEngineHelper extends AppHelper {
 	abstract public function serializeForm($options = array());
 
 /**
- * Parse an options assoc array into an JavaScript object literal.
+ * Parse an options assoc array into a JavaScript object literal.
  * Similar to object() but treats any non-integer value as a string,
  * does not include `{ }`
  *

+ 1 - 1
lib/Cake/View/Helper/MootoolsEngineHelper.php

@@ -225,7 +225,7 @@ class MootoolsEngineHelper extends JsBaseEngineHelper {
 	}
 
 /**
- * Create an new Request.
+ * Create a new Request.
  *
  * Requires `Request`. If you wish to use 'update' key you must have ```Request.HTML```
  * if you wish to do Json requests you will need ```JSON``` and ```Request.JSON```.