mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2025-01-19 02:56:15 +00:00
Merge branch '1.3' into 1.3-bake
Conflicts: cake/console/libs/tasks/model.php
This commit is contained in:
commit
7eb150b49a
50 changed files with 1385 additions and 370 deletions
|
@ -184,6 +184,11 @@
|
|||
*/
|
||||
Configure::write('Acl.classname', 'DbAcl');
|
||||
Configure::write('Acl.database', 'default');
|
||||
/**
|
||||
* If you are on PHP 5.3 uncomment this line and correct your server timezone
|
||||
* to fix the date & time related errors.
|
||||
*/
|
||||
//date_default_timezone_set('UTC');
|
||||
/**
|
||||
*
|
||||
* Cache Engine Configuration
|
||||
|
|
|
@ -24,7 +24,14 @@
|
|||
* @lastmodified $Date$
|
||||
* @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License
|
||||
*/
|
||||
error_reporting(E_ALL);
|
||||
/**
|
||||
* PHP 5.3 raises many notices in bootstrap.
|
||||
*/
|
||||
if (!defined('E_DEPRECATED')) {
|
||||
define('E_DEPRECATED', 8192);
|
||||
}
|
||||
error_reporting(E_ALL & ~E_DEPRECATED);
|
||||
|
||||
set_time_limit(0);
|
||||
ini_set('memory_limit','128M');
|
||||
ini_set('display_errors', 1);
|
||||
|
|
|
@ -22,6 +22,11 @@
|
|||
if (!defined('PHP5')) {
|
||||
define('PHP5', (PHP_VERSION >= 5));
|
||||
}
|
||||
if (!defined('E_DEPRECATED')) {
|
||||
define('E_DEPRECATED', 8192);
|
||||
}
|
||||
error_reporting(E_ALL & ~E_DEPRECATED);
|
||||
|
||||
require CORE_PATH . 'cake' . DS . 'basics.php';
|
||||
$TIME_START = getMicrotime();
|
||||
require CORE_PATH . 'cake' . DS . 'config' . DS . 'paths.php';
|
||||
|
|
|
@ -135,15 +135,21 @@ class ShellDispatcher {
|
|||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param array $args the argv.
|
||||
* The execution of the script is stopped after dispatching the request with
|
||||
* a status code of either 0 or 1 according to the result of the dispatch.
|
||||
*
|
||||
* @param array $args the argv
|
||||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function __construct($args = array()) {
|
||||
set_time_limit(0);
|
||||
|
||||
$this->__initConstants();
|
||||
$this->parseParams($args);
|
||||
$this->_initEnvironment();
|
||||
$this->__buildPaths();
|
||||
$this->_stop($this->dispatch());
|
||||
$this->_stop($this->dispatch() === false ? 1 : 0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -305,118 +311,134 @@ class ShellDispatcher {
|
|||
/**
|
||||
* Dispatches a CLI request
|
||||
*
|
||||
* @return boolean
|
||||
* @access public
|
||||
*/
|
||||
function dispatch() {
|
||||
if (isset($this->args[0])) {
|
||||
$plugin = null;
|
||||
$shell = $this->args[0];
|
||||
if (strpos($shell, '.') !== false) {
|
||||
list($plugin, $shell) = explode('.', $this->args[0]);
|
||||
$arg = $this->shiftArgs();
|
||||
|
||||
if (!$arg) {
|
||||
$this->help();
|
||||
return false;
|
||||
}
|
||||
if ($arg == 'help') {
|
||||
$this->help();
|
||||
return true;
|
||||
}
|
||||
|
||||
if (strpos($arg, '.') !== false) {
|
||||
list($plugin, $shell) = explode('.', $arg);
|
||||
} else {
|
||||
$plugin = null;
|
||||
$shell = $arg;
|
||||
}
|
||||
$this->shell = $shell;
|
||||
$this->shiftArgs();
|
||||
$this->shellName = Inflector::camelize($this->shell);
|
||||
$this->shellName = Inflector::camelize($shell);
|
||||
$this->shellClass = $this->shellName . 'Shell';
|
||||
|
||||
if ($this->shell === 'help') {
|
||||
$this->help();
|
||||
$arg = null;
|
||||
|
||||
if (isset($this->args[0])) {
|
||||
$arg = $this->args[0];
|
||||
$this->shellCommand = Inflector::variable($arg);
|
||||
}
|
||||
|
||||
$Shell = $this->_getShell($plugin);
|
||||
|
||||
if (!$Shell) {
|
||||
$title = sprintf(__('Error: Class %s could not be loaded.', true), $this->shellClass);
|
||||
$this->stderr($title . "\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
$methods = array();
|
||||
|
||||
if (is_a($Shell, 'Shell')) {
|
||||
$Shell->initialize();
|
||||
$Shell->loadTasks();
|
||||
|
||||
foreach ($Shell->taskNames as $task) {
|
||||
if (is_a($Shell->{$task}, 'Shell')) {
|
||||
$Shell->{$task}->initialize();
|
||||
$Shell->{$task}->loadTasks();
|
||||
}
|
||||
}
|
||||
|
||||
$task = Inflector::camelize($arg);
|
||||
|
||||
if (in_array($task, $Shell->taskNames)) {
|
||||
$this->shiftArgs();
|
||||
$Shell->{$task}->startup();
|
||||
|
||||
if (isset($this->args[0]) && $this->args[0] == 'help') {
|
||||
if (method_exists($Shell->{$task}, 'help')) {
|
||||
$Shell->{$task}->help();
|
||||
} else {
|
||||
$loaded = false;
|
||||
$this->help();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return $Shell->{$task}->execute();
|
||||
}
|
||||
$methods = array_diff(get_class_methods('Shell'), array('help'));
|
||||
}
|
||||
$methods = array_diff(get_class_methods($Shell), $methods);
|
||||
$added = in_array(strtolower($arg), array_map('strtolower', $methods));
|
||||
$private = $arg[0] == '_' && method_exists($Shell, $arg);
|
||||
|
||||
if (!$private) {
|
||||
if ($added) {
|
||||
$this->shiftArgs();
|
||||
$Shell->startup();
|
||||
return $Shell->{$arg}();
|
||||
}
|
||||
if (method_exists($Shell, 'main')) {
|
||||
$Shell->startup();
|
||||
return $Shell->main();
|
||||
}
|
||||
}
|
||||
|
||||
$title = sprintf(__('Error: Unknown %1$s command %2$s.', true), $this->shellName, $arg);
|
||||
$message = sprintf(__('For usage try `cake %s help`', true), $this->shell);
|
||||
$this->stderr($title . "\n" . $message . "\n");
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Get shell to use, either plugin shell or application shell
|
||||
*
|
||||
* All paths in the shellPaths property are searched.
|
||||
* shell, shellPath and shellClass properties are taken into account.
|
||||
*
|
||||
* @param string $plugin Optionally the name of a plugin
|
||||
* @return mixed False if no shell could be found or an object on success
|
||||
* @access protected
|
||||
*/
|
||||
function _getShell($plugin = null) {
|
||||
foreach ($this->shellPaths as $path) {
|
||||
$this->shellPath = $path . $this->shell . '.php';
|
||||
$pluginShellPath = DS . $plugin . DS . 'vendors' . DS . 'shells' . DS;
|
||||
|
||||
$isPlugin = ($plugin && strpos($path, DS . $plugin . DS . 'vendors' . DS . 'shells' . DS) !== false);
|
||||
if (($isPlugin && file_exists($this->shellPath)) || (!$plugin && file_exists($this->shellPath))) {
|
||||
if ((strpos($path, $pluginShellPath) !== false || !$plugin) && file_exists($this->shellPath)) {
|
||||
$loaded = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isset($loaded)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($loaded) {
|
||||
if (!class_exists('Shell')) {
|
||||
require CONSOLE_LIBS . 'shell.php';
|
||||
}
|
||||
|
||||
if (!class_exists($this->shellClass)) {
|
||||
require $this->shellPath;
|
||||
if (class_exists($this->shellClass)) {
|
||||
$command = null;
|
||||
if (isset($this->args[0])) {
|
||||
$command = $this->args[0];
|
||||
}
|
||||
$this->shellCommand = Inflector::variable($command);
|
||||
$shell = new $this->shellClass($this);
|
||||
|
||||
if (strtolower(get_parent_class($shell)) == 'shell') {
|
||||
$shell->initialize();
|
||||
$shell->loadTasks();
|
||||
|
||||
foreach ($shell->taskNames as $task) {
|
||||
if (strtolower(get_parent_class($shell)) == 'shell') {
|
||||
$shell->{$task}->initialize();
|
||||
$shell->{$task}->loadTasks();
|
||||
}
|
||||
}
|
||||
|
||||
$task = Inflector::camelize($command);
|
||||
if (in_array($task, $shell->taskNames)) {
|
||||
$this->shiftArgs();
|
||||
$shell->{$task}->startup();
|
||||
if (isset($this->args[0]) && $this->args[0] == 'help') {
|
||||
if (method_exists($shell->{$task}, 'help')) {
|
||||
$shell->{$task}->help();
|
||||
$this->_stop();
|
||||
} else {
|
||||
$this->help();
|
||||
}
|
||||
}
|
||||
return $shell->{$task}->execute();
|
||||
}
|
||||
}
|
||||
|
||||
$classMethods = get_class_methods($shell);
|
||||
|
||||
$privateMethod = $missingCommand = false;
|
||||
if ((in_array($command, $classMethods) || in_array(strtolower($command), $classMethods)) && strpos($command, '_', 0) === 0) {
|
||||
$privateMethod = true;
|
||||
}
|
||||
|
||||
if (!in_array($command, $classMethods) && !in_array(strtolower($command), $classMethods)) {
|
||||
$missingCommand = true;
|
||||
}
|
||||
|
||||
$protectedCommands = array(
|
||||
'initialize','in','out','err','hr',
|
||||
'createfile', 'isdir','copydir','object','tostring',
|
||||
'requestaction','log','cakeerror', 'shelldispatcher',
|
||||
'__initconstants','__initenvironment','__construct',
|
||||
'dispatch','__bootstrap','getinput','stdout','stderr','parseparams','shiftargs'
|
||||
);
|
||||
|
||||
if (in_array(strtolower($command), $protectedCommands)) {
|
||||
$missingCommand = true;
|
||||
}
|
||||
|
||||
if ($missingCommand && method_exists($shell, 'main')) {
|
||||
$shell->startup();
|
||||
return $shell->main();
|
||||
} elseif (!$privateMethod && method_exists($shell, $command)) {
|
||||
$this->shiftArgs();
|
||||
$shell->startup();
|
||||
return $shell->{$command}();
|
||||
} else {
|
||||
$this->stderr("Unknown {$this->shellName} command '$command'.\nFor usage, try 'cake {$this->shell} help'.\n\n");
|
||||
}
|
||||
} else {
|
||||
$this->stderr('Class '.$this->shellClass.' could not be loaded');
|
||||
}
|
||||
} else {
|
||||
$this->help();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$this->help();
|
||||
if (!class_exists($this->shellClass)) {
|
||||
return false;
|
||||
}
|
||||
$Shell = new $this->shellClass($this);
|
||||
return $Shell;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -475,7 +497,7 @@ class ShellDispatcher {
|
|||
* @access public
|
||||
*/
|
||||
function stderr($string) {
|
||||
fwrite($this->stderr, 'Error: '. $string);
|
||||
fwrite($this->stderr, $string);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -486,13 +508,15 @@ class ShellDispatcher {
|
|||
*/
|
||||
function parseParams($params) {
|
||||
$this->__parseParams($params);
|
||||
|
||||
$defaults = array('app' => 'app', 'root' => dirname(dirname(dirname(__FILE__))), 'working' => null, 'webroot' => 'webroot');
|
||||
|
||||
$params = array_merge($defaults, array_intersect_key($this->params, $defaults));
|
||||
|
||||
$isWin = array_filter(array_map('strpos', $params, array('\\')));
|
||||
|
||||
$isWin = false;
|
||||
foreach ($defaults as $default => $value) {
|
||||
if (strpos($params[$default], '\\') !== false) {
|
||||
$isWin = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$params = str_replace('\\', '/', $params);
|
||||
|
||||
if (!empty($params['working']) && (!isset($this->args[0]) || isset($this->args[0]) && $this->args[0]{0} !== '.')) {
|
||||
|
@ -504,7 +528,7 @@ class ShellDispatcher {
|
|||
}
|
||||
}
|
||||
|
||||
if ($params['app'][0] == '/' || preg_match('/([a-zA-Z])(:)/i', $params['app'], $matches)) {
|
||||
if ($params['app'][0] == '/' || preg_match('/([a-z])(:)/i', $params['app'], $matches)) {
|
||||
$params['root'] = dirname($params['app']);
|
||||
} elseif (strpos($params['app'], '/')) {
|
||||
$params['root'] .= '/' . dirname($params['app']);
|
||||
|
@ -521,7 +545,7 @@ class ShellDispatcher {
|
|||
}
|
||||
|
||||
/**
|
||||
* Helper for recursively paraing params
|
||||
* Helper for recursively parsing params
|
||||
*
|
||||
* @return array params
|
||||
* @access private
|
||||
|
@ -555,16 +579,11 @@ class ShellDispatcher {
|
|||
/**
|
||||
* Removes first argument and shifts other arguments up
|
||||
*
|
||||
* @return boolean False if there are no arguments
|
||||
* @return mixed Null if there are no arguments otherwise the shifted argument
|
||||
* @access public
|
||||
*/
|
||||
function shiftArgs() {
|
||||
if (empty($this->args)) {
|
||||
return false;
|
||||
}
|
||||
unset($this->args[0]);
|
||||
$this->args = array_values($this->args);
|
||||
return true;
|
||||
return array_shift($this->args);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -603,6 +622,7 @@ class ShellDispatcher {
|
|||
} else {
|
||||
sort($shells);
|
||||
foreach ($shells as $shell) {
|
||||
|
||||
if ($shell !== 'shell.php') {
|
||||
$this->stdout("\t " . str_replace('.php', '', $shell));
|
||||
}
|
||||
|
@ -612,7 +632,6 @@ class ShellDispatcher {
|
|||
}
|
||||
$this->stdout("\nTo run a command, type 'cake shell_name [args]'");
|
||||
$this->stdout("To get help on a specific command, type 'cake shell_name help'");
|
||||
$this->_stop();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -163,7 +163,7 @@ class BakeShell extends Shell {
|
|||
$object = new $model();
|
||||
$modelExists = true;
|
||||
} else {
|
||||
App::import('Model');
|
||||
App::import('Model', 'Model', false);
|
||||
$object = new Model(array('name' => $name, 'ds' => $this->connection));
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
|
||||
*/
|
||||
App::import('File');
|
||||
App::import('Model', 'CakeSchema');
|
||||
App::import('Model', 'CakeSchema', false);
|
||||
|
||||
/**
|
||||
* Schema is a command-line database management utility for automating programmer chores.
|
||||
|
|
|
@ -363,69 +363,78 @@ class Shell extends Object {
|
|||
}
|
||||
|
||||
/**
|
||||
* Outputs to the stdout filehandle.
|
||||
* Outputs a single or multiple messages to stdout.
|
||||
*
|
||||
* @param string $string String to output.
|
||||
* @param boolean $newline If true, the outputs gets an added newline.
|
||||
* @param mixed $message A string or a an array of strings to output
|
||||
* @param mixed $after Appended to message, if true a newline is used
|
||||
* @access public
|
||||
*/
|
||||
function out($string, $newline = true) {
|
||||
if (is_array($string)) {
|
||||
$str = '';
|
||||
foreach ($string as $message) {
|
||||
$str .= $message ."\n";
|
||||
function out($message, $after = true) {
|
||||
if (is_array($message)) {
|
||||
$message = implode($this->nl(), $message);
|
||||
}
|
||||
$string = $str;
|
||||
}
|
||||
return $this->Dispatch->stdout($string, $newline);
|
||||
$this->Dispatch->stdout($message . $this->nl($after), false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs to the stderr filehandle.
|
||||
* Outputs a single or multiple error messages to stderr.
|
||||
*
|
||||
* @param string $string Error text to output.
|
||||
* @param mixed $message A string or a an array of strings to output
|
||||
* @param mixed $after Appended to message, if true a newline is used
|
||||
* @access public
|
||||
*/
|
||||
function err($string) {
|
||||
if (is_array($string)) {
|
||||
$str = '';
|
||||
foreach ($string as $message) {
|
||||
$str .= $message ."\n";
|
||||
function err($message, $after = true) {
|
||||
if (is_array($message)) {
|
||||
$message = implode($this->nl(), $message);
|
||||
}
|
||||
$string = $str;
|
||||
$this->Dispatch->stderr($message . $this->nl($after));
|
||||
}
|
||||
return $this->Dispatch->stderr($string."\n");
|
||||
|
||||
/**
|
||||
* Returns a single or multiple linefeeds sequences.
|
||||
*
|
||||
* @param mixed $format If true returns a linefeed sequence, if false null,
|
||||
* if a string is given that is returned,
|
||||
* if an integer is given it is used as a multiplier to return multiple linefeed sequences
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
function nl($format = true) {
|
||||
if (is_string($format)) {
|
||||
return $format . "\n";
|
||||
}
|
||||
if (is_int($format)) {
|
||||
return str_repeat("\n", $format);
|
||||
}
|
||||
return $format ? "\n" : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Outputs a series of minus characters to the standard output, acts as a visual separator.
|
||||
*
|
||||
* @param boolean $newline If true, the outputs gets an added newline.
|
||||
* @param mixed $surround If true, the outputs gets surrounded by newlines.
|
||||
* @access public
|
||||
*/
|
||||
function hr($newline = false) {
|
||||
if ($newline) {
|
||||
$this->out("\n");
|
||||
}
|
||||
function hr($surround = false) {
|
||||
$this->out(null, $surround);
|
||||
$this->out('---------------------------------------------------------------');
|
||||
if ($newline) {
|
||||
$this->out("\n");
|
||||
$this->out(null, $surround);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays a formatted error message and exits the application
|
||||
* Displays a formatted error message
|
||||
* and exits the application with status code 1
|
||||
*
|
||||
* @param string $title Title of the error message
|
||||
* @param string $msg Error message
|
||||
* @param string $title Title of the error
|
||||
* @param string $message An optional error message
|
||||
* @access public
|
||||
*/
|
||||
function error($title, $msg) {
|
||||
$out = "$title\n";
|
||||
$out .= "$msg\n";
|
||||
$out .= "\n";
|
||||
$this->err($out);
|
||||
$this->_stop();
|
||||
function error($title, $message = null) {
|
||||
$this->err(sprintf(__('Error: %s', true), $title));
|
||||
|
||||
if (!empty($message)) {
|
||||
$this->err($message);
|
||||
}
|
||||
$this->_stop(1);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -74,7 +74,7 @@ class FixtureTask extends Shell {
|
|||
parent::__construct($dispatch);
|
||||
$this->path = $this->params['working'] . DS . 'tests' . DS . 'fixtures' . DS;
|
||||
if (!class_exists('CakeSchema')) {
|
||||
App::import('Model', 'CakeSchema');
|
||||
App::import('Model', 'CakeSchema', false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -384,7 +384,7 @@ class FixtureTask extends Shell {
|
|||
while (!$condition) {
|
||||
$condition = $this->in($prompt, null, 'WHERE 1=1 LIMIT 10');
|
||||
}
|
||||
App::import('Core', 'Model');
|
||||
App::import('Model', 'Model', false);
|
||||
$modelObject =& new Model(array('name' => $modelName, 'table' => $useTable, 'ds' => $this->connection));
|
||||
$records = $modelObject->find('all', array(
|
||||
'conditions' => $condition,
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
* @since CakePHP(tm) v 1.2
|
||||
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Task class for creating and updating model files.
|
||||
*
|
||||
|
@ -80,7 +81,7 @@ class ModelTask extends Shell {
|
|||
* @return void
|
||||
**/
|
||||
function startup() {
|
||||
App::import('Core', 'Model', false, App::core('models'));
|
||||
App::import('Model', 'Model', false);
|
||||
parent::startup();
|
||||
}
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
* @since CakePHP(tm) v 1.2
|
||||
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
|
||||
*/
|
||||
App::import('Core', 'Controller');
|
||||
App::import('Controller', 'Controller', false);
|
||||
|
||||
/**
|
||||
* Task class for creating and updating view files.
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
* @lastmodified $Date$
|
||||
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
|
||||
*/
|
||||
App::import('Core', 'Helper');
|
||||
App::import('Helper', 'Helper', false);
|
||||
|
||||
/**
|
||||
* This is a placeholder class.
|
||||
|
|
|
@ -190,6 +190,11 @@
|
|||
Configure::write('Acl.classname', 'DbAcl');
|
||||
Configure::write('Acl.database', 'default');
|
||||
|
||||
/**
|
||||
* If you are on PHP 5.3 uncomment this line and correct your server timezone
|
||||
* to fix the date & time related errors.
|
||||
*/
|
||||
//date_default_timezone_set('UTC');
|
||||
/**
|
||||
*
|
||||
* Cache Engine Configuration
|
||||
|
|
|
@ -25,7 +25,14 @@
|
|||
* @lastmodified $Date$
|
||||
* @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License
|
||||
*/
|
||||
error_reporting(E_ALL);
|
||||
/**
|
||||
* PHP 5.3 raises many notices in bootstrap.
|
||||
*/
|
||||
if (!defined('E_DEPRECATED')) {
|
||||
define('E_DEPRECATED', 8192);
|
||||
}
|
||||
error_reporting(E_ALL & ~E_DEPRECATED);
|
||||
|
||||
set_time_limit(0);
|
||||
ini_set('memory_limit','128M');
|
||||
ini_set('display_errors', 1);
|
||||
|
|
|
@ -226,7 +226,7 @@ class Dispatcher extends Object {
|
|||
|
||||
if (!isset($methods[strtolower($params['action'])])) {
|
||||
if ($controller->scaffold !== false) {
|
||||
App::import('Core', 'Scaffold');
|
||||
App::import('Controller', 'Scaffold', false);
|
||||
return new Scaffold($controller, $params);
|
||||
}
|
||||
return $this->cakeError('missingAction', array(array(
|
||||
|
|
|
@ -107,7 +107,7 @@ class Configure extends Object {
|
|||
|
||||
if (isset($config['debug'])) {
|
||||
if ($_this->debug) {
|
||||
error_reporting(E_ALL);
|
||||
error_reporting(E_ALL & ~E_DEPRECATED);
|
||||
|
||||
if (function_exists('ini_set')) {
|
||||
ini_set('display_errors', 1);
|
||||
|
@ -844,7 +844,7 @@ class App extends Object {
|
|||
}
|
||||
}
|
||||
|
||||
if (!App::import($tempType, $plugin . $class)) {
|
||||
if (!App::import($tempType, $plugin . $class, $parent)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -866,7 +866,7 @@ class App extends Object {
|
|||
if ($name != null && !class_exists($name . $ext['class'])) {
|
||||
if ($load = $_this->__mapped($name . $ext['class'], $type, $plugin)) {
|
||||
if ($_this->__load($load)) {
|
||||
$_this->__overload($type, $name . $ext['class']);
|
||||
$_this->__overload($type, $name . $ext['class'], $parent);
|
||||
|
||||
if ($_this->return) {
|
||||
$value = include $load;
|
||||
|
@ -908,7 +908,7 @@ class App extends Object {
|
|||
if ($directory !== null) {
|
||||
$_this->__cache = true;
|
||||
$_this->__map($directory . $file, $name . $ext['class'], $type, $plugin);
|
||||
$_this->__overload($type, $name . $ext['class']);
|
||||
$_this->__overload($type, $name . $ext['class'], $parent);
|
||||
|
||||
if ($_this->return) {
|
||||
$value = include $directory . $file;
|
||||
|
@ -1058,8 +1058,8 @@ class App extends Object {
|
|||
* @param string $name Class name to overload
|
||||
* @access private
|
||||
*/
|
||||
function __overload($type, $name) {
|
||||
if (($type === 'Model' || $type === 'Helper') && strtolower($name) != 'schema') {
|
||||
function __overload($type, $name, $parent) {
|
||||
if (($type === 'Model' || $type === 'Helper') && $parent !== false) {
|
||||
Overloadable::overload($name);
|
||||
}
|
||||
}
|
||||
|
@ -1088,10 +1088,10 @@ class App extends Object {
|
|||
switch ($load) {
|
||||
case 'model':
|
||||
if (!class_exists('Model')) {
|
||||
App::import('Model', 'Model', false, App::core('models'));
|
||||
require LIBS . 'model' . DS . 'model.php';
|
||||
}
|
||||
if (!class_exists('AppModel')) {
|
||||
App::import($type, 'AppModel', false, App::path('models'));
|
||||
App::import($type, 'AppModel', false);
|
||||
}
|
||||
if ($plugin) {
|
||||
if (!class_exists($plugin . 'AppModel')) {
|
||||
|
|
|
@ -254,7 +254,7 @@ class Debugger extends Object {
|
|||
* @access public
|
||||
*/
|
||||
function handleError($code, $description, $file = null, $line = null, $context = null) {
|
||||
if (error_reporting() == 0 || $code === 2048) {
|
||||
if (error_reporting() == 0 || $code === 2048 || $code === 8192) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -112,9 +112,8 @@ class DboMysqli extends DboMysqlBase {
|
|||
function _execute($sql) {
|
||||
if (preg_match('/^\s*call/i', $sql)) {
|
||||
return $this->_executeProcedure($sql);
|
||||
} else {
|
||||
return mysqli_query($this->connection, $sql);
|
||||
}
|
||||
return mysqli_query($this->connection, $sql);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -149,7 +148,8 @@ class DboMysqli extends DboMysqlBase {
|
|||
|
||||
if (!$result) {
|
||||
return array();
|
||||
} else {
|
||||
}
|
||||
|
||||
$tables = array();
|
||||
|
||||
while ($line = mysqli_fetch_array($result)) {
|
||||
|
@ -158,7 +158,6 @@ class DboMysqli extends DboMysqlBase {
|
|||
parent::listSources($tables);
|
||||
return $tables;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an array of the fields in given table name.
|
||||
|
@ -212,18 +211,19 @@ class DboMysqli extends DboMysqlBase {
|
|||
if ($parent != null) {
|
||||
return $parent;
|
||||
}
|
||||
|
||||
if ($data === null) {
|
||||
if ($data === null || (is_array($data) && empty($data))) {
|
||||
return 'NULL';
|
||||
}
|
||||
|
||||
if ($data === '' && $column !== 'integer' && $column !== 'float' && $column !== 'boolean') {
|
||||
return "''";
|
||||
}
|
||||
if (empty($column)) {
|
||||
$column = $this->introspectType($data);
|
||||
}
|
||||
|
||||
switch ($column) {
|
||||
case 'boolean':
|
||||
$data = $this->boolean((bool)$data);
|
||||
return $this->boolean((bool)$data);
|
||||
break;
|
||||
case 'integer' :
|
||||
case 'float' :
|
||||
|
@ -293,7 +293,6 @@ class DboMysqli extends DboMysqlBase {
|
|||
if ($id !== false && !empty($id) && !empty($id[0]) && isset($id[0]['insertID'])) {
|
||||
return $id[0]['insertID'];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -408,9 +407,8 @@ class DboMysqli extends DboMysqlBase {
|
|||
$i++;
|
||||
}
|
||||
return $resultRow;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -560,10 +560,7 @@ class Router extends Object {
|
|||
function compile($i) {
|
||||
$route = $this->routes[$i];
|
||||
|
||||
if (!list($pattern, $names) = $this->writeRoute($route[0], $route[1], $route[2])) {
|
||||
unset($this->routes[$i]);
|
||||
return array();
|
||||
}
|
||||
list($pattern, $names) = $this->writeRoute($route[0], $route[1], $route[2]);
|
||||
$this->routes[$i] = array(
|
||||
$route[0], $pattern, $names,
|
||||
array_merge(array('plugin' => null, 'controller' => null), (array)$route[1]),
|
||||
|
@ -1317,9 +1314,9 @@ class Router extends Object {
|
|||
return $param;
|
||||
}
|
||||
|
||||
$return = preg_replace('/^(?:[\\t ]*(?:-!)+)/', '', $param);
|
||||
return $return;
|
||||
return preg_replace('/^(?:[\\t ]*(?:-!)+)/', '', $param);
|
||||
}
|
||||
|
||||
foreach ($param as $key => $value) {
|
||||
if (is_string($value)) {
|
||||
$return[$key] = preg_replace('/^(?:[\\t ]*(?:-!)+)/', '', $value);
|
||||
|
@ -1394,7 +1391,9 @@ class Router extends Object {
|
|||
continue;
|
||||
}
|
||||
$param = $_this->stripEscape($param);
|
||||
if ((!isset($options['named']) || !empty($options['named'])) && strpos($param, $_this->named['separator']) !== false) {
|
||||
|
||||
$separatorIsPresent = strpos($param, $_this->named['separator']) !== false;
|
||||
if ((!isset($options['named']) || !empty($options['named'])) && $separatorIsPresent) {
|
||||
list($key, $val) = explode($_this->named['separator'], $param, 2);
|
||||
$hasRule = isset($rules[$key]);
|
||||
$passIt = (!$hasRule && !$greedy) || ($hasRule && !Router::matchNamed($key, $val, $rules[$key], $context));
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
<?php
|
||||
/* SVN FILE: $Id$ */
|
||||
|
||||
/**
|
||||
*
|
||||
* PHP versions 4 and 5
|
||||
|
|
|
@ -514,15 +514,12 @@ class PaginatorHelper extends AppHelper {
|
|||
$end = $params['page'] + ($modulus - $params['page']) + 1;
|
||||
}
|
||||
|
||||
if ($first) {
|
||||
if ($start > (int)$first) {
|
||||
if ($start == $first + 1) {
|
||||
$out .= $this->first($first, array('tag' => $tag, 'after' => $separator, 'separator' => $separator));
|
||||
if ($first && $start > 1) {
|
||||
$offset = ($start <= (int)$first) ? $start - 1 : $first;
|
||||
if ($offset < $start - 1) {
|
||||
$out .= $this->first($offset, array('tag' => $tag, 'separator' => $separator));
|
||||
} else {
|
||||
$out .= $this->first($first, array('tag' => $tag, 'separator' => $separator));
|
||||
}
|
||||
} elseif ($start == 2) {
|
||||
$out .= $this->Html->tag($tag, $this->link(1, array('page' => 1), $options)) . $separator;
|
||||
$out .= $this->first($offset, array('tag' => $tag, 'after' => $separator, 'separator' => $separator));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -550,15 +547,12 @@ class PaginatorHelper extends AppHelper {
|
|||
|
||||
$out .= $after;
|
||||
|
||||
if ($last) {
|
||||
if ($end <= $params['pageCount'] - (int)$last) {
|
||||
if ($end + 1 == $params['pageCount']) {
|
||||
$out .= $this->last($last, array('tag' => $tag, 'before' => $separator, 'separator' => $separator));
|
||||
if ($last && $end < $params['pageCount']) {
|
||||
$offset = ($params['pageCount'] < $end + (int)$last) ? $params['pageCount'] - $end : $last;
|
||||
if ($offset <= $last && $params['pageCount'] - $end > $offset) {
|
||||
$out .= $this->last($offset, array('tag' => $tag, 'separator' => $separator));
|
||||
} else {
|
||||
$out .= $this->last($last, array('tag' => $tag, 'separator' => $separator));
|
||||
}
|
||||
} elseif ($end == $params['pageCount'] - 1) {
|
||||
$out .= $separator . $this->Html->tag($tag, $this->link($params['pageCount'], array('page' => $params['pageCount']), $options));
|
||||
$out .= $this->last($offset, array('tag' => $tag, 'before' => $separator, 'separator' => $separator));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -36,6 +36,8 @@ if (!class_exists('ShellDispatcher')) {
|
|||
ob_end_clean();
|
||||
}
|
||||
|
||||
|
||||
require_once CONSOLE_LIBS . 'shell.php';
|
||||
/**
|
||||
* TestShellDispatcher class
|
||||
*
|
||||
|
@ -76,6 +78,13 @@ class TestShellDispatcher extends ShellDispatcher {
|
|||
*/
|
||||
var $stopped = null;
|
||||
|
||||
/**
|
||||
* TestShell
|
||||
*
|
||||
* @var mixed
|
||||
* @access public
|
||||
*/
|
||||
var $TestShell;
|
||||
/**
|
||||
* _initEnvironment method
|
||||
*
|
||||
|
@ -127,6 +136,30 @@ class TestShellDispatcher extends ShellDispatcher {
|
|||
*/
|
||||
function _stop($status = 0) {
|
||||
$this->stopped = 'Stopped with status: ' . $status;
|
||||
return $status;
|
||||
}
|
||||
/**
|
||||
* getShell
|
||||
*
|
||||
* @param mixed $plugin
|
||||
* @access public
|
||||
* @return mixed
|
||||
*/
|
||||
function getShell($plugin = null) {
|
||||
return $this->_getShell($plugin);
|
||||
}
|
||||
/**
|
||||
* _getShell
|
||||
*
|
||||
* @param mixed $plugin
|
||||
* @access protected
|
||||
* @return mixed
|
||||
*/
|
||||
function _getShell($plugin = null) {
|
||||
if (isset($this->TestShell)) {
|
||||
return $this->TestShell;
|
||||
}
|
||||
return parent::_getShell($plugin);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -136,7 +169,7 @@ class TestShellDispatcher extends ShellDispatcher {
|
|||
* @package cake
|
||||
* @subpackage cake.tests.cases.libs
|
||||
*/
|
||||
class ShellDispatcherTest extends UnitTestCase {
|
||||
class ShellDispatcherTest extends CakeTestCase {
|
||||
|
||||
/**
|
||||
* setUp method
|
||||
|
@ -418,6 +451,25 @@ class ShellDispatcherTest extends UnitTestCase {
|
|||
$Dispatcher->params = $Dispatcher->args = array();
|
||||
$Dispatcher->parseParams($params);
|
||||
$this->assertEqual($expected, $Dispatcher->params);
|
||||
|
||||
|
||||
$params = array(
|
||||
'cake.php',
|
||||
'-working',
|
||||
'D:\www',
|
||||
'bake',
|
||||
'my_app',
|
||||
);
|
||||
$expected = array(
|
||||
'working' => 'D:\www',
|
||||
'app' => 'www',
|
||||
'root' => 'D:',
|
||||
'webroot' => 'webroot'
|
||||
);
|
||||
|
||||
$Dispatcher->params = $Dispatcher->args = array();
|
||||
$Dispatcher->parseParams($params);
|
||||
$this->assertEqual($expected, $Dispatcher->params);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -444,20 +496,418 @@ class ShellDispatcherTest extends UnitTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* testDispatch method
|
||||
* Verify loading of (plugin-) shells
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testDispatch() {
|
||||
$Dispatcher =& new TestShellDispatcher(array('sample'));
|
||||
$this->assertPattern('/This is the main method called from SampleShell/', $Dispatcher->stdout);
|
||||
function testGetShell() {
|
||||
$this->skipIf(class_exists('SampleShell'), '%s SampleShell Class already loaded');
|
||||
$this->skipIf(class_exists('ExampleShell'), '%s ExampleShell Class already loaded');
|
||||
|
||||
$Dispatcher =& new TestShellDispatcher(array('test_plugin_two.example'));
|
||||
$this->assertPattern('/This is the main method called from TestPluginTwo.ExampleShell/', $Dispatcher->stdout);
|
||||
$Dispatcher =& new TestShellDispatcher();
|
||||
|
||||
$Dispatcher =& new TestShellDispatcher(array('test_plugin_two.welcome', 'say_hello'));
|
||||
$this->assertPattern('/This is the say_hello method called from TestPluginTwo.WelcomeShell/', $Dispatcher->stdout);
|
||||
$Dispatcher->shell = 'sample';
|
||||
$Dispatcher->shellName = 'Sample';
|
||||
$Dispatcher->shellClass = 'SampleShell';
|
||||
|
||||
$result = $Dispatcher->getShell();
|
||||
$this->assertIsA($result, 'SampleShell');
|
||||
|
||||
$Dispatcher =& new TestShellDispatcher();
|
||||
|
||||
$Dispatcher->shell = 'example';
|
||||
$Dispatcher->shellName = 'Example';
|
||||
$Dispatcher->shellClass = 'ExampleShell';
|
||||
|
||||
$result = $Dispatcher->getShell('test_plugin');
|
||||
$this->assertIsA($result, 'ExampleShell');
|
||||
}
|
||||
/**
|
||||
* Verify correct dispatch of Shell subclasses with a main method
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testDispatchShellWithMain() {
|
||||
Mock::generate('Shell', 'MockWithMainShell', array('main', '_secret'));
|
||||
|
||||
$Dispatcher =& new TestShellDispatcher();
|
||||
|
||||
$Shell = new MockWithMainShell();
|
||||
$Shell->setReturnValue('main', true);
|
||||
$Shell->expectOnce('initialize');
|
||||
$Shell->expectOnce('loadTasks');
|
||||
$Shell->expectOnce('startup');
|
||||
$Shell->expectOnce('main');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_with_main');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertTrue($result);
|
||||
$this->assertEqual($Dispatcher->args, array());
|
||||
|
||||
$Shell = new MockWithMainShell();
|
||||
$Shell->setReturnValue('main', true);
|
||||
$Shell->expectOnce('startup');
|
||||
$Shell->expectOnce('main');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_with_main', 'initdb');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertTrue($result);
|
||||
$this->assertEqual($Dispatcher->args, array('initdb'));
|
||||
|
||||
$Shell = new MockWithMainShell();
|
||||
$Shell->setReturnValue('main', true);
|
||||
$Shell->expectOnce('startup');
|
||||
$Shell->expectOnce('help');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_with_main', 'help');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertNull($result);
|
||||
$this->assertEqual($Dispatcher->args, array());
|
||||
|
||||
$Shell = new MockWithMainShell();
|
||||
$Shell->setReturnValue('main', true);
|
||||
$Shell->expectNever('hr');
|
||||
$Shell->expectOnce('startup');
|
||||
$Shell->expectOnce('main');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_with_main', 'hr');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertTrue($result);
|
||||
$this->assertEqual($Dispatcher->args, array('hr'));
|
||||
|
||||
$Shell = new MockWithMainShell();
|
||||
$Shell->setReturnValue('main', true);
|
||||
$Shell->expectOnce('startup');
|
||||
$Shell->expectOnce('main');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_with_main', 'dispatch');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertTrue($result);
|
||||
$this->assertEqual($Dispatcher->args, array('dispatch'));
|
||||
|
||||
$Shell = new MockWithMainShell();
|
||||
$Shell->setReturnValue('main', true);
|
||||
$Shell->expectOnce('startup');
|
||||
$Shell->expectOnce('main');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_with_main', 'idontexist');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertTrue($result);
|
||||
$this->assertEqual($Dispatcher->args, array('idontexist'));
|
||||
|
||||
$Shell = new MockWithMainShell();
|
||||
$Shell->expectNever('startup');
|
||||
$Shell->expectNever('main');
|
||||
$Shell->expectNever('_secret');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_with_main', '_secret');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertFalse($result);
|
||||
}
|
||||
/**
|
||||
* Verify correct dispatch of Shell subclasses without a main method
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testDispatchShellWithoutMain() {
|
||||
Mock::generate('Shell', 'MockWithoutMainShell', array('initDb', '_secret'));
|
||||
|
||||
$Dispatcher =& new TestShellDispatcher();
|
||||
|
||||
$Shell = new MockWithoutMainShell();
|
||||
$Shell->setReturnValue('initDb', true);
|
||||
$Shell->expectOnce('initialize');
|
||||
$Shell->expectOnce('loadTasks');
|
||||
$Shell->expectNever('startup');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_without_main');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertFalse($result);
|
||||
$this->assertEqual($Dispatcher->args, array());
|
||||
|
||||
$Shell = new MockWithoutMainShell();
|
||||
$Shell->setReturnValue('initDb', true);
|
||||
$Shell->expectOnce('startup');
|
||||
$Shell->expectOnce('initDb');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_without_main', 'initdb');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertTrue($result);
|
||||
$this->assertEqual($Dispatcher->args, array());
|
||||
|
||||
$Shell = new MockWithoutMainShell();
|
||||
$Shell->setReturnValue('initDb', true);
|
||||
$Shell->expectNever('startup');
|
||||
$Shell->expectNever('hr');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_without_main', 'hr');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertFalse($result);
|
||||
$this->assertEqual($Dispatcher->args, array('hr'));
|
||||
|
||||
$Shell = new MockWithoutMainShell();
|
||||
$Shell->setReturnValue('initDb', true);
|
||||
$Shell->expectNever('startup');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_without_main', 'dispatch');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertFalse($result);
|
||||
|
||||
$Shell = new MockWithoutMainShell();
|
||||
$Shell->expectNever('startup');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_without_main', 'idontexist');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertFalse($result);
|
||||
|
||||
$Shell = new MockWithoutMainShell();
|
||||
$Shell->expectNever('startup');
|
||||
$Shell->expectNever('_secret');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_without_main', '_secret');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertFalse($result);
|
||||
}
|
||||
/**
|
||||
* Verify correct dispatch of custom classes with a main method
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testDispatchNotAShellWithMain() {
|
||||
Mock::generate('Object', 'MockWithMainNotAShell',
|
||||
array('main', 'initialize', 'loadTasks', 'startup', '_secret'));
|
||||
|
||||
$Dispatcher =& new TestShellDispatcher();
|
||||
|
||||
$Shell = new MockWithMainNotAShell();
|
||||
$Shell->setReturnValue('main', true);
|
||||
$Shell->expectNever('initialize');
|
||||
$Shell->expectNever('loadTasks');
|
||||
$Shell->expectOnce('startup');
|
||||
$Shell->expectOnce('main');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_with_main_not_a');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertTrue($result);
|
||||
$this->assertEqual($Dispatcher->args, array());
|
||||
|
||||
$Shell = new MockWithMainNotAShell();
|
||||
$Shell->setReturnValue('main', true);
|
||||
$Shell->expectOnce('startup');
|
||||
$Shell->expectOnce('main');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_with_main_not_a', 'initdb');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertTrue($result);
|
||||
$this->assertEqual($Dispatcher->args, array('initdb'));
|
||||
|
||||
$Shell = new MockWithMainNotAShell();
|
||||
$Shell->setReturnValue('main', true);
|
||||
$Shell->expectOnce('startup');
|
||||
$Shell->expectOnce('main');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_with_main_not_a', 'hr');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertTrue($result);
|
||||
$this->assertEqual($Dispatcher->args, array('hr'));
|
||||
|
||||
$Shell = new MockWithMainNotAShell();
|
||||
$Shell->setReturnValue('main', true);
|
||||
$Shell->expectOnce('startup');
|
||||
$Shell->expectOnce('main');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_with_main_not_a', 'dispatch');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertTrue($result);
|
||||
$this->assertEqual($Dispatcher->args, array('dispatch'));
|
||||
|
||||
$Shell = new MockWithMainNotAShell();
|
||||
$Shell->setReturnValue('main', true);
|
||||
$Shell->expectOnce('startup');
|
||||
$Shell->expectOnce('main');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_with_main_not_a', 'idontexist');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertTrue($result);
|
||||
$this->assertEqual($Dispatcher->args, array('idontexist'));
|
||||
|
||||
$Shell = new MockWithMainNotAShell();
|
||||
$Shell->expectNever('startup');
|
||||
$Shell->expectNever('main');
|
||||
$Shell->expectNever('_secret');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_with_main_not_a', '_secret');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertFalse($result);
|
||||
}
|
||||
/**
|
||||
* Verify correct dispatch of custom classes without a main method
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testDispatchNotAShellWithoutMain() {
|
||||
Mock::generate('Object', 'MockWithoutMainNotAShell',
|
||||
array('initDb', 'initialize', 'loadTasks', 'startup', '_secret'));
|
||||
|
||||
$Dispatcher =& new TestShellDispatcher();
|
||||
|
||||
$Shell = new MockWithoutMainNotAShell();
|
||||
$Shell->setReturnValue('initDb', true);
|
||||
$Shell->expectNever('initialize');
|
||||
$Shell->expectNever('loadTasks');
|
||||
$Shell->expectNever('startup');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_without_main_not_a');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertFalse($result);
|
||||
|
||||
$Shell = new MockWithoutMainNotAShell();
|
||||
$Shell->setReturnValue('initDb', true);
|
||||
$Shell->expectOnce('startup');
|
||||
$Shell->expectOnce('initDb');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_without_main_not_a', 'initdb');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertTrue($result);
|
||||
$this->assertEqual($Dispatcher->args, array());
|
||||
|
||||
$Shell = new MockWithoutMainNotAShell();
|
||||
$Shell->setReturnValue('initDb', true);
|
||||
$Shell->expectNever('startup');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_without_main_not_a', 'hr');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertFalse($result);
|
||||
|
||||
$Shell = new MockWithoutMainNotAShell();
|
||||
$Shell->setReturnValue('initDb', true);
|
||||
$Shell->expectNever('startup');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_without_main_not_a', 'dispatch');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertFalse($result);
|
||||
|
||||
$Shell = new MockWithoutMainNotAShell();
|
||||
$Shell->expectNever('startup');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_without_main_not_a', 'idontexist');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertFalse($result);
|
||||
|
||||
$Shell = new MockWithoutMainNotAShell();
|
||||
$Shell->expectNever('startup');
|
||||
$Shell->expectNever('_secret');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_without_main_not_a', '_secret');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertFalse($result);
|
||||
}
|
||||
/**
|
||||
* Verify that a task is called instead of the shell if the first arg equals
|
||||
* the name of the task
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testDispatchTask() {
|
||||
Mock::generate('Shell', 'MockWeekShell', array('main'));
|
||||
Mock::generate('Shell', 'MockOnSundayTask', array('execute'));
|
||||
|
||||
$Dispatcher =& new TestShellDispatcher();
|
||||
|
||||
$Shell = new MockWeekShell();
|
||||
$Shell->expectOnce('initialize');
|
||||
$Shell->expectOnce('loadTasks');
|
||||
$Shell->expectNever('startup');
|
||||
$Shell->expectNever('main');
|
||||
|
||||
$Task = new MockOnSundayTask();
|
||||
$Task->setReturnValue('execute', true);
|
||||
$Task->expectOnce('initialize');
|
||||
$Task->expectOnce('loadTasks');
|
||||
$Task->expectOnce('startup');
|
||||
$Task->expectOnce('execute');
|
||||
|
||||
$Shell->MockOnSunday =& $Task;
|
||||
$Shell->taskNames = array('MockOnSunday');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_week', 'mock_on_sunday');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertTrue($result);
|
||||
$this->assertEqual($Dispatcher->args, array());
|
||||
|
||||
$Shell = new MockWeekShell();
|
||||
$Task = new MockOnSundayTask();
|
||||
$Task->expectNever('execute');
|
||||
$Task->expectOnce('help');
|
||||
|
||||
$Shell->MockOnSunday =& $Task;
|
||||
$Shell->taskNames = array('MockOnSunday');
|
||||
$Dispatcher->TestShell =& $Shell;
|
||||
|
||||
$Dispatcher->args = array('mock_week', 'mock_on_sunday', 'help');
|
||||
$result = $Dispatcher->dispatch();
|
||||
$this->assertTrue($result);
|
||||
}
|
||||
/**
|
||||
* Verify shifting of arguments
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testShiftArgs() {
|
||||
$Dispatcher =& new TestShellDispatcher();
|
||||
|
||||
$Dispatcher->args = array('a', 'b', 'c');
|
||||
$this->assertEqual($Dispatcher->shiftArgs(), 'a');
|
||||
$this->assertIdentical($Dispatcher->args, array('b', 'c'));
|
||||
|
||||
$Dispatcher->args = array('a' => 'b', 'c', 'd');
|
||||
$this->assertEqual($Dispatcher->shiftArgs(), 'b');
|
||||
$this->assertIdentical($Dispatcher->args, array('c', 'd'));
|
||||
|
||||
$Dispatcher->args = array('a', 'b' => 'c', 'd');
|
||||
$this->assertEqual($Dispatcher->shiftArgs(), 'a');
|
||||
$this->assertIdentical($Dispatcher->args, array('b' => 'c', 'd'));
|
||||
|
||||
$Dispatcher->args = array(0 => 'a', 2 => 'b', 30 => 'c');
|
||||
$this->assertEqual($Dispatcher->shiftArgs(), 'a');
|
||||
$this->assertIdentical($Dispatcher->args, array(0 => 'b', 1 => 'c'));
|
||||
|
||||
$Dispatcher->args = array();
|
||||
$this->assertNull($Dispatcher->shiftArgs());
|
||||
$this->assertIdentical($Dispatcher->args, array());
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -52,6 +52,23 @@ Mock::generatePartial(
|
|||
* @subpackage cake.tests.cases.console.libs
|
||||
*/
|
||||
class TestShell extends Shell {
|
||||
/**
|
||||
* stopped property
|
||||
*
|
||||
* @var integer
|
||||
* @access public
|
||||
*/
|
||||
var $stopped;
|
||||
/**
|
||||
* stop method
|
||||
*
|
||||
* @param integer $status
|
||||
* @access protected
|
||||
* @return void
|
||||
*/
|
||||
function _stop($status = 0) {
|
||||
$this->stopped = $status;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -157,20 +174,6 @@ class ShellTest extends CakeTestCase {
|
|||
App::build();
|
||||
}
|
||||
|
||||
/**
|
||||
* testOut method
|
||||
*
|
||||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function testOut() {
|
||||
$this->Shell->Dispatch->expectAt(0, 'stdout', array('Just a test', true));
|
||||
$this->Shell->out('Just a test');
|
||||
|
||||
$this->Shell->Dispatch->expectAt(1, 'stdout', array("Just\na\ntest\n", true));
|
||||
$this->Shell->out(array('Just', 'a', 'test'));
|
||||
}
|
||||
|
||||
/**
|
||||
* testIn method
|
||||
*
|
||||
|
@ -209,6 +212,94 @@ class ShellTest extends CakeTestCase {
|
|||
$this->assertEqual($result, 'n');
|
||||
}
|
||||
|
||||
/**
|
||||
* testOut method
|
||||
*
|
||||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function testOut() {
|
||||
$this->Shell->Dispatch->expectAt(0, 'stdout', array("Just a test\n", false));
|
||||
$this->Shell->out('Just a test');
|
||||
|
||||
$this->Shell->Dispatch->expectAt(1, 'stdout', array("Just\na\ntest\n", false));
|
||||
$this->Shell->out(array('Just', 'a', 'test'));
|
||||
|
||||
$this->Shell->Dispatch->expectAt(2, 'stdout', array("Just\na\ntest\n\n", false));
|
||||
$this->Shell->out(array('Just', 'a', 'test'), 2);
|
||||
}
|
||||
/**
|
||||
* testErr method
|
||||
*
|
||||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function testErr() {
|
||||
$this->Shell->Dispatch->expectAt(0, 'stderr', array("Just a test\n"));
|
||||
$this->Shell->err('Just a test');
|
||||
|
||||
$this->Shell->Dispatch->expectAt(1, 'stderr', array("Just\na\ntest\n"));
|
||||
$this->Shell->err(array('Just', 'a', 'test'));
|
||||
|
||||
$this->Shell->Dispatch->expectAt(2, 'stderr', array("Just\na\ntest\n\n"));
|
||||
$this->Shell->err(array('Just', 'a', 'test'), 2);
|
||||
}
|
||||
/**
|
||||
* testNl
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testNl() {
|
||||
$this->assertEqual($this->Shell->nl(), "\n");
|
||||
$this->assertEqual($this->Shell->nl(true), "\n");
|
||||
$this->assertEqual($this->Shell->nl(false), "");
|
||||
$this->assertEqual($this->Shell->nl(2), "\n\n");
|
||||
$this->assertEqual($this->Shell->nl(1), "\n");
|
||||
$this->assertEqual($this->Shell->nl("custom"), "custom\n");
|
||||
}
|
||||
/**
|
||||
* testHr
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testHr() {
|
||||
$bar = '---------------------------------------------------------------';
|
||||
|
||||
$this->Shell->Dispatch->expectAt(0, 'stdout', array('', false));
|
||||
$this->Shell->Dispatch->expectAt(1, 'stdout', array($bar . "\n", false));
|
||||
$this->Shell->Dispatch->expectAt(2, 'stdout', array('', false));
|
||||
$this->Shell->hr();
|
||||
|
||||
$this->Shell->Dispatch->expectAt(3, 'stdout', array("\n", false));
|
||||
$this->Shell->Dispatch->expectAt(4, 'stdout', array($bar . "\n", false));
|
||||
$this->Shell->Dispatch->expectAt(5, 'stdout', array("\n", false));
|
||||
$this->Shell->hr(true);
|
||||
|
||||
$this->Shell->Dispatch->expectAt(3, 'stdout', array("\n\n", false));
|
||||
$this->Shell->Dispatch->expectAt(4, 'stdout', array($bar . "\n", false));
|
||||
$this->Shell->Dispatch->expectAt(5, 'stdout', array("\n\n", false));
|
||||
$this->Shell->hr(2);
|
||||
}
|
||||
/**
|
||||
* testError
|
||||
*
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
function testError() {
|
||||
$this->Shell->Dispatch->expectAt(0, 'stderr', array("Error: Foo Not Found\n"));
|
||||
$this->Shell->error('Foo Not Found');
|
||||
$this->assertIdentical($this->Shell->stopped, 1);
|
||||
|
||||
$this->Shell->stopped = null;
|
||||
|
||||
$this->Shell->Dispatch->expectAt(1, 'stderr', array("Error: Foo Not Found\n"));
|
||||
$this->Shell->Dispatch->expectAt(2, 'stderr', array("Searched all...\n"));
|
||||
$this->Shell->error('Foo Not Found', 'Searched all...');
|
||||
$this->assertIdentical($this->Shell->stopped, 1);
|
||||
}
|
||||
/**
|
||||
* testLoadTasks method
|
||||
*
|
||||
|
|
|
@ -1705,5 +1705,74 @@ class RouterTest extends CakeTestCase {
|
|||
$this->assertEqual(Router::stripPlugin($url), $url);
|
||||
$this->assertEqual(Router::stripPlugin($url, null), $url);
|
||||
}
|
||||
/**
|
||||
* testCurentRoute
|
||||
*
|
||||
* This test needs some improvement and actual requestAction() usage
|
||||
*
|
||||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function testCurentRoute() {
|
||||
$url = array('controller' => 'pages', 'action' => 'display', 'government');
|
||||
Router::connect('/government', $url);
|
||||
Router::parse('/government');
|
||||
$route = Router::currentRoute();
|
||||
$this->assertEqual(array_merge($url, array('plugin' => false)), $route[3]);
|
||||
}
|
||||
/**
|
||||
* testRequestRoute
|
||||
*
|
||||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function testRequestRoute() {
|
||||
$url = array('controller' => 'products', 'action' => 'display', 5);
|
||||
Router::connect('/government', $url);
|
||||
Router::parse('/government');
|
||||
$route = Router::requestRoute();
|
||||
$this->assertEqual(array_merge($url, array('plugin' => false)), $route[3]);
|
||||
|
||||
// test that the first route is matched
|
||||
$newUrl = array('controller' => 'products', 'action' => 'display', 6);
|
||||
Router::connect('/government', $url);
|
||||
Router::parse('/government');
|
||||
$route = Router::requestRoute();
|
||||
$this->assertEqual(array_merge($url, array('plugin' => false)), $route[3]);
|
||||
|
||||
// test that an unmatched route does not change the current route
|
||||
$newUrl = array('controller' => 'products', 'action' => 'display', 6);
|
||||
Router::connect('/actor', $url);
|
||||
Router::parse('/government');
|
||||
$route = Router::requestRoute();
|
||||
$this->assertEqual(array_merge($url, array('plugin' => false)), $route[3]);
|
||||
}
|
||||
/**
|
||||
* testGetParams
|
||||
*
|
||||
* @return void
|
||||
* @access public
|
||||
*/
|
||||
function testGetParams() {
|
||||
$paths = array('base' => '/', 'here' => '/products/display/5', 'webroot' => '/webroot');
|
||||
$params = array('param1' => '1', 'param2' => '2');
|
||||
Router::setRequestInfo(array($params, $paths));
|
||||
$expected = array(
|
||||
'plugin' => false, 'controller' => false, 'action' => false,
|
||||
'param1' => '1', 'param2' => '2'
|
||||
);
|
||||
$this->assertEqual(Router::getparams(), $expected);
|
||||
$this->assertEqual(Router::getparam('controller'), false);
|
||||
$this->assertEqual(Router::getparam('param1'), '1');
|
||||
$this->assertEqual(Router::getparam('param2'), '2');
|
||||
|
||||
Router::reload();
|
||||
|
||||
$params = array('controller' => 'pages', 'action' => 'display');
|
||||
Router::setRequestInfo(array($params, $paths));
|
||||
$expected = array('plugin' => false, 'controller' => 'pages', 'action' => 'display');
|
||||
$this->assertEqual(Router::getparams(), $expected);
|
||||
$this->assertEqual(Router::getparams(true), $expected);
|
||||
}
|
||||
}
|
||||
?>
|
|
@ -765,20 +765,88 @@ class PaginatorHelperTest extends CakeTestCase {
|
|||
'options' => array('page' => 1, 'limit' => 3, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))
|
||||
);
|
||||
$result = $this->Paginator->numbers();
|
||||
$expected = '<span><a href="/index/page:4">4</a></span> | <span><a href="/index/page:5">5</a></span> | <span><a href="/index/page:6">6</a></span> | <span><a href="/index/page:7">7</a></span> | <span class="current">8</span> | <span><a href="/index/page:9">9</a></span> | <span><a href="/index/page:10">10</a></span> | <span><a href="/index/page:11">11</a></span> | <span><a href="/index/page:12">12</a></span>';
|
||||
$this->assertEqual($result, $expected);
|
||||
$expected = array(
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array('class' => 'current')), '8', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:10')), '10', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:11')), '11', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:12')), '12', '/a', '/span',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$result = $this->Paginator->numbers(array('tag' => 'li'));
|
||||
$expected = '<li><a href="/index/page:4">4</a></li> | <li><a href="/index/page:5">5</a></li> | <li><a href="/index/page:6">6</a></li> | <li><a href="/index/page:7">7</a></li> | <li class="current">8</li> | <li><a href="/index/page:9">9</a></li> | <li><a href="/index/page:10">10</a></li> | <li><a href="/index/page:11">11</a></li> | <li><a href="/index/page:12">12</a></li>';
|
||||
$this->assertEqual($result, $expected);
|
||||
$expected = array(
|
||||
array('li' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/li',
|
||||
' | ',
|
||||
array('li' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/li',
|
||||
' | ',
|
||||
array('li' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/li',
|
||||
' | ',
|
||||
array('li' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/li',
|
||||
' | ',
|
||||
array('li' => array('class' => 'current')), '8', '/li',
|
||||
' | ',
|
||||
array('li' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/li',
|
||||
' | ',
|
||||
array('li' => array()), array('a' => array('href' => '/index/page:10')), '10', '/a', '/li',
|
||||
' | ',
|
||||
array('li' => array()), array('a' => array('href' => '/index/page:11')), '11', '/a', '/li',
|
||||
' | ',
|
||||
array('li' => array()), array('a' => array('href' => '/index/page:12')), '12', '/a', '/li',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$result = $this->Paginator->numbers(array('tag' => 'li', 'separator' => false));
|
||||
$expected = '<li><a href="/index/page:4">4</a></li><li><a href="/index/page:5">5</a></li><li><a href="/index/page:6">6</a></li><li><a href="/index/page:7">7</a></li><li class="current">8</li><li><a href="/index/page:9">9</a></li><li><a href="/index/page:10">10</a></li><li><a href="/index/page:11">11</a></li><li><a href="/index/page:12">12</a></li>';
|
||||
$this->assertEqual($result, $expected);
|
||||
$expected = array(
|
||||
array('li' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/li',
|
||||
array('li' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/li',
|
||||
array('li' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/li',
|
||||
array('li' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/li',
|
||||
array('li' => array('class' => 'current')), '8', '/li',
|
||||
array('li' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/li',
|
||||
array('li' => array()), array('a' => array('href' => '/index/page:10')), '10', '/a', '/li',
|
||||
array('li' => array()), array('a' => array('href' => '/index/page:11')), '11', '/a', '/li',
|
||||
array('li' => array()), array('a' => array('href' => '/index/page:12')), '12', '/a', '/li',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$result = $this->Paginator->numbers(true);
|
||||
$expected = '<span><a href="/index/page:1">first</a></span> | <span><a href="/index/page:4">4</a></span> | <span><a href="/index/page:5">5</a></span> | <span><a href="/index/page:6">6</a></span> | <span><a href="/index/page:7">7</a></span> | <span class="current">8</span> | <span><a href="/index/page:9">9</a></span> | <span><a href="/index/page:10">10</a></span> | <span><a href="/index/page:11">11</a></span> | <span><a href="/index/page:12">12</a></span> | <span><a href="/index/page:15">last</a></span>';
|
||||
$this->assertEqual($result, $expected);
|
||||
$expected = array(
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:1')), 'first', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array('class' => 'current')), '8', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:10')), '10', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:11')), '11', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:12')), '12', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:15')), 'last', '/a', '/span',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$this->Paginator->params['paging'] = array('Client' => array(
|
||||
'page' => 1, 'current' => 3, 'count' => 30, 'prevPage' => false, 'nextPage' => 2, 'pageCount' => 15,
|
||||
|
@ -786,8 +854,27 @@ class PaginatorHelperTest extends CakeTestCase {
|
|||
'options' => array('page' => 1, 'limit' => 3, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))
|
||||
);
|
||||
$result = $this->Paginator->numbers();
|
||||
$expected = '<span class="current">1</span> | <span><a href="/index/page:2">2</a></span> | <span><a href="/index/page:3">3</a></span> | <span><a href="/index/page:4">4</a></span> | <span><a href="/index/page:5">5</a></span> | <span><a href="/index/page:6">6</a></span> | <span><a href="/index/page:7">7</a></span> | <span><a href="/index/page:8">8</a></span> | <span><a href="/index/page:9">9</a></span>';
|
||||
$this->assertEqual($result, $expected);
|
||||
$expected = array(
|
||||
array('span' => array('class' => 'current')), '1', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:2')), '2', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:3')), '3', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:8')), '8', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/span',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
|
||||
$this->Paginator->params['paging'] = array('Client' => array(
|
||||
'page' => 14, 'current' => 3, 'count' => 30, 'prevPage' => false, 'nextPage' => 2, 'pageCount' => 15,
|
||||
|
@ -795,8 +882,26 @@ class PaginatorHelperTest extends CakeTestCase {
|
|||
'options' => array('page' => 1, 'limit' => 3, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))
|
||||
);
|
||||
$result = $this->Paginator->numbers();
|
||||
$expected = '<span><a href="/index/page:7">7</a></span> | <span><a href="/index/page:8">8</a></span> | <span><a href="/index/page:9">9</a></span> | <span><a href="/index/page:10">10</a></span> | <span><a href="/index/page:11">11</a></span> | <span><a href="/index/page:12">12</a></span> | <span><a href="/index/page:13">13</a></span> | <span class="current">14</span> | <span><a href="/index/page:15">15</a></span>';
|
||||
$this->assertEqual($result, $expected);
|
||||
$expected = array(
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:8')), '8', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:10')), '10', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:11')), '11', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:12')), '12', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:13')), '13', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array('class' => 'current')), '14', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:15')), '15', '/a', '/span',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$this->Paginator->params['paging'] = array('Client' => array(
|
||||
'page' => 2, 'current' => 3, 'count' => 27, 'prevPage' => false, 'nextPage' => 2, 'pageCount' => 9,
|
||||
|
@ -805,12 +910,48 @@ class PaginatorHelperTest extends CakeTestCase {
|
|||
);
|
||||
|
||||
$result = $this->Paginator->numbers(array('first' => 1));
|
||||
$expected = '<span><a href="/index/page:1">1</a></span> | <span class="current">2</span> | <span><a href="/index/page:3">3</a></span> | <span><a href="/index/page:4">4</a></span> | <span><a href="/index/page:5">5</a></span> | <span><a href="/index/page:6">6</a></span> | <span><a href="/index/page:7">7</a></span> | <span><a href="/index/page:8">8</a></span> | <span><a href="/index/page:9">9</a></span>';
|
||||
$this->assertEqual($result, $expected);
|
||||
$expected = array(
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array('class' => 'current')), '2', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:3')), '3', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:8')), '8', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/span',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$result = $this->Paginator->numbers(array('last' => 1));
|
||||
$expected = '<span><a href="/index/page:1">1</a></span> | <span class="current">2</span> | <span><a href="/index/page:3">3</a></span> | <span><a href="/index/page:4">4</a></span> | <span><a href="/index/page:5">5</a></span> | <span><a href="/index/page:6">6</a></span> | <span><a href="/index/page:7">7</a></span> | <span><a href="/index/page:8">8</a></span> | <span><a href="/index/page:9">9</a></span>';
|
||||
$this->assertEqual($result, $expected);
|
||||
$expected = array(
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array('class' => 'current')), '2', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:3')), '3', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:8')), '8', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/span',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$this->Paginator->params['paging'] = array('Client' => array(
|
||||
'page' => 15, 'current' => 3, 'count' => 30, 'prevPage' => false, 'nextPage' => 2, 'pageCount' => 15,
|
||||
|
@ -819,8 +960,29 @@ class PaginatorHelperTest extends CakeTestCase {
|
|||
);
|
||||
|
||||
$result = $this->Paginator->numbers(array('first' => 1));
|
||||
$expected = '<span><a href="/index/page:1">1</a></span>...<span><a href="/index/page:7">7</a></span> | <span><a href="/index/page:8">8</a></span> | <span><a href="/index/page:9">9</a></span> | <span><a href="/index/page:10">10</a></span> | <span><a href="/index/page:11">11</a></span> | <span><a href="/index/page:12">12</a></span> | <span><a href="/index/page:13">13</a></span> | <span><a href="/index/page:14">14</a></span> | <span class="current">15</span>';
|
||||
$this->assertEqual($result, $expected);
|
||||
$expected = array(
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
||||
'...',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:8')), '8', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:10')), '10', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:11')), '11', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:12')), '12', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:13')), '13', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:14')), '14', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array('class' => 'current')), '15', '/span',
|
||||
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$this->Paginator->params['paging'] = array('Client' => array(
|
||||
'page' => 10, 'current' => 3, 'count' => 30, 'prevPage' => false, 'nextPage' => 2, 'pageCount' => 15,
|
||||
|
@ -829,8 +991,30 @@ class PaginatorHelperTest extends CakeTestCase {
|
|||
);
|
||||
|
||||
$result = $this->Paginator->numbers(array('first' => 1, 'last' => 1));
|
||||
$expected = '<span><a href="/index/page:1">1</a></span>...<span><a href="/index/page:6">6</a></span> | <span><a href="/index/page:7">7</a></span> | <span><a href="/index/page:8">8</a></span> | <span><a href="/index/page:9">9</a></span> | <span class="current">10</span> | <span><a href="/index/page:11">11</a></span> | <span><a href="/index/page:12">12</a></span> | <span><a href="/index/page:13">13</a></span> | <span><a href="/index/page:14">14</a></span> | <span><a href="/index/page:15">15</a></span>';
|
||||
$this->assertEqual($result, $expected);
|
||||
$expected = array(
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
||||
'...',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:8')), '8', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array('class' => 'current')), '10', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:11')), '11', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:12')), '12', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:13')), '13', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:14')), '14', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:15')), '15', '/a', '/span',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$this->Paginator->params['paging'] = array('Client' => array(
|
||||
'page' => 6, 'current' => 15, 'count' => 623, 'prevPage' => 1, 'nextPage' => 1, 'pageCount' => 42,
|
||||
|
@ -839,8 +1023,30 @@ class PaginatorHelperTest extends CakeTestCase {
|
|||
);
|
||||
|
||||
$result = $this->Paginator->numbers(array('first' => 1, 'last' => 1));
|
||||
$expected = '<span><a href="/index/page:1">1</a></span> | <span><a href="/index/page:2">2</a></span> | <span><a href="/index/page:3">3</a></span> | <span><a href="/index/page:4">4</a></span> | <span><a href="/index/page:5">5</a></span> | <span class="current">6</span> | <span><a href="/index/page:7">7</a></span> | <span><a href="/index/page:8">8</a></span> | <span><a href="/index/page:9">9</a></span> | <span><a href="/index/page:10">10</a></span>...<span><a href="/index/page:42">42</a></span>';
|
||||
$this->assertEqual($result, $expected);
|
||||
$expected = array(
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:2')), '2', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:3')), '3', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array('class' => 'current')), '6', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:8')), '8', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:9')), '9', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:10')), '10', '/a', '/span',
|
||||
'...',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:42')), '42', '/a', '/span',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$this->Paginator->params['paging'] = array('Client' => array(
|
||||
'page' => 37, 'current' => 15, 'count' => 623, 'prevPage' => 1, 'nextPage' => 1, 'pageCount' => 42,
|
||||
|
@ -849,8 +1055,30 @@ class PaginatorHelperTest extends CakeTestCase {
|
|||
);
|
||||
|
||||
$result = $this->Paginator->numbers(array('first' => 1, 'last' => 1));
|
||||
$expected = '<span><a href="/index/page:1">1</a></span>...<span><a href="/index/page:33">33</a></span> | <span><a href="/index/page:34">34</a></span> | <span><a href="/index/page:35">35</a></span> | <span><a href="/index/page:36">36</a></span> | <span class="current">37</span> | <span><a href="/index/page:38">38</a></span> | <span><a href="/index/page:39">39</a></span> | <span><a href="/index/page:40">40</a></span> | <span><a href="/index/page:41">41</a></span> | <span><a href="/index/page:42">42</a></span>';
|
||||
$this->assertEqual($result, $expected);
|
||||
$expected = array(
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
||||
'...',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:33')), '33', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:34')), '34', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:35')), '35', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:36')), '36', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array('class' => 'current')), '37', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:38')), '38', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:39')), '39', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:40')), '40', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:41')), '41', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:42')), '42', '/a', '/span',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$this->Paginator->params['paging'] = array(
|
||||
'Client' => array(
|
||||
|
@ -876,8 +1104,14 @@ class PaginatorHelperTest extends CakeTestCase {
|
|||
);
|
||||
$options = array('modulus' => 10);
|
||||
$result = $this->Paginator->numbers($options);
|
||||
$expected = '<span class="current">1</span> | <span><a href="/index/page:2">2</a></span> | <span><a href="/index/page:3">3</a></span>';
|
||||
$this->assertEqual($result, $expected);
|
||||
$expected = array(
|
||||
array('span' => array('class' => 'current')), '1', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:2')), '2', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:3')), '3', '/a', '/span',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$this->Paginator->params['paging'] = array('Client' => array(
|
||||
'page' => 2, 'current' => 10, 'count' => 31, 'prevPage' => true, 'nextPage' => true, 'pageCount' => 4,
|
||||
|
@ -885,8 +1119,17 @@ class PaginatorHelperTest extends CakeTestCase {
|
|||
'options' => array('page' => 1, 'order' => array('Client.name' => 'DESC'), 'conditions' => array()))
|
||||
);
|
||||
$result = $this->Paginator->numbers();
|
||||
$expected = '<span><a href="/index/page:1/sort:Client.name/direction:DESC">1</a></span> | <span class="current">2</span> | <span><a href="/index/page:3/sort:Client.name/direction:DESC">3</a></span> | <span><a href="/index/page:4/sort:Client.name/direction:DESC">4</a></span>';
|
||||
$this->assertEqual($result, $expected);
|
||||
$expected = array(
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:1/sort:Client.name/direction:DESC')), '1', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array('class' => 'current')), '2', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:3/sort:Client.name/direction:DESC')), '3', '/a', '/span',
|
||||
' | ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4/sort:Client.name/direction:DESC')), '4', '/a', '/span',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
|
||||
$this->Paginator->params['paging'] = array('Client' => array(
|
||||
'page' => 4895, 'current' => 10, 'count' => 48962, 'prevPage' => 1, 'nextPage' => 1, 'pageCount' => 4897,
|
||||
|
@ -910,11 +1153,7 @@ class PaginatorHelperTest extends CakeTestCase {
|
|||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$this->Paginator->params['paging'] = array('Client' => array(
|
||||
'page' => 3, 'current' => 10, 'count' => 48962, 'prevPage' => 1, 'nextPage' => 1, 'pageCount' => 4897,
|
||||
'defaults' => array('limit' => 10),
|
||||
'options' => array('page' => 4894, 'limit' => 10, 'order' => 'Client.name DESC', 'conditions' => array()))
|
||||
);
|
||||
$this->Paginator->params['paging']['Client']['page'] = 3;
|
||||
|
||||
$result = $this->Paginator->numbers(array('first' => 2, 'modulus' => 2, 'last' => 2));
|
||||
$expected = array(
|
||||
|
@ -947,6 +1186,125 @@ class PaginatorHelperTest extends CakeTestCase {
|
|||
array('span' => array()), array('a' => array('href' => '/index/page:4897')), '4897', '/a', '/span',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$result = $this->Paginator->numbers(array('first' => 5, 'modulus' => 5, 'last' => 5, 'separator' => ' - '));
|
||||
$expected = array(
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:2')), '2', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array('class' => 'current')), '3', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/span',
|
||||
'...',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4893')), '4893', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4894')), '4894', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4895')), '4895', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4896')), '4896', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4897')), '4897', '/a', '/span',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$this->Paginator->params['paging']['Client']['page'] = 4893;
|
||||
$result = $this->Paginator->numbers(array('first' => 5, 'modulus' => 4, 'last' => 5, 'separator' => ' - '));
|
||||
$expected = array(
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:2')), '2', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:3')), '3', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/span',
|
||||
'...',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4891')), '4891', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4892')), '4892', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array('class' => 'current')), '4893', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4894')), '4894', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4895')), '4895', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4896')), '4896', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4897')), '4897', '/a', '/span',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$this->Paginator->params['paging']['Client']['page'] = 58;
|
||||
$result = $this->Paginator->numbers(array('first' => 5, 'modulus' => 4, 'last' => 5, 'separator' => ' - '));
|
||||
$expected = array(
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:2')), '2', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:3')), '3', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:5')), '5', '/a', '/span',
|
||||
'...',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:56')), '56', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:57')), '57', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array('class' => 'current')), '58', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:59')), '59', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:60')), '60', '/a', '/span',
|
||||
'...',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4893')), '4893', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4894')), '4894', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4895')), '4895', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4896')), '4896', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4897')), '4897', '/a', '/span',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
|
||||
$this->Paginator->params['paging']['Client']['page'] = 5;
|
||||
$result = $this->Paginator->numbers(array('first' => 5, 'modulus' => 4, 'last' => 5, 'separator' => ' - '));
|
||||
$expected = array(
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:1')), '1', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:2')), '2', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:3')), '3', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4')), '4', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array('class' => 'current')), '5', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:6')), '6', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:7')), '7', '/a', '/span',
|
||||
'...',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4893')), '4893', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4894')), '4894', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4895')), '4895', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4896')), '4896', '/a', '/span',
|
||||
' - ',
|
||||
array('span' => array()), array('a' => array('href' => '/index/page:4897')), '4897', '/a', '/span',
|
||||
);
|
||||
$this->assertTags($result, $expected);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -97,7 +97,6 @@ class CakeHtmlReporter extends SimpleReporter {
|
|||
echo "<strong>" . $this->getFailCount() . "</strong> fails and ";
|
||||
echo "<strong>" . $this->getExceptionCount() . "</strong> exceptions.";
|
||||
echo "</div>\n";
|
||||
echo "</body>\n</html>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Reference in a new issue