Merge branch '1.3-misc' into 1.3-merger

Conflicts:
	cake/tests/cases/libs/configure.test.php
This commit is contained in:
mark_story 2009-11-15 20:09:12 -05:00
commit acd2c15690
133 changed files with 1694 additions and 933 deletions

View file

@ -69,22 +69,12 @@
*/
//Configure::write('App.baseUrl', env('SCRIPT_NAME'));
/**
* Uncomment the define below to use CakePHP admin routes.
*
* The value of the define determines the name of the route
* and its associated controller actions:
*
* 'admin' -> admin_index() and /admin/controller/index
* 'superuser' -> superuser_index() and /superuser/controller/index
*
* [Note Routing.admin is deprecated in 1.3. Use Routing.prefixes instead]
*/
//Configure::write('Routing.admin', 'admin');
/**
* Uncomment the define below to use CakePHP prefix routes.
*
* The value of the define determines the names of the routes
* and their associated controller actions:
*
* Set to an array of prefixes you want to use in your application. Use for
* admin or other prefixed routes.
*
@ -93,6 +83,8 @@
* Enables:
* `admin_index()` and `/admin/controller/index`
* `manager_index()` and `/manager/controller/index`
*
* [Note Routing.admin is deprecated in 1.3. Use Routing.prefixes instead]
*/
//Configure::write('Routing.prefixes', array('admin'));

View file

@ -212,6 +212,28 @@ if (!function_exists('array_combine')) {
return htmlspecialchars($text, ENT_QUOTES, $charset);
}
/**
* Splits a dot syntax plugin name into its plugin and classname.
* If $name does not have a dot, then index 0 will be null.
*
* Commonly used like `list($plugin, $name) = pluginSplit($name);`
*
* @param string $name The name you want to plugin split.
* @param boolean $dotAppend Set to true if you want the plugin to have a '.' appended to it.
* @param string $plugin Optional default plugin to use if no plugin is found. Defaults to null.
* @return array Array with 2 indexes. 0 => plugin name, 1 => classname
*/
function pluginSplit($name, $dotAppend = false, $plugin = null) {
if (strpos($name, '.') !== false) {
$parts = explode('.', $name, 2);
if ($dotAppend) {
$parts[0] .= '.';
}
return $parts;
}
return array($plugin, $name);
}
/**
* Returns an array of all the given parameters.
*

View file

@ -318,12 +318,7 @@ class ShellDispatcher {
return true;
}
if (strpos($arg, '.') !== false) {
list($plugin, $shell) = explode('.', $arg);
} else {
$plugin = null;
$shell = $arg;
}
list($plugin, $shell) = pluginSplit($arg);
$this->shell = $shell;
$this->shellName = Inflector::camelize($shell);
$this->shellClass = $this->shellName . 'Shell';

View file

@ -236,7 +236,7 @@ class AclShell extends Shell {
* @param integer $indent indent level.
* @return void
* @access protected
**/
*/
function _outputNode($class, $node, $indent) {
$indent = str_repeat(' ', $indent);
$data = $node[$class];
@ -521,7 +521,7 @@ class AclShell extends Shell {
*
* @param string $identifier Identifier to parse
* @return mixed a string for aliases, and an array for model.foreignKey
**/
*/
function parseIdentifier($identifier) {
if (preg_match('/^([\w]+)\.(.*)$/', $identifier, $matches)) {
return array(
@ -539,7 +539,7 @@ class AclShell extends Shell {
* @param string $class Class type you want (Aro/Aco)
* @param mixed $identifier A mixed identifier for finding the node.
* @return int Integer of NodeId. Will trigger an error if nothing is found.
**/
*/
function _getNodeId($class, $identifier) {
$node = $this->Acl->{$class}->node($identifier);
if (empty($node)) {

View file

@ -57,7 +57,7 @@ class BakeShell extends Shell {
}
foreach($this->args as $i => $arg) {
if (strpos($arg, '.')) {
list($this->params['plugin'], $this->args[$i]) = explode('.', $arg);
list($this->params['plugin'], $this->args[$i]) = pluginSplit($arg);
break;
}
}

View file

@ -63,9 +63,10 @@ class SchemaShell extends Shell {
} elseif (!empty($this->args[0])) {
$name = $this->params['name'] = $this->args[0];
}
if (strpos($name, '.')) {
list($this->params['plugin'], $this->params['name']) = explode('.', $name);
$name = $this->params['name'];
list($this->params['plugin'], $splitName) = pluginSplit($name);
$name = $this->params['name'] = $splitName;
}
if ($name) {
@ -242,7 +243,7 @@ class SchemaShell extends Shell {
* Run database create commands. Alias for run create.
*
* @return void
**/
*/
function create() {
list($Schema, $table) = $this->_loadSchema();
$this->__create($Schema, $table);
@ -252,7 +253,7 @@ class SchemaShell extends Shell {
* Run database create commands. Alias for run create.
*
* @return void
**/
*/
function update() {
list($Schema, $table) = $this->_loadSchema();
$this->__update($Schema, $table);
@ -262,7 +263,7 @@ class SchemaShell extends Shell {
* Prepares the Schema objects for database operations.
*
* @return void
**/
*/
function _loadSchema() {
$name = $plugin = null;
if (isset($this->params['name'])) {

View file

@ -254,11 +254,7 @@ class Shell extends Object {
$this->modelClass = $modelClassName;
foreach ($uses as $modelClass) {
$plugin = null;
if (strpos($modelClass, '.') !== false) {
list($plugin, $modelClass) = explode('.', $modelClass);
$plugin = $plugin . '.';
}
list($plugin, $modelClass) = pluginSplit($modelClass, true);
if (PHP5) {
$this->{$modelClass} = ClassRegistry::init($plugin . $modelClass);
} else {
@ -642,7 +638,7 @@ class Shell extends Object {
*
* @param string $pluginName Name of the plugin you want ie. DebugKit
* @return string $path path to the correct plugin.
**/
*/
function _pluginPath($pluginName) {
return App::pluginPath($pluginName);
}

View file

@ -113,7 +113,7 @@ class ControllerTask extends Shell {
*
* @access public
* @return void
**/
*/
function all() {
$this->interactive = false;
$this->listAll($this->connection, false);
@ -219,7 +219,7 @@ class ControllerTask extends Shell {
* Confirm a to be baked controller with the user
*
* @return void
**/
*/
function confirmController($controllerName, $useDynamicScaffold, $helpers, $components) {
$this->out();
$this->hr();
@ -257,7 +257,7 @@ class ControllerTask extends Shell {
* Interact with the user and ask about which methods (admin or regular they want to bake)
*
* @return array Array containing (bakeRegular, bakeAdmin) answers
**/
*/
function _askAboutMethods() {
$wannaBakeCrud = $this->in(
__("Would you like to create some basic class methods \n(index(), add(), view(), edit())?", true),
@ -348,7 +348,7 @@ class ControllerTask extends Shell {
* Interact with the user and get a list of additional helpers
*
* @return array Helpers that the user wants to use.
**/
*/
function doHelpers() {
return $this->_doPropertyChoices(
__("Would you like this controller to use other helpers\nbesides HtmlHelper and FormHelper?", true),
@ -360,7 +360,7 @@ class ControllerTask extends Shell {
* Interact with the user and get a list of additional components
*
* @return array Components the user wants to use.
**/
*/
function doComponents() {
return $this->_doPropertyChoices(
__("Would you like this controller to use any components?", true),
@ -374,7 +374,7 @@ class ControllerTask extends Shell {
* @param string $prompt A yes/no question to precede the list
* @param sting $example A question for a comma separated list, with examples.
* @return array Array of values for property.
**/
*/
function _doPropertyChoices($prompt, $example) {
$proceed = $this->in($prompt, array('y','n'), 'n');
$property = array();

View file

@ -53,7 +53,7 @@ class DbConfigTask extends Shell {
* Used for testing.
*
* @var string
**/
*/
var $databaseClassName = 'DATABASE_CONFIG';
/**
@ -351,7 +351,7 @@ class DbConfigTask extends Shell {
* Get a user specified Connection name
*
* @return void
**/
*/
function getConfig() {
App::import('Model', 'ConnectionManager', false);

View file

@ -54,14 +54,14 @@ class FixtureTask extends Shell {
* The db connection being used for baking
*
* @var string
**/
*/
var $connection = null;
/**
* Schema instance
*
* @var object
**/
*/
var $_Schema = null;
/**
@ -103,7 +103,7 @@ class FixtureTask extends Shell {
*
* @access public
* @return void
**/
*/
function all() {
$this->interactive = false;
$this->Model->interactive = false;
@ -140,7 +140,7 @@ class FixtureTask extends Shell {
*
* @param string $modelName Name of model you are dealing with.
* @return array Array of import options.
**/
*/
function importOptions($modelName) {
$options = array();
$doSchema = $this->in(__('Would you like to import schema for this fixture?', true), array('y', 'n'), 'n');
@ -230,7 +230,7 @@ class FixtureTask extends Shell {
* @param string $fixture Contents of the fixture file.
* @access public
* @return void
**/
*/
function generateFixtureFile($model, $otherVars) {
$defaults = array('table' => null, 'schema' => null, 'records' => null, 'import' => null, 'fields' => null);
$vars = array_merge($defaults, $otherVars);
@ -255,7 +255,7 @@ class FixtureTask extends Shell {
*
* @param array $table Table schema array
* @return string fields definitions
**/
*/
function _generateSchema($tableInfo) {
$schema = $this->_Schema->generateTable('f', $tableInfo);
return substr($schema, 10, -2);
@ -266,7 +266,7 @@ class FixtureTask extends Shell {
*
* @param array $table Table schema array
* @return array Array of records to use in the fixture.
**/
*/
function _generateRecords($tableInfo, $recordCount = 1) {
$records = array();
for ($i = 0; $i < $recordCount; $i++) {
@ -337,7 +337,7 @@ class FixtureTask extends Shell {
*
* @param array $records Array of records to be converted to string
* @return string A string value of the $records array.
**/
*/
function _makeRecordString($records) {
$out = "array(\n";
foreach ($records as $record) {
@ -360,7 +360,7 @@ class FixtureTask extends Shell {
* @param string $modelName name of the model to take records from.
* @param string $useTable Name of table to use.
* @return array Array of records.
**/
*/
function _getRecordsFromTable($modelName, $useTable = null) {
if ($this->interactive) {
$condition = null;

View file

@ -64,14 +64,14 @@ class ModelTask extends Shell {
* Holds tables found on connection.
*
* @var array
**/
*/
var $__tables = array();
/**
* Holds validation method map.
*
* @var array
**/
*/
var $__validations = array();
/**
@ -109,7 +109,7 @@ class ModelTask extends Shell {
* Bake all models at once.
*
* @return void
**/
*/
function all() {
$this->listAll($this->connection, false);
$unitTestExists = $this->_checkUnitTest();
@ -129,7 +129,7 @@ class ModelTask extends Shell {
*
* @param string $className Name of class you want model to be.
* @return object Model instance
**/
*/
function &_getModelObject($className) {
$object = new Model(array('name' => $className, 'ds' => $this->connection));
return $object;
@ -142,7 +142,7 @@ class ModelTask extends Shell {
* @param string $prompt Prompt to use for options list.
* @param integer $default The default option for the given prompt.
* @return result of user choice.
**/
*/
function inOptions($options, $prompt = null, $default = null) {
$valid = false;
$max = count($options);
@ -262,7 +262,7 @@ class ModelTask extends Shell {
* @param string $associations Collection of associations.
* @access protected
* @return void
**/
*/
function _printAssociation($modelName, $type, $associations) {
if (!empty($associations[$type])) {
for ($i = 0; $i < count($associations[$type]); $i++) {
@ -278,7 +278,7 @@ class ModelTask extends Shell {
* @param array $fields Array of fields that might have a primary key.
* @return string Name of field that is a primary key.
* @access public
**/
*/
function findPrimaryKey($fields) {
foreach ($fields as $name => $field) {
if (isset($field['key']) && $field['key'] == 'primary') {
@ -293,7 +293,7 @@ class ModelTask extends Shell {
*
* @param array $fields Array of fields to look for and choose as a displayField
* @return mixed Name of field to use for displayField or false if the user declines to choose
**/
*/
function findDisplayField($fields) {
$fieldNames = array_keys($fields);
$prompt = __("A displayField could not be automatically detected\nwould you like to choose one?", true);
@ -337,7 +337,7 @@ class ModelTask extends Shell {
* Populate the __validations array
*
* @return void
**/
*/
function initValidations() {
$options = $choices = array();
if (class_exists('Validation')) {
@ -363,7 +363,7 @@ class ModelTask extends Shell {
* @param string $fieldName Name of field to be validated.
* @param array $metaData metadata for field
* @return array Array of validation for the field.
**/
*/
function fieldValidation($fieldName, $metaData, $primaryKey = 'id') {
$defaultChoice = count($this->__validations);
$validate = $alreadyChosen = array();
@ -484,7 +484,7 @@ class ModelTask extends Shell {
* @param object $model Model instance of model being generated.
* @param array $associations Array of inprogress associations
* @return array $associations with belongsTo added in.
**/
*/
function findBelongsTo(&$model, $associations) {
$fields = $model->schema();
foreach ($fields as $fieldName => $field) {
@ -513,7 +513,7 @@ class ModelTask extends Shell {
* @param object $model Model instance being generated
* @param array $associations Array of inprogress associations
* @return array $associations with hasOne and hasMany added in.
**/
*/
function findHasOneAndMany(&$model, $associations) {
$foreignKey = $this->_modelKey($model->name);
foreach ($this->__tables as $otherTable) {
@ -556,7 +556,7 @@ class ModelTask extends Shell {
* @param object $model Model instance being generated
* @param array $associations Array of inprogress associations
* @return array $associations with hasAndBelongsToMany added in.
**/
*/
function findHasAndBelongsToMany(&$model, $associations) {
$foreignKey = $this->_modelKey($model->name);
foreach ($this->__tables as $otherTable) {
@ -596,7 +596,7 @@ class ModelTask extends Shell {
* @param array $model Temporary Model instance.
* @param array $associations Array of associations to be confirmed.
* @return array Array of confirmed associations
**/
*/
function confirmAssociations(&$model, $associations) {
foreach ($associations as $type => $settings) {
if (!empty($associations[$type])) {
@ -624,7 +624,7 @@ class ModelTask extends Shell {
* @param object $model Temporary model instance
* @param array $associations Array of associations.
* @return array Array of associations.
**/
*/
function doMoreAssociations($model, $associations) {
$prompt = __('Would you like to define some additional model associations?', true);
$wannaDoMoreAssoc = $this->in($prompt, array('y','n'), 'n');
@ -689,7 +689,7 @@ class ModelTask extends Shell {
* Finds all possible keys to use on custom associations.
*
* @return array array of tables and possible keys
**/
*/
function _generatePossibleKeys() {
$possible = array();
foreach ($this->__tables as $otherTable) {
@ -782,7 +782,7 @@ class ModelTask extends Shell {
* @param string $modelName Name of the model you want a table for.
* @param string $useDbConfig Name of the database config you want to get tables from.
* @return void
**/
*/
function getTable($modelName, $useDbConfig = null) {
if (!isset($useDbConfig)) {
$useDbConfig = $this->connection;
@ -811,7 +811,7 @@ class ModelTask extends Shell {
*
* @param string $useDbConfig Connection name to scan.
* @return array Array of tables in the database.
**/
*/
function getAllTables($useDbConfig = null) {
if (!isset($useDbConfig)) {
$useDbConfig = $this->connection;
@ -906,7 +906,7 @@ class ModelTask extends Shell {
* @access public
* @return void
* @see FixtureTask::bake
**/
*/
function bakeFixture($className, $useTable = null) {
$this->Fixture->connection = $this->connection;
$this->Fixture->plugin = $this->plugin;

View file

@ -204,7 +204,7 @@ class PluginTask extends Shell {
* find and change $this->path to the user selection
*
* @return void
**/
*/
function findPath($pathOptions) {
$valid = false;
$max = count($pathOptions);

View file

@ -30,7 +30,7 @@ class ProjectTask extends Shell {
* configs path (used in testing).
*
* @var string
**/
*/
var $configPath = null;
/**

View file

@ -23,7 +23,7 @@ class TemplateTask extends Shell {
* variables to add to template scope
*
* @var array
**/
*/
var $templateVars = array();
/**
@ -31,7 +31,7 @@ class TemplateTask extends Shell {
* Contains a list of $theme => $path
*
* @var array
**/
*/
var $templatePaths = array();
/**
@ -39,7 +39,7 @@ class TemplateTask extends Shell {
*
* @access public
* @return void
**/
*/
function initialize() {
$this->templatePaths = $this->_findThemes();
}
@ -50,7 +50,7 @@ class TemplateTask extends Shell {
* Bake themes are directories not named `skel` inside a `vendors/shells/templates` path.
*
* @return array Array of bake themes that are installed.
**/
*/
function _findThemes() {
$paths = App::path('shells');
$core = array_pop($paths);
@ -128,7 +128,7 @@ class TemplateTask extends Shell {
* @param string $vars Additional vars to set to template scope.
* @access public
* @return contents of generated code template
**/
*/
function generate($directory, $filename, $vars = null) {
if ($vars !== null) {
$this->set($vars);
@ -156,7 +156,7 @@ class TemplateTask extends Shell {
* If there is more than one installed theme user interaction will happen
*
* @return string returns the path to the selected theme.
**/
*/
function getThemePath() {
if (count($this->templatePaths) == 1) {
$paths = array_values($this->templatePaths);
@ -193,7 +193,7 @@ class TemplateTask extends Shell {
* @param string $filename lower_case_underscored filename you want.
* @access public
* @return string filename will exit program if template is not found.
**/
*/
function _findTemplate($path, $directory, $filename) {
$themeFile = $path . $directory . DS . $filename . '.ctp';
if (file_exists($themeFile)) {

View file

@ -46,28 +46,28 @@ class TestTask extends Shell {
* Tasks used.
*
* @var array
**/
*/
var $tasks = array('Template');
/**
* class types that methods can be generated for
*
* @var array
**/
*/
var $classTypes = array('Model', 'Controller', 'Component', 'Behavior', 'Helper');
/**
* Internal list of fixtures that have been added so far.
*
* @var string
**/
*/
var $_fixtures = array();
/**
* Flag for interactive mode
*
* @var boolean
**/
*/
var $interactive = false;
/**
@ -164,7 +164,7 @@ class TestTask extends Shell {
* Interact with the user and get their chosen type. Can exit the script.
*
* @return string Users chosen type.
**/
*/
function getObjectType() {
$this->hr();
$this->out(__("Select an object type:", true));
@ -188,7 +188,7 @@ class TestTask extends Shell {
*
* @param string $objectType Type of object to list classes for i.e. Model, Controller.
* @return string Class name the user chose.
**/
*/
function getClassName($objectType) {
$options = App::objects(strtolower($objectType));
$this->out(sprintf(__('Choose a %s class', true), $objectType));
@ -209,7 +209,7 @@ class TestTask extends Shell {
* Currently only model, and controller are supported
*
* @return boolean
**/
*/
function typeCanDetectFixtures($type) {
$type = strtolower($type);
return ($type == 'controller' || $type == 'model');
@ -219,7 +219,7 @@ class TestTask extends Shell {
* Check if a class with the given type is loaded or can be loaded.
*
* @return boolean
**/
*/
function isLoadableClass($type, $class) {
return App::import($type, $class);
}
@ -229,7 +229,7 @@ class TestTask extends Shell {
* So that fixtures can be detected
*
* @return object
**/
*/
function &buildTestSubject($type, $class) {
ClassRegistry::flush();
App::import($type, $class);
@ -246,7 +246,7 @@ class TestTask extends Shell {
* Gets the real class name from the cake short form.
*
* @return string Real classname
**/
*/
function getRealClassName($type, $class) {
if (strtolower($type) == 'model') {
return $class;
@ -260,7 +260,7 @@ class TestTask extends Shell {
*
* @param string $className Name of class to look at.
* @return array Array of method names.
**/
*/
function getTestableMethods($className) {
$classMethods = get_class_methods($className);
$parentMethods = get_class_methods(get_parent_class($className));
@ -280,7 +280,7 @@ class TestTask extends Shell {
*
* @param object The object you want to generate fixtures for.
* @return array Array of fixtures to be included in the test.
**/
*/
function generateFixtureList(&$subject) {
$this->_fixtures = array();
if (is_a($subject, 'Model')) {
@ -297,7 +297,7 @@ class TestTask extends Shell {
*
* @return void
* @access protected
**/
*/
function _processModel(&$subject) {
$this->_addFixture($subject->name);
$associated = $subject->getAssociated();
@ -321,7 +321,7 @@ class TestTask extends Shell {
*
* @return void
* @access protected
**/
*/
function _processController(&$subject) {
$subject->constructClasses();
$models = array(Inflector::classify($subject->name));
@ -339,7 +339,7 @@ class TestTask extends Shell {
*
* @return void
* @access protected
**/
*/
function _addFixture($name) {
$parent = get_parent_class($name);
$prefix = 'app.';
@ -355,7 +355,7 @@ class TestTask extends Shell {
* Interact with the user to get additional fixtures they want to use.
*
* @return void
**/
*/
function getUserFixtures() {
$proceed = $this->in(__('Bake could not detect fixtures, would you like to add some?', true), array('y','n'), 'n');
$fixtures = array();
@ -373,7 +373,7 @@ class TestTask extends Shell {
* Controllers require a mock class.
*
* @return boolean
**/
*/
function hasMockClass($type) {
$type = strtolower($type);
return $type == 'controller';
@ -383,7 +383,7 @@ class TestTask extends Shell {
* Generate a constructor code snippet for the type and classname
*
* @return string Constructor snippet for the thing you are building.
**/
*/
function generateConstructor($type, $fullClassName) {
$type = strtolower($type);
if ($type == 'model') {
@ -401,7 +401,7 @@ class TestTask extends Shell {
* and get the plugin path if needed.
*
* @return string filename the test should be created on
**/
*/
function testCaseFileName($type, $className) {
$path = $this->path;
if (isset($this->plugin)) {
@ -418,7 +418,7 @@ class TestTask extends Shell {
* Show help file.
*
* @return void
**/
*/
function help() {
$this->hr();
$this->out("Usage: cake bake test <type> <class>");

View file

@ -145,7 +145,7 @@ class ViewTask extends Shell {
* Get a list of actions that can / should have views baked for them.
*
* @return array Array of action names that should be baked
**/
*/
function _methodsToBake() {
$methods = array_diff(
array_map('strtolower', get_class_methods($this->controllerName . 'Controller')),
@ -177,7 +177,7 @@ class ViewTask extends Shell {
* Bake All views for All controllers.
*
* @return void
**/
*/
function all() {
$this->Controller->interactive = false;
$tables = $this->Controller->listAll($this->connection, false);
@ -309,7 +309,7 @@ class ViewTask extends Shell {
*
* @param array $actions Array of actions to make files for.
* @return void
**/
*/
function bakeActions($actions, $vars) {
foreach ($actions as $action) {
$content = $this->getContent($action, $vars);
@ -321,7 +321,7 @@ class ViewTask extends Shell {
* handle creation of baking a custom action view file
*
* @return void
**/
*/
function customAction() {
$action = '';
while ($action == '') {
@ -461,7 +461,7 @@ class ViewTask extends Shell {
* @return array $associations
* @access private
*/
function __associations($model) {
function __associations(&$model) {
$keys = array('belongsTo', 'hasOne', 'hasMany', 'hasAndBelongsToMany');
$associations = array();

View file

@ -25,7 +25,7 @@
* @package cake
* @subpackage cake.cake.libs
*/
class Cache extends Object {
class Cache {
/**
* Cache engine to use
@ -74,20 +74,6 @@ class Cache extends Object {
return $instance[0];
}
/**
* Tries to find and include a file for a cache engine and returns object instance
*
* @param $name Name of the engine (without 'Engine')
* @return mixed $engine object or null
* @access private
*/
function __loadEngine($name) {
if (!class_exists($name . 'Engine')) {
require LIBS . DS . 'cache' . DS . strtolower($name) . '.php';
}
return true;
}
/**
* Set the cache configuration to use
*
@ -136,6 +122,44 @@ class Cache extends Object {
return compact('engine', 'settings');
}
/**
* Returns an array containing the currently configured Cache settings.
*
* @return array
*/
function configured() {
$_this = Cache::getInstance();
return array_keys($_this->__config);
}
/**
* Drops a cache engine. Deletes the cache configuration information
* If the deleted configuration is the last configuration using an certain engine,
* the Engine instance is also unset.
*
* @param string $name A currently configured cache config you wish to remove.
* @return boolen success of the removal, returns false when the config does not exist.
*/
function drop($name) {
$_this = Cache::getInstance();
if (!isset($_this->__config[$name])) {
return false;
}
$last = true;
$engine = $_this->__config[$name]['engine'];
unset($_this->__config[$name]);
foreach ($_this->__config as $name => $settings) {
if ($settings['engine'] == $engine) {
$last = false;
break;
}
}
if ($last) {
unset($_this->_Engine[$engine]);
}
return true;
}
/**
* Set the cache engine to use or modify settings for one instance
*
@ -146,10 +170,12 @@ class Cache extends Object {
* @static
*/
function engine($name = 'File', $settings = array()) {
$cacheClass = $name . 'Engine';
$class = $name;
list($plugin, $class) = pluginSplit($name);
$cacheClass = $class . 'Engine';
$_this =& Cache::getInstance();
if (!isset($_this->_Engine[$name])) {
if ($_this->__loadEngine($name) === false) {
if ($_this->__loadEngine($class, $plugin) === false) {
return false;
}
$_this->_Engine[$name] =& new $cacheClass();
@ -165,6 +191,26 @@ class Cache extends Object {
return false;
}
/**
* Tries to find and include a file for a cache engine and returns object instance
*
* @param $name Name of the engine (without 'Engine')
* @return mixed $engine object or null
* @access private
*/
function __loadEngine($name, $plugin = null) {
if ($plugin) {
return App::import('Lib', $plugin . '.cache' . DS . $name);
} else {
$app = App::import('Lib', 'cache' . DS . $name);
if (!$app) {
return App::import('Core', 'cache' . DS . $name);
}
return true;
}
}
/**
* Temporarily change settings to current config options. if no params are passed, resets settings if needed
* Cache::write() will reset the configuration changes made
@ -230,12 +276,6 @@ class Cache extends Object {
function write($key, $value, $config = null) {
$_this =& Cache::getInstance();
if (is_array($config)) {
extract($config);
} else if ($config && (is_numeric($config) || is_numeric($config[0]) || (isset($config[1]) && is_numeric($config[1])))) {
$config = null;
}
if ($config && isset($_this->__config[$config])) {
$settings = $_this->set($_this->__config[$config]);
} else {
@ -417,7 +457,7 @@ class Cache extends Object {
* @package cake
* @subpackage cake.cake.libs
*/
class CacheEngine extends Object {
class CacheEngine {
/**
* settings of current engine instance

View file

@ -19,15 +19,6 @@
* @since CakePHP(tm) v 0.2.9
* @license MIT License (http://www.opensource.org/licenses/mit-license.php)
*/
/**
* Included libraries.
*
*/
if (!class_exists('File')) {
require LIBS . 'file.php';
}
/**
* Set up error level constants to be used within the framework if they are not defined within the
* system.
@ -60,7 +51,7 @@ class CakeLog {
*
* @var array
* @access protected
**/
*/
var $_streams = array();
/**
@ -68,7 +59,7 @@ class CakeLog {
*
* @return void
* @static
**/
*/
function &getInstance() {
static $instance = array();
if (!isset($instance[0])) {
@ -85,7 +76,7 @@ class CakeLog {
* @param array $config Array of configuration information for the logger
* @return boolean success of configuration.
* @static
**/
*/
function config($key, $config) {
if (empty($config['engine'])) {
trigger_error(__('Missing logger classname', true), E_USER_WARNING);
@ -107,12 +98,10 @@ class CakeLog {
*
* @return mixed boolean false on any failures, string of classname to use if search was successful.\
* @access protected
**/
*/
function _getLogger($loggerName) {
$plugin = null;
if (strpos($loggerName, '.') !== false) {
list($plugin, $loggerName) = explode('.', $loggerName);
}
list($plugin, $loggerName) = pluginSplit($loggerName);
if ($plugin) {
App::import('Lib', $plugin . '.log/' . $loggerName);
} else {
@ -139,46 +128,31 @@ class CakeLog {
*
* @return array
* @static
**/
function streams() {
*/
function configured() {
$self = CakeLog::getInstance();
return array_keys($self->_streams);
}
/**
* Remove a stream from the active streams. Once a stream has been removed
* it will no longer be called.
* Removes a stream from the active streams. Once a stream has been removed
* it will no longer have messages sent to it.
*
* @param string $keyname Key name of callable to remove.
* @return void
* @static
**/
function remove($streamName) {
*/
function drop($streamName) {
$self = CakeLog::getInstance();
unset($self->_streams[$streamName]);
}
/**
* Add a stream the logger.
* Streams represent destinations for log messages. Each stream can connect to
* a different resource /interface and capture/write output to that source.
*
* @param string $key Keyname of config.
* @param array $config Array of config information for the LogStream
* @return boolean success
* @static
**/
function addStream($key, $config) {
$self = CakeLog::getInstance();
$self->_streams[$key] = $config;
}
/**
* Configures the automatic/default stream a FileLog.
*
* @return void
* @access protected
**/
*/
function _autoConfig() {
if (!class_exists('FileLog')) {
App::import('Core', 'log/FileLog');
@ -235,7 +209,7 @@ class CakeLog {
* @param integer $line Line that triggered the error
* @param array $context Context
* @return void
**/
*/
function handleError($code, $description, $file = null, $line = null, $context = null) {
if ($code === 2048 || $code === 8192) {
return;

View file

@ -244,7 +244,7 @@ class CakeSession extends Object {
*
* @return boolean
* @deprecated Use CakeSession::delete instead
**/
*/
function del($name) {
trigger_error('CakeSession::del() is deprecated, use CakeSession::delete() instead.', E_USER_WARNING);
return $this->delete($name);

View file

@ -118,12 +118,12 @@ class ClassRegistry {
foreach ($objects as $key => $settings) {
if (is_array($settings)) {
$plugin = $pluginPath = null;
$pluginPath = null;
$settings = array_merge($defaults, $settings);
$class = $settings['class'];
if (strpos($class, '.') !== false) {
list($plugin, $class) = explode('.', $class);
list($plugin, $class) = pluginSplit($class);
if ($plugin) {
$pluginPath = $plugin . '.';
}

View file

@ -130,12 +130,14 @@ class Configure extends Object {
/**
* Used to read information stored in the Configure instance.
*
* Usage
* Usage:
* {{{
* Configure::read('Name'); will return all values for Name
* Configure::read('Name.key'); will return only the value of Configure::Name[key]
* }}}
*
* @link http://book.cakephp.org/view/413/read
* @param string $var Variable to obtain
* @link http://book.cakephp.org/view/413/read
* @param string $var Variable to obtain. Use '.' to access array elements.
* @return string value of Configure::$var
* @access public
*/
@ -165,10 +167,12 @@ class Configure extends Object {
* Used to delete a variable from the Configure instance.
*
* Usage:
* {{{
* Configure::delete('Name'); will delete the entire Configure::Name
* Configure::delete('Name.key'); will delete only the Configure::Name[key]
* }}}
*
* @link http://book.cakephp.org/view/414/delete
* @link http://book.cakephp.org/view/414/delete
* @param string $var the var to be deleted
* @return void
* @access public
@ -188,21 +192,30 @@ class Configure extends Object {
/**
* Loads a file from app/config/configure_file.php.
* Config file variables should be formated like:
* $config['name'] = 'value';
* These will be used to create dynamic Configure vars.
* `$config['name'] = 'value';`
* These will be used to create dynamic Configure vars. load() is also used to
* load stored config files created with Configure::store()
*
* Usage Configure::load('configure_file');
* - To load config files from app/config use `Configure::load('configure_file');`.
* - To load config files from a plugin `Configure::load('plugin.configure_file');`.
*
* @link http://book.cakephp.org/view/415/load
* @link http://book.cakephp.org/view/415/load
* @param string $fileName name of file to load, extension must be .php and only the name
* should be used, not the extenstion
* should be used, not the extenstion
* @return mixed false if file not found, void if load successful
* @access public
*/
function load($fileName) {
$found = false;
$found = $plugin = $pluginPath = false;
list($plugin, $fileName) = pluginSplit($fileName);
if ($plugin) {
$pluginPath = App::pluginPath($plugin);
}
if (file_exists(CONFIGS . $fileName . '.php')) {
if ($pluginPath && file_exists($pluginPath . 'config' . DS . $fileName . '.php')) {
include($pluginPath . 'config' . DS . $fileName . '.php');
$found = true;
} elseif (file_exists(CONFIGS . $fileName . '.php')) {
include(CONFIGS . $fileName . '.php');
$found = true;
} elseif (file_exists(CACHE . 'persistent' . DS . $fileName . '.php')) {
@ -233,9 +246,9 @@ class Configure extends Object {
/**
* Used to determine the current version of CakePHP.
*
* Usage Configure::version();
* Usage `Configure::version();`
*
* @link http://book.cakephp.org/view/416/version
* @link http://book.cakephp.org/view/416/version
* @return string Current version of CakePHP
* @access public
*/
@ -252,9 +265,11 @@ class Configure extends Object {
/**
* Used to write a config file to disk.
*
* Configure::store('Model', 'class.paths', array('Users' => array(
* {{{
* Configure::store('Model', 'class_paths', array('Users' => array(
* 'path' => 'users', 'plugin' => true
* )));
* }}}
*
* @param string $type Type of config file to write, ex: Models, Controllers, Helpers, Components
* @param string $name file name.
@ -672,7 +687,7 @@ class App extends Object {
*
* @param string $plugin CamelCased plugin name to find the path of.
* @return string full path to the plugin.
**/
*/
function pluginPath($plugin) {
$_this =& App::getInstance();
$pluginDir = Inflector::underscore($plugin);
@ -1210,8 +1225,8 @@ class App extends Object {
/**
* Returns an array of filenames of PHP files in the given directory.
*
* @param string $path Path to scan for files
* @param string $suffix if false, return only directories. if string, match and return files
* @param string $path Path to scan for files
* @param string $suffix if false, return only directories. if string, match and return files
* @return array List of directories or files in directory
*/
function __list($path, $suffix = false, $extension = false) {

View file

@ -56,7 +56,7 @@ class Component extends Object {
*
* @var array
* @access private
**/
*/
var $__settings = array();
/**
@ -189,16 +189,8 @@ class Component extends Object {
$normal = Set::merge(array('Session' => null), $normal);
}
foreach ((array)$normal as $component => $config) {
$plugin = null;
if (isset($this->__controllerVars['plugin'])) {
$plugin = $this->__controllerVars['plugin'] . '.';
}
if (strpos($component, '.') !== false) {
list($plugin, $component) = explode('.', $component);
$plugin = $plugin . '.';
}
$plugin = isset($this->__controllerVars['plugin']) ? $this->__controllerVars['plugin'] . '.' : null;
list($plugin, $component) = pluginSplit($component, true, $plugin);
$componentCn = $component . 'Component';
if (!class_exists($componentCn)) {

View file

@ -46,9 +46,7 @@ class AclComponent extends Object {
$name = Inflector::camelize(strtolower(Configure::read('Acl.classname')));
if (!class_exists($name)) {
if (App::import('Component', $name)) {
if (strpos($name, '.') !== false) {
list($plugin, $name) = explode('.', $name);
}
list($plugin, $name) = pluginSplit($name);
$name .= 'Component';
} else {
trigger_error(sprintf(__('Could not find %s.', true), $name), E_USER_WARNING);

View file

@ -263,7 +263,7 @@ class CookieComponent extends Object {
/**
* @deprecated use delete()
**/
*/
function del($key) {
trigger_error('Deprecated method, use CookieComponent::delete instead', E_USER_WARNING);
return $this->delete($key);

View file

@ -391,9 +391,7 @@ class EmailComponent extends Object{
$viewClass = $this->Controller->view;
if ($viewClass != 'View') {
if (strpos($viewClass, '.') !== false) {
list($plugin, $viewClass) = explode('.', $viewClass);
}
list($plugin, $viewClass) = pluginSplit($viewClass);
$viewClass = $viewClass . 'View';
App::import('View', $this->Controller->view);
}

View file

@ -528,11 +528,7 @@ class Controller extends Object {
$plugin = $this->plugin . '.';
}
}
if (strpos($modelClass, '.') !== false) {
list($plugin, $modelClass) = explode('.', $modelClass);
$plugin = $plugin . '.';
}
list($plugin, $modelClass) = pluginSplit($modelClass, true, $plugin);
if ($this->persistModel === true) {
$cached = $this->_persist($modelClass, null, $object);
@ -808,9 +804,7 @@ class Controller extends Object {
$viewClass = $this->view;
if ($this->view != 'View') {
if (strpos($viewClass, '.') !== false) {
list($plugin, $viewClass) = explode('.', $viewClass);
}
list($plugin, $viewClass) = pluginSplit($viewClass);
$viewClass = $viewClass . 'View';
App::import('View', $this->view);
}
@ -1003,9 +997,8 @@ class Controller extends Object {
if (is_string($object)) {
$assoc = null;
if (strpos($object, '.') !== false) {
list($object, $assoc) = explode('.', $object);
if (strpos($object, '.') !== false) {
list($object, $assoc) = pluginSplit($object);
}
if ($assoc && isset($this->{$object}->{$assoc})) {

View file

@ -37,7 +37,7 @@ class Inflector {
*
* @var array
* @access protected
**/
*/
var $_plural = array(
'rules' => array(
'/(s)tatus$/i' => '\1\2tatuses',
@ -105,7 +105,7 @@ class Inflector {
*
* @var array
* @access protected
**/
*/
var $_singular = array(
'rules' => array(
'/(s)tatuses$/i' => '\1\2tatus',
@ -156,7 +156,7 @@ class Inflector {
*
* @var array
* @access protected
**/
*/
var $_uninflected = array(
'Amoyese', 'bison', 'Borghese', 'bream', 'breeches', 'britches', 'buffalo', 'cantus',
'carp', 'chassis', 'clippers', 'cod', 'coitus', 'Congoese', 'contretemps', 'corps',
@ -177,7 +177,7 @@ class Inflector {
*
* @var array
* @access protected
**/
*/
var $_pluralized = array();
/**
@ -185,7 +185,7 @@ class Inflector {
*
* @var array
* @access protected
**/
*/
var $_singularized = array();
/**

View file

@ -31,7 +31,7 @@ class FileLog {
* Path to save log files on.
*
* @var string
**/
*/
var $_path = null;
/**
@ -43,7 +43,7 @@ class FileLog {
*
* @param array $options Options for the FileLog, see above.
* @return void
**/
*/
function FileLog($options = array()) {
$options += array('path' => LOGS);
$this->_path = $options['path'];
@ -55,7 +55,7 @@ class FileLog {
* @param string $type The type of log you are making.
* @param string $message The message you want to log.
* @return boolean success of write.
**/
*/
function write($type, $message) {
$debugTypes = array('notice', 'info', 'debug');

View file

@ -36,7 +36,7 @@ class MagicDb extends Object {
* Holds the parsed MagicDb for this class instance
*
* @var array
**/
*/
var $db = array();
/**
@ -45,7 +45,7 @@ class MagicDb extends Object {
* @var $magicDb mixed Can be an array containing the db, a magic db as a string, or a filename pointing to a magic db in .db or magic.db.php format
* @return boolean Returns false if reading / validation failed or true on success.
* @author Felix
**/
*/
function read($magicDb = null) {
if (!is_string($magicDb) && !is_array($magicDb)) {
return false;

View file

@ -63,7 +63,7 @@ class CakeSchema extends Object {
* plugin name.
*
* @var string
**/
*/
var $plugin = null;
/**
@ -382,7 +382,7 @@ class CakeSchema extends Object {
* @param string $table Table name you want returned.
* @param array $fields Array of field information to generate the table with.
* @return string Variable declaration for a schema class
**/
*/
function generateTable($table, $fields) {
$out = "\tvar \${$table} = array(\n";
if (is_array($fields)) {
@ -573,7 +573,7 @@ class CakeSchema extends Object {
* @param array $new New indexes
* @param array $old Old indexes
* @return mixed False on failure, or an array of parameters to add & drop.
**/
*/
function _compareTableParameters($new, $old) {
if (!is_array($new) || !is_array($old)) {
return false;

View file

@ -404,7 +404,7 @@ class DataSource extends Object {
* before establishing a connection.
*
* @return boolean Whether or not the Datasources conditions for use are met.
**/
*/
function enabled() {
return true;
}

View file

@ -123,7 +123,7 @@ class DboAdodb extends DboSource {
* Check that AdoDB is available.
*
* @return boolean
**/
*/
function enabled() {
return function_exists('NewADOConnection');
}

View file

@ -144,7 +144,7 @@ class DboDb2 extends DboSource {
* Check that the DB2 extension is installed/loaded
*
* @return boolean
**/
*/
function enabled() {
return extension_loaded('ibm_db2');
}

View file

@ -117,7 +117,7 @@ class DboFirebird extends DboSource {
* Firebird Transaction commands.
*
* @var array
**/
*/
var $_commands = array(
'begin' => 'SET TRANSACTION',
'commit' => 'COMMIT',
@ -143,7 +143,7 @@ class DboFirebird extends DboSource {
* Check that the interbase extension is loaded
*
* @return boolean
**/
*/
function enabled() {
return extension_loaded('interbase');
}

View file

@ -162,7 +162,7 @@ class DboMssql extends DboSource {
* Check that MsSQL is installed/loaded
*
* @return boolean
**/
*/
function enabled() {
return extension_loaded('mssql');
}

View file

@ -352,7 +352,7 @@ class DboMysqlBase extends DboSource {
* @param array $parameters Parameters to add & drop.
* @return array Array of table property alteration statementes.
* @todo Implement this method.
**/
*/
function _alterTableParameters($table, $parameters) {
if (isset($parameters['change'])) {
return $this->buildTableParameters($parameters['change']);
@ -530,7 +530,7 @@ class DboMysql extends DboMysqlBase {
* Check whether the MySQL extension is installed/loaded
*
* @return boolean
**/
*/
function enabled() {
return extension_loaded('mysql');
}

View file

@ -87,7 +87,7 @@ class DboMysqli extends DboMysqlBase {
* Check that MySQLi is installed/enabled
*
* @return boolean
**/
*/
function enabled() {
return extension_loaded('mysqli');
}

View file

@ -110,7 +110,7 @@ class DboOdbc extends DboSource {
* Check if the ODBC extension is installed/loaded
*
* @return boolean
**/
*/
function enabled() {
return extension_loaded('odbc');
}

View file

@ -127,7 +127,7 @@ class DboPostgres extends DboSource {
* Check if PostgreSQL is enabled/loaded
*
* @return boolean
**/
*/
function enabled() {
return extension_loaded('pgsql');
}

View file

@ -141,7 +141,7 @@ class DboSqlite extends DboSource {
* Check that SQLite is enabled/installed
*
* @return boolean
**/
*/
function enabled() {
return extension_loaded('sqlite');
}

View file

@ -109,7 +109,7 @@ class DboSybase extends DboSource {
* Check that one of the sybase extensions is installed
*
* @return boolean
**/
*/
function enabled() {
return extension_loaded('sybase') || extension_loaded('sybase_ct');
}

View file

@ -495,7 +495,7 @@ class DboSource extends DataSource {
*
* @param boolean $sorted Get the queries sorted by time taken, defaults to false.
* @return array Array of queries run as an array
**/
*/
function getLog($sorted = false) {
if ($sorted) {
$log = sortByKey($this->_queriesLog, 'took', 'desc', SORT_NUMERIC);
@ -967,7 +967,7 @@ class DboSource extends DataSource {
* @param object $model Model being merged onto
* @param object $linkModel Model being merged
* @return void
**/
*/
function __mergeHasMany(&$resultSet, $merge, $association, &$model, &$linkModel) {
foreach ($resultSet as $i => $value) {
$count = 0;
@ -2483,7 +2483,7 @@ class DboSource extends DataSource {
* @param array $columnData The array of column data.
* @param string $position The position type to use. 'beforeDefault' or 'afterDefault' are common
* @return string a built column with the field parameters added.
**/
*/
function _buildFieldParameters($columnString, $columnData, $position) {
foreach ($this->fieldParameters as $paramName => $value) {
if (isset($columnData[$paramName]) && $value['position'] == $position) {

View file

@ -641,20 +641,15 @@ class Model extends Overloadable {
if (strpos($assoc, '.') !== false) {
$value = $this->{$type}[$assoc];
unset($this->{$type}[$assoc]);
list($plugin, $assoc) = explode('.', $assoc);
list($plugin, $assoc) = pluginSplit($assoc, true);
$this->{$type}[$assoc] = $value;
$plugin = $plugin . '.';
}
}
$className = $assoc;
if (isset($value['className']) && !empty($value['className'])) {
$className = $value['className'];
if (strpos($className, '.') !== false) {
list($plugin, $className) = explode('.', $className);
$plugin = $plugin . '.';
$this->{$type}[$assoc]['className'] = $className;
}
if (!empty($value['className'])) {
list($plugin, $className) = pluginSplit($value['className'], true);
$this->{$type}[$assoc]['className'] = $className;
}
$this->__constructLinkedModel($assoc, $plugin . $className);
}
@ -753,13 +748,8 @@ class Model extends Overloadable {
if (is_array($joinClass)) {
$joinClass = key($joinClass);
}
$plugin = null;
if (strpos($joinClass, '.') !== false) {
list($plugin, $joinClass) = explode('.', $joinClass);
$plugin = $plugin . '.';
$this->{$type}[$assocKey]['with'] = $joinClass;
}
list($plugin, $joinClass) = pluginSplit($joinClass, true);
$this->{$type}[$assocKey]['with'] = $joinClass;
if (!ClassRegistry::isKeySet($joinClass) && $dynamicWith === true) {
$this->{$joinClass} = new AppModel(array(

View file

@ -279,10 +279,7 @@ class BehaviorCollection extends Object {
* @access public
*/
function attach($behavior, $config = array()) {
$name = $behavior;
if (strpos($behavior, '.')) {
list($plugin, $name) = explode('.', $behavior, 2);
}
list($plugin, $name) = pluginSplit($behavior);
$class = $name . 'Behavior';
if (!App::import('Behavior', $behavior)) {

View file

@ -161,7 +161,7 @@ class Router {
* Builds __prefixes
*
* @return void
**/
*/
function Router() {
$this->__setPrefixes();
}
@ -173,7 +173,7 @@ class Router {
* @return void
* @access private
* @todo Remove support for Routing.admin in future versions.
**/
*/
function __setPrefixes() {
$routing = Configure::read('Routing');
if (!empty($routing['admin'])) {
@ -232,6 +232,7 @@ class Router {
foreach ($_this->__prefixes as $prefix) {
if (isset($default[$prefix])) {
$default['prefix'] = $prefix;
break;
}
}
if (isset($default['prefix'])) {

View file

@ -61,7 +61,6 @@ class Security extends Object {
* @static
*/
function inactiveMins() {
$_this =& Security::getInstance();
switch (Configure::read('Security.level')) {
case 'high':
return 10;
@ -179,7 +178,6 @@ class Security extends Object {
return '';
}
$_this =& Security::getInstance();
if (!defined('CIPHER_SEED')) {
//This is temporary will change later
define('CIPHER_SEED', '76859309657453542496749683645');

View file

@ -213,8 +213,8 @@ class Validation extends Object {
*
* @param mixed $check credit card number to validate
* @param mixed $type 'all' may be passed as a sting, defaults to fast which checks format of most major credit cards
* if an array is used only the values of the array are checked.
* Example: array('amex', 'bankcard', 'maestro')
* if an array is used only the values of the array are checked.
* Example: array('amex', 'bankcard', 'maestro')
* @param boolean $deep set to true this will check the Luhn algorithm of the credit card.
* @param string $regex A custom regex can also be passed, this will be used instead of the defined regex values
* @return boolean Success
@ -608,12 +608,14 @@ class Validation extends Object {
/**
* Validate a multiple select.
*
* Valid Options
*
* - in => provide a list of choices that selections must be made from
* - max => maximun number of non-zero choices that can be made
* - min => minimum number of non-zero choices that can be made
*
* @param mixed $check Value to check
* @param mixed $options Options for the check.
* Valid options
* in => provide a list of choices that selections must be made from
* max => maximun number of non-zero choices that can be made
* min => minimum number of non-zero choices that can be made
* @return boolean Success
* @access public
*/
@ -672,12 +674,16 @@ class Validation extends Object {
if (is_null($_this->regex)) {
switch ($_this->country) {
case 'us':
case 'all':
case 'can':
// includes all NANPA members. see http://en.wikipedia.org/wiki/North_American_Numbering_Plan#List_of_NANPA_countries_and_territories
default:
$_this->regex = '/^(?:\+?1)?[-. ]?\\(?[2-9][0-8][0-9]\\)?[-. ]?[2-9][0-9]{2}[-. ]?[0-9]{4}$/';
break;
}
}
if (empty($_this->regex)) {
return $_this->_pass('phone', $check, $country);
}
return $_this->_check();
}
@ -698,6 +704,9 @@ class Validation extends Object {
if (is_array($check)) {
$_this->_extract($check);
}
if (empty($country)) {
$_this->country = 'us';
}
if (is_null($_this->regex)) {
switch ($_this->country) {
@ -715,11 +724,13 @@ class Validation extends Object {
$_this->regex = '/^[1-9]{1}[0-9]{3}$/i';
break;
case 'us':
default:
$_this->regex = '/\\A\\b[0-9]{5}(?:-[0-9]{4})?\\b\\z/i';
break;
}
}
if (empty($_this->regex)) {
return $_this->_pass('postal', $check, $country);
}
return $_this->_check();
}
@ -783,13 +794,14 @@ class Validation extends Object {
* Checks that a value is a valid URL according to http://www.w3.org/Addressing/URL/url-spec.txt
*
* The regex checks for the following component parts:
* a valid, optional, scheme
* a valid ip address OR
* a valid domain name as defined by section 2.3.1 of http://www.ietf.org/rfc/rfc1035.txt
* with an optional port number
* an optional valid path
* an optional query string (get parameters)
* an optional fragment (anchor tag)
*
* - a valid, optional, scheme
* - a valid ip address OR
* a valid domain name as defined by section 2.3.1 of http://www.ietf.org/rfc/rfc1035.txt
* with an optional port number
* - an optional valid path
* - an optional query string (get parameters)
* - an optional fragment (anchor tag)
*
* @param string $check Value to check
* @param boolean $strict Require URL to be prefixed by a valid scheme (one of http(s)/ftp(s)/file/news/gopher)
@ -834,6 +846,31 @@ class Validation extends Object {
return call_user_func_array(array(&$object, $method), array($check, $args));
}
/**
* Attempts to pass unhandled Validation locales to a class starting with $classPrefix
* and ending with Validation. For example $classPrefix = 'nl', the class would be
* `NlValidation`.
*
* @param string $method The method to call on the other class.
* @param mixed $check The value to check or an array of parameters for the method to be called.
* @param string $classPrefix The prefix for the class to do the validation.
* @return mixed Return of Passed method, false on failure
* @access protected
**/
function _pass($method, $check, $classPrefix) {
$className = ucwords($classPrefix) . 'Validation';
if (!class_exists($className)) {
trigger_error(sprintf(__('Could not find %s class, unable to complete validation.', true), $className), E_USER_WARNING);
return false;
}
if (!method_exists($className, $method)) {
trigger_error(sprintf(__('Method %s does not exist on %s unable to complete validation.', true), $method, $className), E_USER_WARNING);
return false;
}
$check = (array)$check;
return call_user_func_array(array($className, $method), $check);
}
/**
* Runs a regular expression match.
*

View file

@ -225,7 +225,7 @@ class Helper extends Overloadable {
*
* @param string $path The file path to timestamp, the path must be inside WWW_ROOT
* @return string Path with a timestamp added, or not.
**/
*/
function assetTimestamp($path) {
$timestampEnabled = (
(Configure::read('Asset.timestamp') === true && Configure::read() > 0) ||
@ -578,8 +578,9 @@ class Helper extends Overloadable {
* @param array $options
* @param string $key
* @return array
* @access protected
*/
function __name($options = array(), $field = null, $key = 'name') {
function _name($options = array(), $field = null, $key = 'name') {
$view =& ClassRegistry::getObject('view');
if ($options === null) {
$options = array();
@ -689,7 +690,7 @@ class Helper extends Overloadable {
$this->setEntity($field);
}
$options = (array)$options;
$options = $this->__name($options);
$options = $this->_name($options);
$options = $this->value($options);
$options = $this->domId($options);
if ($this->tagIsInvalid()) {

View file

@ -1752,8 +1752,9 @@ class FormHelper extends AppHelper {
* @param array $options
* @param string $key
* @return array
* @access protected
*/
function __name($options = array(), $field = null, $key = 'name') {
function _name($options = array(), $field = null, $key = 'name') {
if ($this->requestType == 'get') {
if ($options === null) {
$options = array();
@ -1778,7 +1779,7 @@ class FormHelper extends AppHelper {
return $name;
}
}
return parent::__name($options, $field, $key);
return parent::_name($options, $field, $key);
}
/**
@ -1847,7 +1848,7 @@ class FormHelper extends AppHelper {
$label['class'] = 'selected';
}
list($name) = array_values($this->__name());
list($name) = array_values($this->_name());
if (empty($attributes['class'])) {
$attributes['class'] = 'checkbox';

View file

@ -143,14 +143,14 @@ class HtmlHelper extends AppHelper {
*
* @var array
* @access private
**/
*/
var $__includedScripts = array();
/**
* Options for the currently opened script block buffer if any.
*
* @var array
* @access protected
**/
*/
var $_scriptBlockOptions = array();
/**
* Document type definitions
@ -436,7 +436,7 @@ class HtmlHelper extends AppHelper {
* @param mixed $options Array of options, and html attributes see above. If boolean sets $options['inline'] = value
* @return mixed String of <script /> tags or null if $inline is false or if $once is true and the file has been
* included before.
**/
*/
function script($url, $options = array()) {
if (is_bool($options)) {
list($inline, $options) = array($options, array());
@ -492,7 +492,7 @@ class HtmlHelper extends AppHelper {
* @param string $script The script to wrap
* @param array $options The options to use.
* @return mixed string or null depending on the value of `$options['inline']`
**/
*/
function scriptBlock($script, $options = array()) {
$options += array('safe' => true, 'inline' => true);
if ($options['safe']) {
@ -521,7 +521,7 @@ class HtmlHelper extends AppHelper {
*
* @param array $options Options for the code block.
* @return void
**/
*/
function scriptStart($options = array()) {
$options += array('safe' => true, 'inline' => true);
$this->_scriptBlockOptions = $options;
@ -534,7 +534,7 @@ class HtmlHelper extends AppHelper {
* used when the scriptBlock was started
*
* @return mixed depending on the settings of scriptStart() either a script tag or null
**/
*/
function scriptEnd() {
$buffer = ob_get_clean();
$options = $this->_scriptBlockOptions;

View file

@ -319,7 +319,7 @@ class JavascriptHelper extends AppHelper {
* Encode a string into JSON. Converts and escapes necessary characters.
*
* @return void
**/
*/
function _utf8ToHex($string) {
$length = strlen($string);
$return = '';

View file

@ -27,7 +27,7 @@ class JqueryEngineHelper extends JsBaseEngineHelper {
* Option mappings for jQuery
*
* @var array
**/
*/
var $_optionMap = array(
'request' => array(
'type' => 'dataType',
@ -55,7 +55,7 @@ class JqueryEngineHelper extends JsBaseEngineHelper {
* callback arguments lists
*
* @var string
**/
*/
var $_callbackArguments = array(
'slider' => array(
'start' => 'event, ui',
@ -103,7 +103,7 @@ class JqueryEngineHelper extends JsBaseEngineHelper {
* when jQuery is put into noConflict() mode.
*
* @var string
**/
*/
var $jQueryObject = '$';
/**
@ -116,7 +116,7 @@ class JqueryEngineHelper extends JsBaseEngineHelper {
* @param string $callbacks Array of callback / special options.
* @access public
* @return string
**/
*/
function _methodTemplate($method, $template, $options, $extraSafeKeys = array()) {
$options = $this->_mapOptions($method, $options);
$options = $this->_prepareCallbacks($method, $options);
@ -133,7 +133,7 @@ class JqueryEngineHelper extends JsBaseEngineHelper {
*
* @param string $selector The selector that is targeted
* @return object instance of $this. Allows chained methods.
**/
*/
function get($selector) {
if ($selector == 'window' || $selector == 'document') {
$this->selection = $this->jQueryObject . '(' . $selector .')';
@ -155,7 +155,7 @@ class JqueryEngineHelper extends JsBaseEngineHelper {
* @param string $callback The Javascript function you wish to trigger or the function literal
* @param array $options Options for the event.
* @return string completed event handler
**/
*/
function event($type, $callback, $options = array()) {
$defaults = array('wrap' => true, 'stop' => true);
$options = array_merge($defaults, $options);
@ -175,7 +175,7 @@ class JqueryEngineHelper extends JsBaseEngineHelper {
*
* @param string $functionBody The code to run on domReady
* @return string completed domReady method
**/
*/
function domReady($functionBody) {
$this->get('document');
return $this->event('ready', $functionBody, array('stop' => false));
@ -187,7 +187,7 @@ class JqueryEngineHelper extends JsBaseEngineHelper {
* @param string $method The method you want to apply to the selection
* @param string $callback The function body you wish to apply during the iteration.
* @return string completed iteration
**/
*/
function each($callback) {
return $this->selection . '.each(function () {' . $callback . '});';
}
@ -199,7 +199,7 @@ class JqueryEngineHelper extends JsBaseEngineHelper {
* @param array $options Array of options for the effect.
* @return string completed string with effect.
* @see JsBaseEngineHelper::effect()
**/
*/
function effect($name, $options = array()) {
$speed = null;
if (isset($options['speed']) && in_array($options['speed'], array('fast', 'slow'))) {
@ -230,7 +230,7 @@ class JqueryEngineHelper extends JsBaseEngineHelper {
* @param mixed $url
* @param array $options
* @return string The completed ajax call.
**/
*/
function request($url, $options = array()) {
$url = $this->url($url);
$options = $this->_mapOptions('request', $options);
@ -266,7 +266,7 @@ class JqueryEngineHelper extends JsBaseEngineHelper {
* @param array $options Array of options for the sortable.
* @return string Completed sortable script.
* @see JsHelper::sortable() for options list.
**/
*/
function sortable($options = array()) {
$template = '%s.sortable({%s});';
return $this->_methodTemplate('sortable', $template, $options);
@ -280,7 +280,7 @@ class JqueryEngineHelper extends JsBaseEngineHelper {
* @param array $options Array of options for the draggable element.
* @return string Completed Draggable script.
* @see JsHelper::drag() for options list.
**/
*/
function drag($options = array()) {
$template = '%s.draggable({%s});';
return $this->_methodTemplate('drag', $template, $options);
@ -294,7 +294,7 @@ class JqueryEngineHelper extends JsBaseEngineHelper {
* @param array $options Array of options for the droppable element.
* @return string Completed Droppable script.
* @see JsHelper::drop() for options list.
**/
*/
function drop($options = array()) {
$template = '%s.droppable({%s});';
return $this->_methodTemplate('drop', $template, $options);
@ -308,7 +308,7 @@ class JqueryEngineHelper extends JsBaseEngineHelper {
* @param array $options Array of options for the droppable element.
* @return string Completed Slider script.
* @see JsHelper::slider() for options list.
**/
*/
function slider($options = array()) {
$callbacks = array('start', 'change', 'slide', 'stop');
$template = '%s.slider({%s});';
@ -322,7 +322,7 @@ class JqueryEngineHelper extends JsBaseEngineHelper {
* @param array $options Options for the serialization
* @return string completed form serialization script
* @see JsHelper::serializeForm() for option list.
**/
*/
function serializeForm($options = array()) {
$options = array_merge(array('isForm' => false, 'inline' => false), $options);
$selector = $this->selection;

View file

@ -26,20 +26,20 @@
*
* @package cake
* @subpackage cake.cake.libs.view.helpers
**/
*/
class JsHelper extends AppHelper {
/**
* Whether or not you want scripts to be buffered or output.
*
* @var boolean
**/
*/
var $bufferScripts = true;
/**
* helpers
*
* @var array
**/
*/
var $helpers = array('Html', 'Form');
/**
@ -47,14 +47,14 @@ class JsHelper extends AppHelper {
*
* @var array
* @see JsHelper::set()
**/
*/
var $__jsVars = array();
/**
* Scripts that are queued for output
*
* @var array
**/
*/
var $__bufferedScripts = array();
/**
@ -62,14 +62,14 @@ class JsHelper extends AppHelper {
*
* @var string
* @access private
**/
*/
var $__engineName;
/**
* The javascript variable created by set() variables.
*
* @var string
**/
*/
var $setVariable = APP_DIR;
/**
@ -78,7 +78,7 @@ class JsHelper extends AppHelper {
* @param array $settings Settings array contains name of engine helper.
* @access public
* @return void
**/
*/
function __construct($settings = array()) {
$className = 'Jquery';
if (is_array($settings) && isset($settings[0])) {
@ -87,9 +87,8 @@ class JsHelper extends AppHelper {
$className = $settings;
}
$engineName = $className;
if (strpos($className, '.') !== false) {
list($plugin, $className) = explode('.', $className);
}
list($plugin, $className) = pluginSplit($className);
$this->__engineName = $className . 'Engine';
$engineClass = $engineName . 'Engine';
$this->helpers[] = $engineClass;
@ -115,7 +114,7 @@ class JsHelper extends AppHelper {
* @param array $params Parameters for the method being called.
* @access public
* @return mixed Depends on the return of the dispatched method, or it could be an instance of the EngineHelper
**/
*/
function call__($method, $params) {
if (isset($this->{$this->__engineName}) && method_exists($this->{$this->__engineName}, $method)) {
$buffer = false;
@ -158,7 +157,7 @@ class JsHelper extends AppHelper {
* @param array $options Options to use for encoding JSON. See JsBaseEngineHelper::object() for more details.
* @return string encoded JSON
* @deprecated Remove when support for PHP4 and Object::object are removed.
**/
*/
function object($data = array(), $options = array()) {
return $this->{$this->__engineName}->object($data, $options);
}
@ -178,7 +177,7 @@ class JsHelper extends AppHelper {
*
* @param array $options options for the code block
* @return string completed javascript tag.
**/
*/
function writeBuffer($options = array()) {
$defaults = array('onDomReady' => true, 'inline' => true, 'cache' => false, 'clear' => true, 'safe' => true);
$options = array_merge($defaults, $options);
@ -208,7 +207,7 @@ class JsHelper extends AppHelper {
* Write a script to the cached scripts.
*
* @return void
**/
*/
function buffer($script) {
$this->__bufferedScripts[] = $script;
}
@ -218,7 +217,7 @@ class JsHelper extends AppHelper {
*
* @param boolean $clear Whether or not to clear the script caches (default true)
* @return array Array of scripts added to the request.
**/
*/
function getBuffer($clear = true) {
$this->_createVars();
$scripts = $this->__bufferedScripts;
@ -233,7 +232,7 @@ class JsHelper extends AppHelper {
* Generates the object string for variables passed to javascript.
*
* @return string
**/
*/
function _createVars() {
if (!empty($this->__jsVars)) {
$setVar = (strpos($this->setVariable, '.')) ? $this->setVariable : 'var ' . $this->setVariable;
@ -258,7 +257,7 @@ class JsHelper extends AppHelper {
* @param mixed $url Mixed either a string URL or an cake url array.
* @param array $options Options for both the HTML element and Js::request()
* @return string Completed link. If buffering is disabled a script tag will be returned as well.
**/
*/
function link($title, $url = null, $options = array()) {
if (!isset($options['id'])) {
$options['id'] = 'link-' . intval(mt_rand());
@ -293,7 +292,7 @@ class JsHelper extends AppHelper {
* @param mixed $one
* @param mixed $two
* @return void
**/
*/
function set($one, $two = null) {
$data = null;
if (is_array($one)) {
@ -322,7 +321,7 @@ class JsHelper extends AppHelper {
* @param string $title The display text of the submit button.
* @param array $options Array of options to use.
* @return string Completed submit button.
**/
*/
function submit($caption = null, $options = array()) {
if (!isset($options['id'])) {
$options['id'] = 'submit-' . intval(mt_rand());
@ -364,7 +363,7 @@ class JsHelper extends AppHelper {
* @param array $options Options to filter.
* @param array $additional Array of additional keys to extract and include in the return options array.
* @return array Array of options for non-js.
**/
*/
function _getHtmlOptions(&$options, $additional = array()) {
$htmlKeys = array_merge(array('class', 'id', 'escape', 'onblur', 'onfocus', 'rel', 'title'), $additional);
$htmlOptions = array();
@ -388,14 +387,14 @@ class JsHelper extends AppHelper {
* Abstract Base Class for All JsEngines to extend. Provides generic methods.
*
* @package cake.view.helpers
**/
*/
class JsBaseEngineHelper extends AppHelper {
/**
* Determines whether native JSON extension is used for encoding. Set by object constructor.
*
* @var boolean
* @access public
**/
*/
var $useNative = false;
/**
@ -403,7 +402,7 @@ class JsBaseEngineHelper extends AppHelper {
*
* @var string
* @access public
**/
*/
var $selection;
/**
@ -412,7 +411,7 @@ class JsBaseEngineHelper extends AppHelper {
* for end user use though.
*
* @var array
**/
*/
var $_optionMap = array();
/**
@ -420,21 +419,21 @@ class JsBaseEngineHelper extends AppHelper {
* This allows specific 'end point' methods to be automatically buffered by the JsHelper.
*
* @var array
**/
*/
var $bufferedMethods = array('event', 'sortable', 'drag', 'drop', 'slider');
/**
* Contains a list of callback names -> default arguments.
*
* @var array
**/
*/
var $_callbackArguments = array();
/**
* Constructor.
*
* @return void
**/
*/
function __construct() {
$this->useNative = function_exists('json_encode');
}
@ -445,7 +444,7 @@ class JsBaseEngineHelper extends AppHelper {
* @param string $message Message you want to alter.
* @access public
* @return string completed alert()
**/
*/
function alert($message) {
return 'alert("' . $this->escape($message) . '");';
}
@ -456,7 +455,7 @@ class JsBaseEngineHelper extends AppHelper {
* @param mixed $url
* @param array $options
* @return string completed redirect in javascript
**/
*/
function redirect($url = null) {
return 'window.location = "' . Router::url($url) . '";';
}
@ -467,7 +466,7 @@ class JsBaseEngineHelper extends AppHelper {
* @param string $message Message you want confirmed.
* @access public
* @return string completed confirm()
**/
*/
function confirm($message) {
return 'confirm("' . $this->escape($message) . '");';
}
@ -479,7 +478,7 @@ class JsBaseEngineHelper extends AppHelper {
* @param string $message Message to use in the confirm dialog.
* @access public
* @return string
**/
*/
function confirmReturn($message) {
$out = 'var _confirm = ' . $this->confirm($message);
$out .= "if (!_confirm) {\n\treturn false;\n}";
@ -493,7 +492,7 @@ class JsBaseEngineHelper extends AppHelper {
* @param string $default Default message
* @access public
* @return string completed prompt()
**/
*/
function prompt($message, $default = '') {
return 'prompt("' . $this->escape($message) . '", "' . $this->escape($default) . '");';
}
@ -511,7 +510,7 @@ class JsBaseEngineHelper extends AppHelper {
* @param array $options Set of options, see above.
* @return string A JSON code block
* @access public
**/
*/
function object($data = array(), $options = array()) {
$defaultOptions = array(
'prefix' => '', 'postfix' => '',
@ -571,7 +570,7 @@ class JsBaseEngineHelper extends AppHelper {
* @param boolean $quoteStrings If false, leaves string values unquoted
* @return string a JavaScript-safe/JSON representation of $val
* @access public
**/
*/
function value($val, $quoteString = true) {
switch (true) {
case (is_array($val) || is_object($val)):
@ -611,7 +610,7 @@ class JsBaseEngineHelper extends AppHelper {
* @param string $script String that needs to get escaped.
* @return string Escaped string.
* @access public
**/
*/
function escape($string) {
App::import('Core', 'Multibyte');
return $this->_utf8ToHex($string);
@ -621,7 +620,7 @@ class JsBaseEngineHelper extends AppHelper {
* Encode a string into JSON. Converts and escapes necessary characters.
*
* @return void
**/
*/
function _utf8ToHex($string) {
$length = strlen($string);
$return = '';
@ -716,7 +715,7 @@ class JsBaseEngineHelper extends AppHelper {
*
* @param string $selector The selector that is targeted
* @return object instance of $this. Allows chained methods.
**/
*/
function get($selector) {
trigger_error(sprintf(__('%s does not have get() implemented', true), get_class($this)), E_USER_WARNING);
return $this;
@ -734,7 +733,7 @@ class JsBaseEngineHelper extends AppHelper {
* @param string $callback The Javascript function you wish to trigger or the function literal
* @param array $options Options for the event.
* @return string completed event handler
**/
*/
function event($type, $callback, $options = array()) {
trigger_error(sprintf(__('%s does not have event() implemented', true), get_class($this)), E_USER_WARNING);
}
@ -744,7 +743,7 @@ class JsBaseEngineHelper extends AppHelper {
*
* @param string $functionBody The code to run on domReady
* @return string completed domReady method
**/
*/
function domReady($functionBody) {
trigger_error(sprintf(__('%s does not have domReady() implemented', true), get_class($this)), E_USER_WARNING);
}
@ -754,7 +753,7 @@ class JsBaseEngineHelper extends AppHelper {
*
* @param string $callback The function body you wish to apply during the iteration.
* @return string completed iteration
**/
*/
function each($callback) {
trigger_error(sprintf(__('%s does not have each() implemented', true), get_class($this)), E_USER_WARNING);
}
@ -781,7 +780,7 @@ class JsBaseEngineHelper extends AppHelper {
* @param string $name The name of the effect to trigger.
* @param array $options Array of options for the effect.
* @return string completed string with effect.
**/
*/
function effect($name, $options) {
trigger_error(sprintf(__('%s does not have effect() implemented', true), get_class($this)), E_USER_WARNING);
}
@ -810,7 +809,7 @@ class JsBaseEngineHelper extends AppHelper {
* @param mixed $url Array or String URL to target with the request.
* @param array $options Array of options. See above for cross library supported options
* @return string XHR request.
**/
*/
function request($url, $options = array()) {
trigger_error(sprintf(__('%s does not have request() implemented', true), get_class($this)), E_USER_WARNING);
}
@ -833,7 +832,7 @@ class JsBaseEngineHelper extends AppHelper {
*
* @param array $options Options array see above.
* @return string Completed drag script
**/
*/
function drag($options = array()) {
trigger_error(sprintf(__('%s does not have drag() implemented', true), get_class($this)), E_USER_WARNING);
}
@ -854,7 +853,7 @@ class JsBaseEngineHelper extends AppHelper {
* - `leave` - Event fired when a drag is removed from a drop zone without being dropped.
*
* @return string Completed drop script
**/
*/
function drop($options = array()) {
trigger_error(sprintf(__('%s does not have drop() implemented', true), get_class($this)), E_USER_WARNING);
}
@ -878,7 +877,7 @@ class JsBaseEngineHelper extends AppHelper {
*
* @param array $options Array of options for the sortable. See above.
* @return string Completed sortable script.
**/
*/
function sortable() {
trigger_error(sprintf(__('%s does not have sortable() implemented', true), get_class($this)), E_USER_WARNING);
}
@ -901,7 +900,7 @@ class JsBaseEngineHelper extends AppHelper {
* - `complete` - Fired when the user stops sliding the handle
*
* @return string Completed slider script
**/
*/
function slider() {
trigger_error(sprintf(__('%s does not have slider() implemented', true), get_class($this)), E_USER_WARNING);
}
@ -919,7 +918,7 @@ class JsBaseEngineHelper extends AppHelper {
*
* @param array $options options for serialization generation.
* @return string completed form serialization script
**/
*/
function serializeForm() {
trigger_error(
sprintf(__('%s does not have serializeForm() implemented', true), get_class($this)), E_USER_WARNING
@ -935,7 +934,7 @@ class JsBaseEngineHelper extends AppHelper {
* @param array $safeKeys Keys that should not be escaped.
* @return string
* @access protected
**/
*/
function _parseOptions($options, $safeKeys = array()) {
$out = array();
$safeKeys = array_flip($safeKeys);
@ -957,7 +956,7 @@ class JsBaseEngineHelper extends AppHelper {
* @param array $options Array of options to map.
* @return array Array of mapped options.
* @access protected
**/
*/
function _mapOptions($method, $options) {
if (!isset($this->_optionMap[$method])) {
return $options;
@ -980,7 +979,7 @@ class JsBaseEngineHelper extends AppHelper {
* @param string $callbacks Additional Keys that contain callbacks
* @access protected
* @return array Array of options with callbacks added.
**/
*/
function _prepareCallbacks($method, $options, $callbacks = array()) {
$wrapCallbacks = true;
if (isset($options['wrapCallbacks'])) {
@ -1016,7 +1015,7 @@ class JsBaseEngineHelper extends AppHelper {
* @param string $method Name of method processing options for.
* @param array $options Array of options to process.
* @return string Parsed options string.
**/
*/
function _processOptions($method, $options) {
$options = $this->_mapOptions($method, $options);
$options = $this->_prepareCallbacks($method, $options);
@ -1030,7 +1029,7 @@ class JsBaseEngineHelper extends AppHelper {
* @param array $parameters Array of parameters to convert to a query string
* @return string Querystring fragment
* @access protected
**/
*/
function _toQuerystring($parameters) {
$out = '';
$keys = array_keys($parameters);

View file

@ -32,7 +32,7 @@ class MootoolsEngineHelper extends JsBaseEngineHelper {
* Option mappings for MooTools
*
* @var array
**/
*/
var $_optionMap = array(
'request' => array(
'complete' => 'onComplete',
@ -70,7 +70,7 @@ class MootoolsEngineHelper extends JsBaseEngineHelper {
* Contains a list of callback names -> default arguments.
*
* @var array
**/
*/
var $_callbackArguments = array(
'slider' => array(
'onTick' => 'position',
@ -116,7 +116,7 @@ class MootoolsEngineHelper extends JsBaseEngineHelper {
*
* @param string $selector The selector that is targeted
* @return object instance of $this. Allows chained methods.
**/
*/
function get($selector) {
$this->_multipleSelection = false;
if ($selector == 'window' || $selector == 'document') {
@ -144,7 +144,7 @@ class MootoolsEngineHelper extends JsBaseEngineHelper {
* @param string $callback The Javascript function you wish to trigger or the function literal
* @param array $options Options for the event.
* @return string completed event handler
**/
*/
function event($type, $callback, $options = array()) {
$defaults = array('wrap' => true, 'stop' => true);
$options = array_merge($defaults, $options);
@ -165,7 +165,7 @@ class MootoolsEngineHelper extends JsBaseEngineHelper {
*
* @param string $functionBody The code to run on domReady
* @return string completed domReady method
**/
*/
function domReady($functionBody) {
$this->selection = 'window';
return $this->event('domready', $functionBody, array('stop' => false));
@ -177,7 +177,7 @@ class MootoolsEngineHelper extends JsBaseEngineHelper {
* @param string $method The method you want to apply to the selection
* @param string $callback The function body you wish to apply during the iteration.
* @return string completed iteration
**/
*/
function each($callback) {
return $this->selection . '.each(function (item, index) {' . $callback . '});';
}
@ -189,7 +189,7 @@ class MootoolsEngineHelper extends JsBaseEngineHelper {
* @param array $options Array of options for the effect.
* @return string completed string with effect.
* @see JsBaseEngineHelper::effect()
**/
*/
function effect($name, $options = array()) {
$speed = null;
if (isset($options['speed']) && in_array($options['speed'], array('fast', 'slow'))) {
@ -231,7 +231,7 @@ class MootoolsEngineHelper extends JsBaseEngineHelper {
* @param mixed $url
* @param array $options
* @return string The completed ajax call.
**/
*/
function request($url, $options = array()) {
$url = $this->url($url);
$options = $this->_mapOptions('request', $options);
@ -270,7 +270,7 @@ class MootoolsEngineHelper extends JsBaseEngineHelper {
* @param array $options Array of options for the sortable.
* @return string Completed sortable script.
* @see JsHelper::sortable() for options list.
**/
*/
function sortable($options = array()) {
$options = $this->_processOptions('sortable', $options);
return 'var jsSortable = new Sortables(' . $this->selection . ', {' . $options . '});';
@ -284,7 +284,7 @@ class MootoolsEngineHelper extends JsBaseEngineHelper {
* @param array $options Array of options for the draggable.
* @return string Completed draggable script.
* @see JsHelper::drag() for options list.
**/
*/
function drag($options = array()) {
$options = $this->_processOptions('drag', $options);
return $this->selection . '.makeDraggable({' . $options . '});';
@ -303,7 +303,7 @@ class MootoolsEngineHelper extends JsBaseEngineHelper {
* @param array $options Array of options for the droppable.
* @return string Completed droppable script.
* @see JsHelper::drop() for options list.
**/
*/
function drop($options = array()) {
if (empty($options['drag'])) {
trigger_error(
@ -333,7 +333,7 @@ class MootoolsEngineHelper extends JsBaseEngineHelper {
* @param array $options Array of options for the slider.
* @return string Completed slider script.
* @see JsHelper::slider() for options list.
**/
*/
function slider($options = array()) {
$slider = $this->selection;
$this->get($options['handle']);
@ -358,7 +358,7 @@ class MootoolsEngineHelper extends JsBaseEngineHelper {
* @param array $options Array of options.
* @return string Completed serializeForm() snippet
* @see JsHelper::serializeForm()
**/
*/
function serializeForm($options = array()) {
$options = array_merge(array('isForm' => false, 'inline' => false), $options);
$selection = $this->selection;

View file

@ -36,7 +36,7 @@ class NumberHelper extends AppHelper {
*
* @var array
* @access protected
**/
*/
var $_currencies = array(
'USD' => array(
'before' => '$', 'after' => 'c', 'zero' => 0, 'places' => 2, 'thousands' => ',',
@ -57,7 +57,7 @@ class NumberHelper extends AppHelper {
*
* @var array
* @access protected
**/
*/
var $_currencyDefaults = array(
'before'=>'', 'after' => '', 'zero' => '0', 'places' => 2, 'thousands' => ',',
'decimals' => '.','negative' => '()', 'escape' => true
@ -222,7 +222,7 @@ class NumberHelper extends AppHelper {
* @param string $formatName The format name to be used in the future.
* @param array $options The array of options for this format.
* @return void
**/
*/
function addFormat($formatName, $options) {
$this->_currencies[$formatName] = $options + $this->_currencyDefaults;
}

View file

@ -46,7 +46,7 @@ class PaginatorHelper extends AppHelper {
* The class used for 'Ajax' pagination links.
*
* @var string
**/
*/
var $_ajaxHelperClass = 'Js';
/**
@ -83,7 +83,7 @@ class PaginatorHelper extends AppHelper {
* The chosen custom helper must implement a `link()` method.
*
* @return void
**/
*/
function __construct($config = array()) {
$ajaxProvider = isset($config['ajax']) ? $config['ajax'] : 'Js';
$this->helpers[] = $ajaxProvider;

View file

@ -27,13 +27,13 @@ class PrototypeEngineHelper extends JsBaseEngineHelper {
* Is the current selection a multiple selection? or is it just a single element.
*
* @var boolean
**/
*/
var $_multiple = false;
/**
* Option mappings for Prototype
*
* @var array
**/
*/
var $_optionMap = array(
'request' => array(
'async' => 'asynchronous',
@ -73,7 +73,7 @@ class PrototypeEngineHelper extends JsBaseEngineHelper {
* Contains a list of callback names -> default arguments.
*
* @var array
**/
*/
var $_callbackArguments = array(
'slider' => array(
'onSlide' => 'value',
@ -108,7 +108,7 @@ class PrototypeEngineHelper extends JsBaseEngineHelper {
*
* @param string $selector The selector that is targeted
* @return object instance of $this. Allows chained methods.
**/
*/
function get($selector) {
$this->_multiple = false;
if ($selector == 'window' || $selector == 'document') {
@ -135,7 +135,7 @@ class PrototypeEngineHelper extends JsBaseEngineHelper {
* @param string $callback The Javascript function you wish to trigger or the function literal
* @param array $options Options for the event.
* @return string completed event handler
**/
*/
function event($type, $callback, $options = array()) {
$defaults = array('wrap' => true, 'stop' => true);
$options = array_merge($defaults, $options);
@ -155,7 +155,7 @@ class PrototypeEngineHelper extends JsBaseEngineHelper {
*
* @param string $functionBody The code to run on domReady
* @return string completed domReady method
**/
*/
function domReady($functionBody) {
$this->selection = 'document';
return $this->event('dom:loaded', $functionBody, array('stop' => false));
@ -166,7 +166,7 @@ class PrototypeEngineHelper extends JsBaseEngineHelper {
* @param string $method The method you want to apply to the selection
* @param string $callback The function body you wish to apply during the iteration.
* @return string completed iteration
**/
*/
function each($callback) {
return $this->selection . '.each(function (item, index) {' . $callback . '});';
}
@ -179,7 +179,7 @@ class PrototypeEngineHelper extends JsBaseEngineHelper {
* @param array $options Array of options for the effect.
* @return string completed string with effect.
* @see JsBaseEngineHelper::effect()
**/
*/
function effect($name, $options = array()) {
$effect = '';
$optionString = null;
@ -220,7 +220,7 @@ class PrototypeEngineHelper extends JsBaseEngineHelper {
* @param mixed $url
* @param array $options
* @return string The completed ajax call.
**/
*/
function request($url, $options = array()) {
$url = '"'. $this->url($url) . '"';
$options = $this->_mapOptions('request', $options);
@ -255,7 +255,7 @@ class PrototypeEngineHelper extends JsBaseEngineHelper {
* @param array $options Array of options for the sortable.
* @return string Completed sortable script.
* @see JsHelper::sortable() for options list.
**/
*/
function sortable($options = array()) {
$options = $this->_processOptions('sortable', $options);
if (!empty($options)) {
@ -271,7 +271,7 @@ class PrototypeEngineHelper extends JsBaseEngineHelper {
* @param array $options Array of options for the draggable.
* @return string Completed draggable script.
* @see JsHelper::draggable() for options list.
**/
*/
function drag($options = array()) {
$options = $this->_processOptions('drag', $options);
if (!empty($options)) {
@ -290,7 +290,7 @@ class PrototypeEngineHelper extends JsBaseEngineHelper {
* @param array $options Array of options for the droppable.
* @return string Completed droppable script.
* @see JsHelper::droppable() for options list.
**/
*/
function drop($options = array()) {
$options = $this->_processOptions('drop', $options);
if (!empty($options)) {
@ -306,7 +306,7 @@ class PrototypeEngineHelper extends JsBaseEngineHelper {
* @param array $options Array of options for the slider.
* @return string Completed slider script.
* @see JsHelper::slider() for options list.
**/
*/
function slider($options = array()) {
$slider = $this->selection;
$this->get($options['handle']);
@ -330,7 +330,7 @@ class PrototypeEngineHelper extends JsBaseEngineHelper {
* @param array $options Array of options.
* @return string Completed serializeForm() snippet
* @see JsHelper::serializeForm()
**/
*/
function serializeForm($options = array()) {
$options = array_merge(array('isForm' => false, 'inline' => false), $options);
$selection = $this->selection;

View file

@ -34,7 +34,7 @@ class RssHelper extends XmlHelper {
*
* @var array
* @access public
**/
*/
var $helpers = array('Time');
/**

View file

@ -252,7 +252,7 @@ class View extends Object {
* Holds View output.
*
* @var string
**/
*/
var $output = false;
/**
@ -750,18 +750,14 @@ class View extends Object {
$options = $helper;
$helper = $i;
}
$plugin = $this->plugin;
if (strpos($helper, '.') !== false) {
list($plugin, $helper) = explode('.', $helper);
}
list($plugin, $helper) = pluginSplit($helper, true, $this->plugin);
$helperCn = $helper . 'Helper';
if (!isset($loaded[$helper])) {
if (!class_exists($helperCn)) {
$isLoaded = false;
if (!is_null($plugin)) {
$isLoaded = App::import('Helper', $plugin . '.' . $helper);
$isLoaded = App::import('Helper', $plugin . $helper);
}
if (!$isLoaded) {
if (!App::import('Helper', $helper)) {

View file

@ -33,8 +33,8 @@ class BasicsTest extends CakeTestCase {
/**
* setUp method
*
* @access public
* @return void
* @access public
*/
function setUp() {
App::build(array(
@ -46,8 +46,8 @@ class BasicsTest extends CakeTestCase {
/**
* tearDown method
*
* @access public
* @return void
* @access public
*/
function tearDown() {
App::build();
@ -58,7 +58,8 @@ class BasicsTest extends CakeTestCase {
* test the array_diff_key compatibility function.
*
* @return void
**/
* @access public
*/
function testArrayDiffKey() {
$one = array('one' => 1, 'two' => 2, 'three' => 3);
$two = array('one' => 'one', 'two' => 'two');
@ -175,8 +176,8 @@ class BasicsTest extends CakeTestCase {
/**
* test uses()
*
* @access public
* @return void
* @access public
* @deprecated
*/
function testUses() {
@ -194,8 +195,8 @@ class BasicsTest extends CakeTestCase {
/**
* Test h()
*
* @access public
* @return void
* @access public
*/
function testH() {
$string = '<foo>';
@ -211,8 +212,8 @@ class BasicsTest extends CakeTestCase {
/**
* Test a()
*
* @access public
* @return void
* @access public
*/
function testA() {
$result = a('this', 'that', 'bar');
@ -222,8 +223,8 @@ class BasicsTest extends CakeTestCase {
/**
* Test aa()
*
* @access public
* @return void
* @access public
*/
function testAa() {
$result = aa('a', 'b', 'c', 'd');
@ -238,8 +239,8 @@ class BasicsTest extends CakeTestCase {
/**
* Test am()
*
* @access public
* @return void
* @access public
*/
function testAm() {
$result = am(array('one', 'two'), 2, 3, 4);
@ -254,8 +255,8 @@ class BasicsTest extends CakeTestCase {
/**
* test cache()
*
* @access public
* @return void
* @access public
*/
function testCache() {
$_cacheDisable = Configure::read('Cache.disable');
@ -290,8 +291,8 @@ class BasicsTest extends CakeTestCase {
/**
* test clearCache()
*
* @access public
* @return void
* @access public
*/
function testClearCache() {
$cacheOff = Configure::read('Cache.disable');
@ -338,8 +339,8 @@ class BasicsTest extends CakeTestCase {
/**
* test __()
*
* @access public
* @return void
* @access public
*/
function test__() {
Configure::write('Config.language', 'rule_1_po');
@ -362,8 +363,8 @@ class BasicsTest extends CakeTestCase {
/**
* test __n()
*
* @access public
* @return void
* @access public
*/
function test__n() {
Configure::write('Config.language', 'rule_1_po');
@ -390,8 +391,8 @@ class BasicsTest extends CakeTestCase {
/**
* test __d()
*
* @access public
* @return void
* @access public
*/
function test__d() {
Configure::write('Config.language', 'rule_1_po');
@ -418,8 +419,8 @@ class BasicsTest extends CakeTestCase {
/**
* test __dn()
*
* @access public
* @return void
* @access public
*/
function test__dn() {
Configure::write('Config.language', 'rule_1_po');
@ -450,8 +451,8 @@ class BasicsTest extends CakeTestCase {
/**
* test __c()
*
* @access public
* @return void
* @access public
*/
function test__c() {
Configure::write('Config.language', 'rule_1_po');
@ -474,8 +475,8 @@ class BasicsTest extends CakeTestCase {
/**
* test __dc()
*
* @access public
* @return void
* @access public
*/
function test__dc() {
Configure::write('Config.language', 'rule_1_po');
@ -506,8 +507,8 @@ class BasicsTest extends CakeTestCase {
/**
* test __dcn()
*
* @access public
* @return void
* @access public
*/
function test__dcn() {
Configure::write('Config.language', 'rule_1_po');
@ -534,8 +535,8 @@ class BasicsTest extends CakeTestCase {
/**
* test LogError()
*
* @access public
* @return void
* @access public
*/
function testLogError() {
@unlink(LOGS . 'error.log');
@ -552,8 +553,8 @@ class BasicsTest extends CakeTestCase {
/**
* test fileExistsInPath()
*
* @access public
* @return void
* @access public
*/
function testFileExistsInPath() {
$this->skipUnless(function_exists('ini_set'), '%s ini_set function not available');
@ -597,8 +598,8 @@ class BasicsTest extends CakeTestCase {
/**
* test convertSlash()
*
* @access public
* @return void
* @access public
*/
function testConvertSlash() {
$result = convertSlash('\path\to\location\\');
@ -613,8 +614,8 @@ class BasicsTest extends CakeTestCase {
/**
* test debug()
*
* @access public
* @return void
* @access public
*/
function testDebug() {
ob_start();
@ -637,8 +638,8 @@ class BasicsTest extends CakeTestCase {
/**
* test pr()
*
* @access public
* @return void
* @access public
*/
function testPr() {
ob_start();
@ -657,8 +658,8 @@ class BasicsTest extends CakeTestCase {
/**
* test params()
*
* @access public
* @return void
* @access public
*/
function testParams() {
$this->assertNull(params('weekend'));
@ -675,8 +676,8 @@ class BasicsTest extends CakeTestCase {
/**
* test stripslashes_deep()
*
* @access public
* @return void
* @access public
*/
function testStripslashesDeep() {
$this->skipIf(ini_get('magic_quotes_sybase') === '1', '%s magic_quotes_sybase is on');
@ -713,8 +714,8 @@ class BasicsTest extends CakeTestCase {
/**
* test stripslashes_deep() with magic_quotes_sybase on
*
* @access public
* @return void
* @access public
*/
function testStripslashesDeepSybase() {
$this->skipUnless(ini_get('magic_quotes_sybase') === '1', '%s magic_quotes_sybase is off');
@ -747,8 +748,8 @@ class BasicsTest extends CakeTestCase {
/**
* test ife()
*
* @access public
* @return void
* @access public
*/
function testIfe() {
$this->assertEqual(ife(true, 'a', 'b'), 'a');
@ -763,5 +764,33 @@ class BasicsTest extends CakeTestCase {
$this->assertEqual(ife(0, 'a', 'b'), 'b');
$this->assertEqual(ife(array(), 'a', 'b'), 'b');
}
/**
* test pluginSplit
*
* @return void
*/
function testPluginSplit() {
$result = pluginSplit('Something.else');
$this->assertEqual($result, array('Something', 'else'));
$result = pluginSplit('Something.else.more.dots');
$this->assertEqual($result, array('Something', 'else.more.dots'));
$result = pluginSplit('Somethingelse');
$this->assertEqual($result, array(null, 'Somethingelse'));
$result = pluginSplit('Something.else', true);
$this->assertEqual($result, array('Something.', 'else'));
$result = pluginSplit('Something.else.more.dots', true);
$this->assertEqual($result, array('Something.', 'else.more.dots'));
$result = pluginSplit('Post', false, 'Blog');
$this->assertEqual($result, array('Blog', 'Post'));
$result = pluginSplit('Blog.Post', false, 'Ultimate');
$this->assertEqual($result, array('Blog', 'Post'));
}
}
?>

View file

@ -83,8 +83,8 @@ class TestShellDispatcher extends ShellDispatcher {
/**
* _initEnvironment method
*
* @access protected
* @return void
* @access protected
*/
function _initEnvironment() {
}
@ -92,8 +92,8 @@ class TestShellDispatcher extends ShellDispatcher {
/**
* stderr method
*
* @access public
* @return void
* @access public
*/
function stderr($string) {
$this->stderr .= rtrim($string, ' ');
@ -102,8 +102,8 @@ class TestShellDispatcher extends ShellDispatcher {
/**
* stdout method
*
* @access public
* @return void
* @access public
*/
function stdout($string, $newline = true) {
if ($newline) {
@ -116,8 +116,8 @@ class TestShellDispatcher extends ShellDispatcher {
/**
* clear method
*
* @access public
* @return void
* @access public
*/
function clear() {
@ -126,8 +126,8 @@ class TestShellDispatcher extends ShellDispatcher {
/**
* _stop method
*
* @access protected
* @return void
* @access protected
*/
function _stop($status = 0) {
$this->stopped = 'Stopped with status: ' . $status;
@ -138,8 +138,8 @@ class TestShellDispatcher extends ShellDispatcher {
* getShell
*
* @param mixed $plugin
* @access public
* @return mixed
* @access public
*/
function getShell($plugin = null) {
return $this->_getShell($plugin);
@ -149,8 +149,8 @@ class TestShellDispatcher extends ShellDispatcher {
* _getShell
*
* @param mixed $plugin
* @access protected
* @return mixed
* @access protected
*/
function _getShell($plugin = null) {
if (isset($this->TestShell)) {
@ -171,8 +171,8 @@ class ShellDispatcherTest extends CakeTestCase {
/**
* setUp method
*
* @access public
* @return void
* @access public
*/
function setUp() {
App::build(array(
@ -189,8 +189,8 @@ class ShellDispatcherTest extends CakeTestCase {
/**
* tearDown method
*
* @access public
* @return void
* @access public
*/
function tearDown() {
App::build();
@ -199,8 +199,8 @@ class ShellDispatcherTest extends CakeTestCase {
/**
* testParseParams method
*
* @access public
* @return void
* @access public
*/
function testParseParams() {
$Dispatcher =& new TestShellDispatcher();
@ -458,8 +458,8 @@ class ShellDispatcherTest extends CakeTestCase {
/**
* testBuildPaths method
*
* @access public
* @return void
* @access public
*/
function testBuildPaths() {
$Dispatcher =& new TestShellDispatcher();
@ -481,8 +481,8 @@ class ShellDispatcherTest extends CakeTestCase {
/**
* Verify loading of (plugin-) shells
*
* @access public
* @return void
* @access public
*/
function testGetShell() {
$this->skipIf(class_exists('SampleShell'), '%s SampleShell Class already loaded');
@ -510,8 +510,8 @@ class ShellDispatcherTest extends CakeTestCase {
/**
* Verify correct dispatch of Shell subclasses with a main method
*
* @access public
* @return void
* @access public
*/
function testDispatchShellWithMain() {
Mock::generate('Shell', 'MockWithMainShell', array('main', '_secret'));
@ -601,8 +601,8 @@ class ShellDispatcherTest extends CakeTestCase {
/**
* Verify correct dispatch of Shell subclasses without a main method
*
* @access public
* @return void
* @access public
*/
function testDispatchShellWithoutMain() {
Mock::generate('Shell', 'MockWithoutMainShell', array('initDb', '_secret'));
@ -673,8 +673,8 @@ class ShellDispatcherTest extends CakeTestCase {
/**
* Verify correct dispatch of custom classes with a main method
*
* @access public
* @return void
* @access public
*/
function testDispatchNotAShellWithMain() {
Mock::generate('Object', 'MockWithMainNotAShell',
@ -753,8 +753,8 @@ class ShellDispatcherTest extends CakeTestCase {
/**
* Verify correct dispatch of custom classes without a main method
*
* @access public
* @return void
* @access public
*/
function testDispatchNotAShellWithoutMain() {
Mock::generate('Object', 'MockWithoutMainNotAShell',
@ -824,8 +824,8 @@ class ShellDispatcherTest extends CakeTestCase {
* Verify that a task is called instead of the shell if the first arg equals
* the name of the task
*
* @access public
* @return void
* @access public
*/
function testDispatchTask() {
Mock::generate('Shell', 'MockWeekShell', array('main'));
@ -872,8 +872,8 @@ class ShellDispatcherTest extends CakeTestCase {
/**
* Verify shifting of arguments
*
* @access public
* @return void
* @access public
*/
function testShiftArgs() {
$Dispatcher =& new TestShellDispatcher();
@ -902,8 +902,8 @@ class ShellDispatcherTest extends CakeTestCase {
/**
* testHelpCommand method
*
* @access public
* @return void
* @access public
*/
function testHelpCommand() {
$Dispatcher =& new TestShellDispatcher();

View file

@ -52,13 +52,21 @@ Mock::generate('AclComponent', 'MockAclShellAclComponent');
* @subpackage cake.tests.cases.console.libs.tasks
*/
class AclShellTest extends CakeTestCase {
/**
* Fixtures
*
* @var array
* @access public
*/
var $fixtures = array('core.aco', 'core.aro', 'core.aros_aco');
/**
* configure Configure for testcase
*
* @return void
**/
* @access public
*/
function startCase() {
$this->_aclDb = Configure::read('Acl.database');
$this->_aclClass = Configure::read('Acl.classname');
@ -71,7 +79,8 @@ class AclShellTest extends CakeTestCase {
* restore Environment settings
*
* @return void
**/
* @access public
*/
function endCase() {
Configure::write('Acl.database', $this->_aclDb);
Configure::write('Acl.classname', $this->_aclClass);
@ -107,7 +116,8 @@ class AclShellTest extends CakeTestCase {
* test that model.foreign_key output works when looking at acl rows
*
* @return void
**/
* @access public
*/
function testViewWithModelForeignKeyOutput() {
$this->Task->command = 'view';
$this->Task->startup();
@ -132,7 +142,8 @@ class AclShellTest extends CakeTestCase {
* test view with an argument
*
* @return void
**/
* @access public
*/
function testViewWithArgument() {
$this->Task->args = array('aro', 'admins');
$this->Task->expectAt(0, 'out', array('Aro tree:'));
@ -146,7 +157,8 @@ class AclShellTest extends CakeTestCase {
* test the method that splits model.foreign key. and that it returns an array.
*
* @return void
**/
* @access public
*/
function testParsingModelAndForeignKey() {
$result = $this->Task->parseIdentifier('Model.foreignKey');
$expected = array('model' => 'Model', 'foreign_key' => 'foreignKey');
@ -162,7 +174,8 @@ class AclShellTest extends CakeTestCase {
* test creating aro/aco nodes
*
* @return void
**/
* @access public
*/
function testCreate() {
$this->Task->args = array('aro', 'root', 'User.1');
$this->Task->expectAt(0, 'out', array(new PatternExpectation('/created/'), '*'));
@ -202,7 +215,8 @@ class AclShellTest extends CakeTestCase {
* test the delete method with different node types.
*
* @return void
**/
* @access public
*/
function testDelete() {
$this->Task->args = array('aro', 'AuthUser.1');
$this->Task->expectAt(0, 'out', array(new NoPatternExpectation('/not/'), true));
@ -217,7 +231,8 @@ class AclShellTest extends CakeTestCase {
* test setParent method.
*
* @return void
**/
* @access public
*/
function testSetParent() {
$this->Task->args = array('aro', 'AuthUser.2', 'root');
$this->Task->setParent();
@ -231,7 +246,8 @@ class AclShellTest extends CakeTestCase {
* test grant
*
* @return void
**/
* @access public
*/
function testGrant() {
$this->Task->args = array('AuthUser.2', 'ROOT/Controller1', 'create');
$this->Task->expectAt(0, 'out', array(new PatternExpectation('/Permission granted/'), true));
@ -246,7 +262,8 @@ class AclShellTest extends CakeTestCase {
* test deny
*
* @return void
**/
* @access public
*/
function testDeny() {
$this->Task->args = array('AuthUser.2', 'ROOT/Controller1', 'create');
$this->Task->expectAt(0, 'out', array(new PatternExpectation('/Permission denied/'), true));
@ -261,7 +278,8 @@ class AclShellTest extends CakeTestCase {
* test checking allowed and denied perms
*
* @return void
**/
* @access public
*/
function testCheck() {
$this->Task->args = array('AuthUser.2', 'ROOT/Controller1', '*');
$this->Task->expectAt(0, 'out', array(new PatternExpectation('/not allowed/'), true));
@ -284,7 +302,8 @@ class AclShellTest extends CakeTestCase {
* test inherit and that it 0's the permission fields.
*
* @return void
**/
* @access public
*/
function testInherit() {
$this->Task->args = array('AuthUser.2', 'ROOT/Controller1', 'create');
$this->Task->expectAt(0, 'out', array(new PatternExpectation('/Permission granted/'), true));
@ -303,7 +322,8 @@ class AclShellTest extends CakeTestCase {
* test getting the path for an aro/aco
*
* @return void
**/
* @access public
*/
function testGetPath() {
$this->Task->args = array('aro', 'AuthUser.2');
$this->Task->expectAt(1, 'out', array('[1] ROOT'));
@ -311,6 +331,5 @@ class AclShellTest extends CakeTestCase {
$this->Task->expectAt(3, 'out', array(' [4] Elrond'));
$this->Task->getPath();
}
}
?>

View file

@ -76,8 +76,8 @@ class ApiShellTest extends CakeTestCase {
/**
* Test that method names are detected properly including those with no arguments.
*
* @access public
* @return void
* @access public
*/
function testMethodNameDetection () {
$this->Shell->setReturnValueAt(0, 'in', 'q');

View file

@ -61,14 +61,16 @@ class BakeShellTestCase extends CakeTestCase {
* fixtures
*
* @var array
**/
* @access public
*/
var $fixtures = array('core.user');
/**
* start test
*
* @return void
**/
* @access public
*/
function startTest() {
$this->Dispatch =& new BakeShellMockShellDispatcher();
$this->Shell =& new MockBakeShell();
@ -80,7 +82,8 @@ class BakeShellTestCase extends CakeTestCase {
* endTest method
*
* @return void
**/
* @access public
*/
function endTest() {
unset($this->Dispatch, $this->Shell);
}
@ -89,7 +92,8 @@ class BakeShellTestCase extends CakeTestCase {
* test bake all
*
* @return void
**/
* @access public
*/
function testAllWithModelName() {
$this->Shell->Model =& new BakeShellMockModelTask();
$this->Shell->Controller =& new BakeShellMockControllerTask();
@ -119,3 +123,4 @@ class BakeShellTestCase extends CakeTestCase {
$this->Shell->all();
}
}
?>

View file

@ -115,7 +115,14 @@ class SchemaShellTestSchema extends CakeSchema {
*/
class SchemaShellTest extends CakeTestCase {
/**
* Fixtures
*
* @var array
* @access public
*/
var $fixtures = array('core.article', 'core.user', 'core.post', 'core.auth_user');
/**
* startTest method
*
@ -142,7 +149,8 @@ class SchemaShellTest extends CakeTestCase {
* test startup method
*
* @return void
**/
* @access public
*/
function testStartup() {
$this->Shell->startup();
$this->assertTrue(isset($this->Shell->Schema));
@ -177,7 +185,8 @@ class SchemaShellTest extends CakeTestCase {
* Test View - and that it dumps the schema file to stdout
*
* @return void
**/
* @access public
*/
function testView() {
$this->Shell->startup();
$this->Shell->Schema->path = APP . 'config' . DS . 'schema';
@ -191,7 +200,8 @@ class SchemaShellTest extends CakeTestCase {
* test that view() can find plugin schema files.
*
* @return void
**/
* @access public
*/
function testViewWithPlugins() {
App::build(array(
'plugins' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS)
@ -214,7 +224,8 @@ class SchemaShellTest extends CakeTestCase {
* test dump() with sql file generation
*
* @return void
**/
* @access public
*/
function testDumpWithFileWriting() {
$this->Shell->params = array(
'name' => 'i18n',
@ -242,7 +253,8 @@ class SchemaShellTest extends CakeTestCase {
* test that dump() can find and work with plugin schema files.
*
* @return void
**/
* @access public
*/
function testDumpFileWritingWithPlugins() {
App::build(array(
'plugins' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS)
@ -271,6 +283,7 @@ class SchemaShellTest extends CakeTestCase {
* test generate with snapshot generation
*
* @return void
* @access public
*/
function testGenerateSnaphot() {
$this->Shell->path = TMP;
@ -290,7 +303,8 @@ class SchemaShellTest extends CakeTestCase {
* test generate without a snapshot.
*
* @return void
**/
* @access public
*/
function testGenerateNoOverwrite() {
touch(TMP . 'schema.php');
$this->Shell->params['file'] = 'schema.php';
@ -309,7 +323,8 @@ class SchemaShellTest extends CakeTestCase {
* test generate with overwriting of the schema files.
*
* @return void
**/
* @access public
*/
function testGenerateOverwrite() {
touch(TMP . 'schema.php');
$this->Shell->params['file'] = 'schema.php';
@ -334,7 +349,8 @@ class SchemaShellTest extends CakeTestCase {
* in a plugin.
*
* @return void
**/
* @access public
*/
function testGenerateWithPlugins() {
App::build(array(
'plugins' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS)
@ -363,7 +379,8 @@ class SchemaShellTest extends CakeTestCase {
* Test schema run create with no table args.
*
* @return void
**/
* @access public
*/
function testCreateNoArgs() {
$this->Shell->params = array(
'connection' => 'test_suite',
@ -386,7 +403,8 @@ class SchemaShellTest extends CakeTestCase {
* Test schema run create with no table args.
*
* @return void
**/
* @access public
*/
function testCreateWithTableArgs() {
$this->Shell->params = array(
'connection' => 'test_suite',
@ -411,7 +429,8 @@ class SchemaShellTest extends CakeTestCase {
* test run update with a table arg.
*
* @return void
**/
* @access public
*/
function testUpdateWithTable() {
$this->Shell->params = array(
'connection' => 'test_suite',
@ -434,7 +453,8 @@ class SchemaShellTest extends CakeTestCase {
* test that the plugin param creates the correct path in the schema object.
*
* @return void
**/
* @access public
*/
function testPluginParam() {
App::build(array(
'plugins' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS)
@ -454,7 +474,8 @@ class SchemaShellTest extends CakeTestCase {
* test that using Plugin.name with write.
*
* @return void
**/
* @access public
*/
function testPluginDotSyntaxWithCreate() {
App::build(array(
'plugins' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS)

View file

@ -46,7 +46,7 @@ Mock::generatePartial('ShellDispatcher', 'TestShellMockShellDispatcher', array(
*/
class TestShell extends Shell {
/*
/**
* name property
*
* @var name
@ -65,8 +65,8 @@ class TestShell extends Shell {
* stop method
*
* @param integer $status
* @access protected
* @return void
* @access protected
*/
function _stop($status = 0) {
$this->stopped = $status;
@ -257,8 +257,8 @@ class ShellTest extends CakeTestCase {
/**
* testNl
*
* @access public
* @return void
* @access public
*/
function testNl() {
$this->assertEqual($this->Shell->nl(), "\n");
@ -271,8 +271,8 @@ class ShellTest extends CakeTestCase {
/**
* testHr
*
* @access public
* @return void
* @access public
*/
function testHr() {
$bar = '---------------------------------------------------------------';
@ -296,8 +296,8 @@ class ShellTest extends CakeTestCase {
/**
* testError
*
* @access public
* @return void
* @access public
*/
function testError() {
$this->Shell->Dispatch->expectAt(0, 'stderr', array("Error: Foo Not Found\n"));

View file

@ -88,7 +88,8 @@ class ControllerTaskTest extends CakeTestCase {
* fixtures
*
* @var array
**/
* @access public
*/
var $fixtures = array('core.article', 'core.comment', 'core.articles_tag', 'core.tag');
/**
@ -124,7 +125,8 @@ class ControllerTaskTest extends CakeTestCase {
* test ListAll
*
* @return void
**/
* @access public
*/
function testListAll() {
$this->Task->connection = 'test_suite';
$this->Task->interactive = true;
@ -153,7 +155,8 @@ class ControllerTaskTest extends CakeTestCase {
* Test that getName interacts with the user and returns the controller name.
*
* @return void
**/
* @access public
*/
function testGetName() {
$this->Task->setReturnValue('in', 1);
@ -180,7 +183,8 @@ class ControllerTaskTest extends CakeTestCase {
* test helper interactions
*
* @return void
**/
* @access public
*/
function testDoHelpers() {
$this->Task->setReturnValue('in', 'n');
$result = $this->Task->doHelpers();
@ -203,7 +207,8 @@ class ControllerTaskTest extends CakeTestCase {
* test component interactions
*
* @return void
**/
* @access public
*/
function testDoComponents() {
$this->Task->setReturnValue('in', 'n');
$result = $this->Task->doComponents();
@ -226,7 +231,8 @@ class ControllerTaskTest extends CakeTestCase {
* test Confirming controller user interaction
*
* @return void
**/
* @access public
*/
function testConfirmController() {
$controller = 'Posts';
$scaffold = false;
@ -244,7 +250,8 @@ class ControllerTaskTest extends CakeTestCase {
* test the bake method
*
* @return void
**/
* @access public
*/
function testBake() {
$helpers = array('Ajax', 'Time');
$components = array('Acl', 'Auth');
@ -267,7 +274,8 @@ class ControllerTaskTest extends CakeTestCase {
* test bake() with a -plugin param
*
* @return void
**/
* @access public
*/
function testBakeWithPlugin() {
$this->Task->plugin = 'ControllerTest';
$helpers = array('Ajax', 'Time');
@ -289,7 +297,8 @@ class ControllerTaskTest extends CakeTestCase {
* test that bakeActions is creating the correct controller Code. (Using sessions)
*
* @return void
**/
* @access public
*/
function testBakeActionsUsingSessions() {
$skip = $this->skipIf(!defined('ARTICLE_MODEL_CREATED'),
'Testing bakeActions requires Article, Comment & Tag Model to be undefined. %s');
@ -332,7 +341,8 @@ class ControllerTaskTest extends CakeTestCase {
* Test baking with Controller::flash() or no sessions.
*
* @return void
**/
* @access public
*/
function testBakeActionsWithNoSessions() {
$skip = $this->skipIf(!defined('ARTICLE_MODEL_CREATED'),
'Testing bakeActions requires Article, Tag, Comment Models to be undefined. %s');
@ -367,7 +377,8 @@ class ControllerTaskTest extends CakeTestCase {
* test baking a test
*
* @return void
**/
* @access public
*/
function testBakeTest() {
$this->Task->plugin = 'ControllerTest';
$this->Task->connection = 'test_suite';
@ -383,7 +394,8 @@ class ControllerTaskTest extends CakeTestCase {
* test Interactive mode.
*
* @return void
**/
* @access public
*/
function testInteractive() {
$this->Task->connection = 'test_suite';
$this->Task->path = '/my/path';
@ -407,7 +419,8 @@ class ControllerTaskTest extends CakeTestCase {
* test that execute runs all when the first arg == all
*
* @return void
**/
* @access public
*/
function testExecuteIntoAll() {
$skip = $this->skipIf(!defined('ARTICLE_MODEL_CREATED'),
'Execute into all could not be run as an Article, Tag or Comment model was already loaded. %s');
@ -432,7 +445,8 @@ class ControllerTaskTest extends CakeTestCase {
* test that `cake bake controller foos` works.
*
* @return void
**/
* @access public
*/
function testExecuteWithController() {
$skip = $this->skipIf(!defined('ARTICLE_MODEL_CREATED'),
'Execute with scaffold param requires no Article, Tag or Comment model to be defined. %s');
@ -455,7 +469,8 @@ class ControllerTaskTest extends CakeTestCase {
* test that `cake bake controller foo scaffold` works.
*
* @return void
**/
* @access public
*/
function testExecuteWithPublicParam() {
$skip = $this->skipIf(!defined('ARTICLE_MODEL_CREATED'),
'Execute with scaffold param requires no Article, Tag or Comment model to be defined. %s');
@ -478,7 +493,8 @@ class ControllerTaskTest extends CakeTestCase {
* test that `cake bake controller foos both` works.
*
* @return void
**/
* @access public
*/
function testExecuteWithControllerAndBoth() {
$skip = $this->skipIf(!defined('ARTICLE_MODEL_CREATED'),
'Execute with scaffold param requires no Article, Tag or Comment model to be defined. %s');
@ -502,7 +518,8 @@ class ControllerTaskTest extends CakeTestCase {
* test that `cake bake controller foos admin` works.
*
* @return void
**/
* @access public
*/
function testExecuteWithControllerAndAdmin() {
$skip = $this->skipIf(!defined('ARTICLE_MODEL_CREATED'),
'Execute with scaffold param requires no Article, Tag or Comment model to be defined. %s');

View file

@ -104,7 +104,8 @@ class DbConfigTaskTest extends CakeTestCase {
* Test the getConfig method.
*
* @return void
**/
* @access public
*/
function testGetConfig() {
$this->Task->setReturnValueAt(0, 'in', 'otherOne');
$result = $this->Task->getConfig();
@ -115,7 +116,8 @@ class DbConfigTaskTest extends CakeTestCase {
* test that initialize sets the path up.
*
* @return void
**/
* @access public
*/
function testInitialize() {
$this->assertTrue(empty($this->Task->path));
$this->Task->initialize();
@ -128,7 +130,8 @@ class DbConfigTaskTest extends CakeTestCase {
* test execute and by extension __interactive
*
* @return void
**/
* @access public
*/
function testExecuteIntoInteractive() {
$this->Task->initialize();

View file

@ -60,7 +60,8 @@ class FixtureTaskTest extends CakeTestCase {
* fixtures
*
* @var array
**/
* @access public
*/
var $fixtures = array('core.article', 'core.comment', 'core.datatype', 'core.binary_test');
/**
@ -94,7 +95,8 @@ class FixtureTaskTest extends CakeTestCase {
* test that initialize sets the path
*
* @return void
**/
* @access public
*/
function testConstruct() {
$this->Dispatch->params['working'] = DS . 'my' . DS . 'path';
$Task =& new FixtureTask($this->Dispatch);
@ -107,7 +109,8 @@ class FixtureTaskTest extends CakeTestCase {
* test import option array generation
*
* @return void
**/
* @access public
*/
function testImportOptions() {
$this->Task->setReturnValueAt(0, 'in', 'y');
$this->Task->setReturnValueAt(1, 'in', 'y');
@ -136,7 +139,8 @@ class FixtureTaskTest extends CakeTestCase {
* test generating a fixture with database conditions.
*
* @return void
**/
* @access public
*/
function testImportRecordsFromDatabaseWithConditions() {
$this->Task->setReturnValueAt(0, 'in', 'WHERE 1=1 LIMIT 10');
$this->Task->connection = 'test_suite';
@ -155,7 +159,8 @@ class FixtureTaskTest extends CakeTestCase {
* test that execute passes runs bake depending with named model.
*
* @return void
**/
* @access public
*/
function testExecuteWithNamedModel() {
$this->Task->connection = 'test_suite';
$this->Task->path = '/my/path/';
@ -169,7 +174,8 @@ class FixtureTaskTest extends CakeTestCase {
* test that execute runs all() when args[0] = all
*
* @return void
**/
* @access public
*/
function testExecuteIntoAll() {
$this->Task->connection = 'test_suite';
$this->Task->path = '/my/path/';
@ -189,7 +195,8 @@ class FixtureTaskTest extends CakeTestCase {
* test using all() with -count and -records
*
* @return void
**/
* @access public
*/
function testAllWithCountAndRecordsFlags() {
$this->Task->connection = 'test_suite';
$this->Task->path = '/my/path/';
@ -210,7 +217,8 @@ class FixtureTaskTest extends CakeTestCase {
* test interactive mode of execute
*
* @return void
**/
* @access public
*/
function testExecuteInteractive() {
$this->Task->connection = 'test_suite';
$this->Task->path = '/my/path/';
@ -228,7 +236,8 @@ class FixtureTaskTest extends CakeTestCase {
* Test that bake works
*
* @return void
**/
* @access public
*/
function testBake() {
$this->Task->connection = 'test_suite';
$this->Task->path = '/my/path/';
@ -263,7 +272,8 @@ class FixtureTaskTest extends CakeTestCase {
* test record generation with float and binary types
*
* @return void
**/
* @access public
*/
function testRecordGenerationForBinaryAndFloat() {
$this->Task->connection = 'test_suite';
$this->Task->path = '/my/path/';
@ -279,7 +289,8 @@ class FixtureTaskTest extends CakeTestCase {
* Test that file generation includes headers and correct path for plugins.
*
* @return void
**/
* @access public
*/
function testGenerateFixtureFile() {
$this->Task->connection = 'test_suite';
$this->Task->path = '/my/path/';
@ -296,7 +307,8 @@ class FixtureTaskTest extends CakeTestCase {
* test generating files into plugins.
*
* @return void
**/
* @access public
*/
function testGeneratePluginFixtureFile() {
$this->Task->connection = 'test_suite';
$this->Task->path = '/my/path/';

View file

@ -65,7 +65,8 @@ class ModelTaskTest extends CakeTestCase {
* fixtures
*
* @var array
**/
* @access public
*/
var $fixtures = array('core.article', 'core.comment', 'core.articles_tag', 'core.tag', 'core.category_thread');
/**
@ -99,7 +100,8 @@ class ModelTaskTest extends CakeTestCase {
* Test that listAll scans the database connection and lists all the tables in it.s
*
* @return void
**/
* @access public
*/
function testListAll() {
$this->Task->expectAt(1, 'out', array('1. Article'));
$this->Task->expectAt(2, 'out', array('2. ArticlesTag'));
@ -126,7 +128,8 @@ class ModelTaskTest extends CakeTestCase {
* Test that getName interacts with the user and returns the model name.
*
* @return void
**/
* @access public
*/
function testGetName() {
$this->Task->setReturnValue('in', 1);
@ -153,7 +156,8 @@ class ModelTaskTest extends CakeTestCase {
* Test table name interactions
*
* @return void
**/
* @access public
*/
function testGetTableName() {
$this->Task->setReturnValueAt(0, 'in', 'y');
$result = $this->Task->getTable('Article', 'test_suite');
@ -171,7 +175,8 @@ class ModelTaskTest extends CakeTestCase {
* test that initializing the validations works.
*
* @return void
**/
* @access public
*/
function testInitValidations() {
$result = $this->Task->initValidations();
$this->assertTrue(in_array('notempty', $result));
@ -182,7 +187,8 @@ class ModelTaskTest extends CakeTestCase {
* tests the guessing features of validation
*
* @return void
**/
* @access public
*/
function testFieldValidationGuessing() {
$this->Task->interactive = false;
$this->Task->initValidations();
@ -210,7 +216,8 @@ class ModelTaskTest extends CakeTestCase {
* test that interactive field validation works and returns multiple validators.
*
* @return void
**/
* @access public
*/
function testInteractiveFieldValidation() {
$this->Task->initValidations();
$this->Task->interactive = true;
@ -228,7 +235,8 @@ class ModelTaskTest extends CakeTestCase {
* test the validation Generation routine
*
* @return void
**/
* @access public
*/
function testNonInteractiveDoValidation() {
$Model =& new MockModelTaskModel();
$Model->primaryKey = 'id';
@ -289,7 +297,8 @@ class ModelTaskTest extends CakeTestCase {
* test that finding primary key works
*
* @return void
**/
* @access public
*/
function testFindPrimaryKey() {
$fields = array(
'one' => array(),
@ -307,7 +316,8 @@ class ModelTaskTest extends CakeTestCase {
* test finding Display field
*
* @return void
**/
* @access public
*/
function testFindDisplayField() {
$fields = array('id' => array(), 'tagname' => array(), 'body' => array(),
'created' => array(), 'modified' => array());
@ -327,7 +337,8 @@ class ModelTaskTest extends CakeTestCase {
* test that belongsTo generation works.
*
* @return void
**/
* @access public
*/
function testBelongsToGeneration() {
$model = new Model(array('ds' => 'test_suite', 'name' => 'Comment'));
$result = $this->Task->findBelongsTo($model, array());
@ -347,7 +358,6 @@ class ModelTaskTest extends CakeTestCase {
);
$this->assertEqual($result, $expected);
$model = new Model(array('ds' => 'test_suite', 'name' => 'CategoryThread'));
$result = $this->Task->findBelongsTo($model, array());
$expected = array(
@ -366,7 +376,8 @@ class ModelTaskTest extends CakeTestCase {
* test that hasOne and/or hasMany relations are generated properly.
*
* @return void
**/
* @access public
*/
function testHasManyHasOneGeneration() {
$model = new Model(array('ds' => 'test_suite', 'name' => 'Article'));
$this->Task->connection = 'test_suite';
@ -390,7 +401,6 @@ class ModelTaskTest extends CakeTestCase {
);
$this->assertEqual($result, $expected);
$model = new Model(array('ds' => 'test_suite', 'name' => 'CategoryThread'));
$result = $this->Task->findHasOneAndMany($model, array());
$expected = array(
@ -413,10 +423,11 @@ class ModelTaskTest extends CakeTestCase {
}
/**
* test that habtm generation works
* Test that HABTM generation works
*
* @return void
**/
* @access public
*/
function testHasAndBelongsToManyGeneration() {
$model = new Model(array('ds' => 'test_suite', 'name' => 'Article'));
$this->Task->connection = 'test_suite';
@ -440,7 +451,8 @@ class ModelTaskTest extends CakeTestCase {
* test non interactive doAssociations
*
* @return void
**/
* @access public
*/
function testDoAssociationsNonInteractive() {
$this->Task->connection = 'test_suite';
$this->Task->interactive = false;
@ -464,14 +476,14 @@ class ModelTaskTest extends CakeTestCase {
),
),
);
}
/**
* Ensure that the fixutre object is correctly called.
*
* @return void
**/
* @access public
*/
function testBakeFixture() {
$this->Task->Fixture->expectAt(0, 'bake', array('Article', 'articles'));
$this->Task->bakeFixture('Article', 'articles');
@ -484,7 +496,8 @@ class ModelTaskTest extends CakeTestCase {
* Ensure that the test object is correctly called.
*
* @return void
**/
* @access public
*/
function testBakeTest() {
$this->Task->Test->expectAt(0, 'bake', array('Model', 'Article'));
$this->Task->bakeTest('Article');
@ -498,7 +511,8 @@ class ModelTaskTest extends CakeTestCase {
* a question for the hasOne is also not asked.
*
* @return void
**/
* @access public
*/
function testConfirmAssociations() {
$associations = array(
'hasOne' => array(
@ -538,7 +552,8 @@ class ModelTaskTest extends CakeTestCase {
* test that inOptions generates questions and only accepts a valid answer
*
* @return void
**/
* @access public
*/
function testInOptions() {
$options = array('one', 'two', 'three');
$this->Task->expectAt(0, 'out', array('1. one'));
@ -558,7 +573,8 @@ class ModelTaskTest extends CakeTestCase {
* test baking validation
*
* @return void
**/
* @access public
*/
function testBakeValidation() {
$validate = array(
'name' => array(
@ -586,7 +602,8 @@ class ModelTaskTest extends CakeTestCase {
* test baking relations
*
* @return void
**/
* @access public
*/
function testBakeRelations() {
$associations = array(
'belongsTo' => array(
@ -640,7 +657,8 @@ class ModelTaskTest extends CakeTestCase {
* test bake() with a -plugin param
*
* @return void
**/
* @access public
*/
function testBakeWithPlugin() {
$this->Task->plugin = 'ControllerTest';
@ -660,7 +678,8 @@ class ModelTaskTest extends CakeTestCase {
* test that execute passes runs bake depending with named model.
*
* @return void
**/
* @access public
*/
function testExecuteWithNamedModel() {
$this->Task->connection = 'test_suite';
$this->Task->path = '/my/path/';
@ -675,7 +694,8 @@ class ModelTaskTest extends CakeTestCase {
* test that execute runs all() when args[0] = all
*
* @return void
**/
* @access public
*/
function testExecuteIntoAll() {
$this->Task->connection = 'test_suite';
$this->Task->path = '/my/path/';
@ -707,7 +727,8 @@ class ModelTaskTest extends CakeTestCase {
* test the interactive side of bake.
*
* @return void
**/
* @access public
*/
function testExecuteIntoInteractive() {
$this->Task->connection = 'test_suite';
$this->Task->path = '/my/path/';
@ -736,7 +757,8 @@ class ModelTaskTest extends CakeTestCase {
* test using bake interactively with a table that does not exist.
*
* @return void
**/
* @access public
*/
function testExecuteWithNonExistantTableName() {
$this->Task->connection = 'test_suite';
$this->Task->path = '/my/path/';

View file

@ -72,7 +72,8 @@ class PluginTaskTest extends CakeTestCase {
* startCase methods
*
* @return void
**/
* @access public
*/
function startCase() {
$this->_paths = $paths = App::path('plugins');
$this->_testPath = array_push($paths, TMP . 'tests' . DS);
@ -83,7 +84,8 @@ class PluginTaskTest extends CakeTestCase {
* endCase
*
* @return void
**/
* @access public
*/
function endCase() {
App::build(array('plugins' => $this->_paths));
}
@ -102,7 +104,8 @@ class PluginTaskTest extends CakeTestCase {
* test bake()
*
* @return void
**/
* @access public
*/
function testBakeFoldersAndFiles() {
$this->Task->setReturnValueAt(0, 'in', $this->_testPath);
$this->Task->setReturnValueAt(1, 'in', 'y');
@ -196,7 +199,8 @@ class PluginTaskTest extends CakeTestCase {
* test execute with no args, flowing into interactive,
*
* @return void
**/
* @access public
*/
function testExecuteWithNoArgs() {
$this->Task->setReturnValueAt(0, 'in', 'TestPlugin');
$this->Task->setReturnValueAt(1, 'in', '3');
@ -221,7 +225,8 @@ class PluginTaskTest extends CakeTestCase {
* Test Execute
*
* @return void
**/
* @access public
*/
function testExecuteWithOneArg() {
$this->Task->setReturnValueAt(0, 'in', $this->_testPath);
$this->Task->setReturnValueAt(1, 'in', 'y');
@ -245,7 +250,8 @@ class PluginTaskTest extends CakeTestCase {
* test execute chaining into MVC parts
*
* @return void
**/
* @access public
*/
function testExecuteWithTwoArgs() {
$this->Task->Model =& new PluginTestMockModelTask();
$this->Task->setReturnValueAt(0, 'in', $this->_testPath);

View file

@ -84,7 +84,8 @@ class ProjectTaskTest extends CakeTestCase {
* creates a test project that is used for testing project task.
*
* @return void
**/
* @access protected
*/
function _setupTestProject() {
$skel = CAKE_CORE_INCLUDE_PATH . DS . CAKE . 'console' . DS . 'templates' . DS . 'skel';
$this->Task->setReturnValueAt(0, 'in', 'y');
@ -96,7 +97,8 @@ class ProjectTaskTest extends CakeTestCase {
* test bake() method and directory creation.
*
* @return void
**/
* @access public
*/
function testBake() {
$this->_setupTestProject();
@ -117,7 +119,8 @@ class ProjectTaskTest extends CakeTestCase {
* test generation of Security.salt
*
* @return void
**/
* @access public
*/
function testSecuritySaltGeneration() {
$this->_setupTestProject();
@ -134,7 +137,8 @@ class ProjectTaskTest extends CakeTestCase {
* Test that index.php is generated correctly.
*
* @return void
**/
* @access public
*/
function testIndexPhpGeneration() {
$this->_setupTestProject();
@ -154,7 +158,8 @@ class ProjectTaskTest extends CakeTestCase {
* test getPrefix method, and that it returns Routing.prefix or writes to config file.
*
* @return void
**/
* @access public
*/
function testGetPrefix() {
Configure::write('Routing.prefixes', array('admin'));
$result = $this->Task->getPrefix();
@ -176,7 +181,8 @@ class ProjectTaskTest extends CakeTestCase {
* test cakeAdmin() writing core.php
*
* @return void
**/
* @access public
*/
function testCakeAdmin() {
$file =& new File(CONFIGS . 'core.php');
$contents = $file->read();;
@ -196,7 +202,8 @@ class ProjectTaskTest extends CakeTestCase {
* test getting the prefix with more than one prefix setup
*
* @return void
**/
* @access public
*/
function testGetPrefixWithMultiplePrefixes() {
Configure::write('Routing.prefixes', array('admin', 'ninja', 'shinobi'));
$this->_setupTestProject();
@ -211,7 +218,8 @@ class ProjectTaskTest extends CakeTestCase {
* Test execute method with one param to destination folder.
*
* @return void
**/
* @access public
*/
function testExecute() {
$this->Task->params['skel'] = CAKE_CORE_INCLUDE_PATH . DS . CAKE . DS . 'console' . DS. 'templates' . DS . 'skel';
$this->Task->params['working'] = TMP . 'tests' . DS;

View file

@ -81,7 +81,8 @@ class TemplateTaskTest extends CakeTestCase {
* test that set sets variables
*
* @return void
**/
* @access public
*/
function testSet() {
$this->Task->set('one', 'two');
$this->assertTrue(isset($this->Task->templateVars['one']));
@ -98,7 +99,8 @@ class TemplateTaskTest extends CakeTestCase {
* test finding themes installed in
*
* @return void
**/
* @access public
*/
function testFindingInstalledThemesForBake() {
$consoleLibs = CAKE_CORE_INCLUDE_PATH . DS . CAKE . 'console' . DS;
$this->Task->Dispatch->shellPaths = array($consoleLibs);
@ -111,7 +113,8 @@ class TemplateTaskTest extends CakeTestCase {
* that the user is not bugged. If there are more, find and return the correct theme name
*
* @return void
**/
* @access public
*/
function testGetThemePath() {
$defaultTheme = CAKE_CORE_INCLUDE_PATH . DS . dirname(CONSOLE_LIBS) . 'templates' . DS . 'default' .DS;
$this->Task->templatePaths = array('default' => $defaultTheme);
@ -136,7 +139,8 @@ class TemplateTaskTest extends CakeTestCase {
* test generate
*
* @return void
**/
* @access public
*/
function testGenerate() {
App::build(array(
'shells' => array(
@ -155,7 +159,8 @@ class TemplateTaskTest extends CakeTestCase {
* ensure fallback to default works.
*
* @return void
**/
* @access public
*/
function testGenerateWithTemplateFallbacks() {
App::build(array(
'shells' => array(

View file

@ -49,17 +49,48 @@ Mock::generatePartial(
);
/**
* Test subject models for fixture generation
**/
* Test Article model
*
* @package cake
* @subpackage cake.tests.cases.console.libs.tasks
*/
class TestTaskArticle extends Model {
/**
* Model name
*
* @var string
* @access public
*/
var $name = 'TestTaskArticle';
/**
* Table name to use
*
* @var string
* @access public
*/
var $useTable = 'articles';
/**
* HasMany Associations
*
* @var array
* @access public
*/
var $hasMany = array(
'Comment' => array(
'className' => 'TestTask.TestTaskComment',
'foreignKey' => 'article_id',
)
);
/**
* Has and Belongs To Many Associations
*
* @var array
* @access public
*/
var $hasAndBelongsToMany = array(
'Tag' => array(
'className' => 'TestTaskTag',
@ -68,19 +99,65 @@ class TestTaskArticle extends Model {
'associationForeignKey' => 'tag_id'
)
);
/**
* Example public method
*
* @return void
* @access public
*/
function doSomething() {
}
/**
* Example Secondary public method
*
* @return void
* @access public
*/
function doSomethingElse() {
}
function _innerMethod() {
/**
* Example protected method
*
* @return void
* @access protected
*/
function _innerMethod() {
}
}
/**
* Tag Testing Model
*
* @package cake
* @subpackage cake.tests.cases.console.libs.tasks
*/
class TestTaskTag extends Model {
/**
* Model name
*
* @var string
* @access public
*/
var $name = 'TestTaskTag';
/**
* Table name
*
* @var string
* @access public
*/
var $useTable = 'tags';
/**
* Has and Belongs To Many Associations
*
* @var array
* @access public
*/
var $hasAndBelongsToMany = array(
'Article' => array(
'className' => 'TestTaskArticle',
@ -92,14 +169,44 @@ class TestTaskTag extends Model {
}
/**
* Simulated Plugin
**/
* Simulated plugin
*
* @package cake
* @subpackage cake.tests.cases.console.libs.tasks
*/
class TestTaskAppModel extends Model {
}
/**
* Testing AppMode (TaskComment)
*
* @package cake
* @subpackage cake.tests.cases.console.libs.tasks
*/
class TestTaskComment extends TestTaskAppModel {
/**
* Model name
*
* @var string
* @access public
*/
var $name = 'TestTaskComment';
/**
* Table name
*
* @var string
* @access public
*/
var $useTable = 'comments';
/**
* Belongs To Associations
*
* @var array
* @access public
*/
var $belongsTo = array(
'Article' => array(
'className' => 'TestTaskArticle',
@ -108,8 +215,28 @@ class TestTaskComment extends TestTaskAppModel {
);
}
/**
* Test Task Comments Controller
*
* @package cake
* @subpackage cake.tests.cases.console.libs.tasks
*/
class TestTaskCommentsController extends Controller {
/**
* Controller Name
*
* @var string
* @access public
*/
var $name = 'TestTaskComments';
/**
* Models to use
*
* @var array
* @access public
*/
var $uses = array('TestTaskComment', 'TestTaskTag');
}
@ -121,6 +248,12 @@ class TestTaskCommentsController extends Controller {
*/
class TestTaskTest extends CakeTestCase {
/**
* Fixtures
*
* @var string
* @access public
*/
var $fixtures = array('core.article', 'core.comment', 'core.articles_tag', 'core.tag');
/**
@ -150,8 +283,8 @@ class TestTaskTest extends CakeTestCase {
/**
* Test that file path generation doesn't continuously append paths.
*
* @access public
* @return void
* @access public
*/
function testFilePathGeneration() {
$file = TESTS . 'cases' . DS . 'models' . DS . 'my_class.test.php';
@ -176,7 +309,7 @@ class TestTaskTest extends CakeTestCase {
* methods into the test case.
*
* @return void
**/
*/
function testMethodIntrospection() {
$result = $this->Task->getTestableMethods('TestTaskArticle');
$expected = array('dosomething', 'dosomethingelse');
@ -187,7 +320,8 @@ class TestTaskTest extends CakeTestCase {
* test that the generation of fixtures works correctly.
*
* @return void
**/
* @access public
*/
function testFixtureArrayGenerationFromModel() {
$subject = ClassRegistry::init('TestTaskArticle');
$result = $this->Task->generateFixtureList($subject);
@ -201,7 +335,8 @@ class TestTaskTest extends CakeTestCase {
* test that the generation of fixtures works correctly.
*
* @return void
**/
* @access public
*/
function testFixtureArrayGenerationFromController() {
$subject = new TestTaskCommentsController();
$result = $this->Task->generateFixtureList($subject);
@ -215,7 +350,8 @@ class TestTaskTest extends CakeTestCase {
* test user interaction to get object type
*
* @return void
**/
* @access public
*/
function testGetObjectType() {
$this->Task->expectOnce('_stop');
$this->Task->setReturnValueAt(0, 'in', 'q');
@ -230,7 +366,8 @@ class TestTaskTest extends CakeTestCase {
* creating test subjects should clear the registry so the registry is always fresh
*
* @return void
**/
* @access public
*/
function testRegistryClearWhenBuildingTestObjects() {
ClassRegistry::flush();
$model = ClassRegistry::init('TestTaskComment');
@ -254,7 +391,8 @@ class TestTaskTest extends CakeTestCase {
* test that getClassName returns the user choice as a classname.
*
* @return void
**/
* @access public
*/
function testGetClassName() {
$objects = App::objects('model');
$skip = $this->skipIf(empty($objects), 'No models in app, this test will fail. %s');
@ -275,7 +413,8 @@ class TestTaskTest extends CakeTestCase {
* Test the user interaction for defining additional fixtures.
*
* @return void
**/
* @access public
*/
function testGetUserFixtures() {
$this->Task->setReturnValueAt(0, 'in', 'y');
$this->Task->setReturnValueAt(1, 'in', 'app.pizza, app.topping, app.side_dish');
@ -288,7 +427,8 @@ class TestTaskTest extends CakeTestCase {
* test that resolving classnames works
*
* @return void
**/
* @access public
*/
function testGetRealClassname() {
$result = $this->Task->getRealClassname('Model', 'Post');
$this->assertEqual($result, 'Post');
@ -311,7 +451,8 @@ class TestTaskTest extends CakeTestCase {
* as PHP4 classnames are all lower case, breaking the plugin path inflection.
*
* @return void
**/
* @access public
*/
function testBakeModelTest() {
$this->Task->setReturnValue('createFile', true);
$this->Task->setReturnValue('isLoadableClass', true);
@ -344,7 +485,8 @@ class TestTaskTest extends CakeTestCase {
* causing issues with inflection of path name from classname.
*
* @return void
**/
* @access public
*/
function testBakeControllerTest() {
$this->Task->setReturnValue('createFile', true);
$this->Task->setReturnValue('isLoadableClass', true);
@ -377,7 +519,8 @@ class TestTaskTest extends CakeTestCase {
* test Constructor generation ensure that constructClasses is called for controllers
*
* @return void
**/
* @access public
*/
function testGenerateContsructor() {
$result = $this->Task->generateConstructor('controller', 'PostsController');
$expected = "new TestPostsController();\n\t\t\$this->Posts->constructClasses();\n";
@ -396,7 +539,8 @@ class TestTaskTest extends CakeTestCase {
* Test that mock class generation works for the appropriate classes
*
* @return void
**/
* @access public
*/
function testMockClassGeneration() {
$result = $this->Task->hasMockClass('controller');
$this->assertTrue($result);
@ -406,7 +550,8 @@ class TestTaskTest extends CakeTestCase {
* test bake() with a -plugin param
*
* @return void
**/
* @access public
*/
function testBakeWithPlugin() {
$this->Task->plugin = 'TestTest';
@ -419,7 +564,8 @@ class TestTaskTest extends CakeTestCase {
* Test filename generation for each type + plugins
*
* @return void
**/
* @access public
*/
function testTestCaseFileName() {
$this->Task->path = '/my/path/tests/';
@ -453,7 +599,8 @@ class TestTaskTest extends CakeTestCase {
* test execute with a type defined
*
* @return void
**/
* @access public
*/
function testExecuteWithOneArg() {
$this->Task->args[0] = 'Model';
$this->Task->setReturnValueAt(0, 'in', 'TestTaskTag');
@ -466,7 +613,8 @@ class TestTaskTest extends CakeTestCase {
* test execute with type and class name defined
*
* @return void
**/
* @access public
*/
function testExecuteWithTwoArgs() {
$this->Task->args = array('Model', 'TestTaskTag');
$this->Task->setReturnValueAt(0, 'in', 'TestTaskTag');

View file

@ -49,10 +49,36 @@ Mock::generatePartial(
Mock::generate('ControllerTask', 'ViewTaskMockControllerTask');
Mock::generate('ProjectTask', 'ViewTaskMockProjectTask');
/**
* Test View Task Comment Model
*
* @package cake
* @subpackage cake.tests.cases.console.libs.tasks
*/
class ViewTaskComment extends Model {
/**
* Model name
*
* @var string
* @access public
*/
var $name = 'ViewTaskComment';
/**
* Table name
*
* @var string
* @access public
*/
var $useTable = 'comments';
/**
* Belongs To Associations
*
* @var array
* @access public
*/
var $belongsTo = array(
'Article' => array(
'className' => 'ViewTaskArticle',
@ -61,46 +87,143 @@ class ViewTaskComment extends Model {
);
}
/**
* Test View Task Article Model
*
* @package cake
* @subpackage cake.tests.cases.console.libs.tasks
*/
class ViewTaskArticle extends Model {
/**
* Model name
*
* @var string
* @access public
*/
var $name = 'ViewTaskArticle';
/**
* Table name
*
* @var string
* @access public
*/
var $useTable = 'articles';
}
/**
* Test View Task Comments Controller
*
* @package cake
* @subpackage cake.tests.cases.console.libs.tasks
*/
class ViewTaskCommentsController extends Controller {
/**
* Controller name
*
* @var string
* @access public
*/
var $name = 'ViewTaskComments';
/**
* Testing public controller action
*
* @return void
* @access public
*/
function index() {
}
function add() {
/**
* Testing public controller action
*
* @return void
* @access public
*/
function add() {
}
}
/**
* Test View Task Articles Controller
*
* @package cake
* @subpackage cake.tests.cases.console.libs.tasks
*/
class ViewTaskArticlesController extends Controller {
/**
* Controller name
*
* @var string
* @access public
*/
var $name = 'ViewTaskArticles';
/**
* Test public controller action
*
* @return void
* @access public
*/
function index() {
}
/**
* Test public controller action
*
* @return void
* @access public
*/
function add() {
}
/**
* Test admin prefixed controller action
*
* @return void
* @access public
*/
function admin_index() {
}
/**
* Test admin prefixed controller action
*
* @return void
* @access public
*/
function admin_add() {
}
/**
* Test admin prefixed controller action
*
* @return void
* @access public
*/
function admin_view() {
}
/**
* Test admin prefixed controller action
*
* @return void
* @access public
*/
function admin_edit() {
}
function admin_delete() {
/**
* Test admin prefixed controller action
*
* @return void
* @access public
*/
function admin_delete() {
}
}
@ -112,6 +235,12 @@ class ViewTaskArticlesController extends Controller {
*/
class ViewTaskTest extends CakeTestCase {
/**
* Fixtures
*
* @var array
* @access public
*/
var $fixtures = array('core.article', 'core.comment', 'core.articles_tag', 'core.tag');
/**
@ -148,7 +277,8 @@ class ViewTaskTest extends CakeTestCase {
* Test getContent and parsing of Templates.
*
* @return void
**/
* @access public
*/
function testGetContent() {
$vars = array(
'modelClass' => 'TestViewModel',
@ -178,7 +308,8 @@ class ViewTaskTest extends CakeTestCase {
* test getContent() using an admin_prefixed action.
*
* @return void
**/
* @access public
*/
function testGetContentWithAdminAction() {
$_back = Configure::read('Routing');
Configure::write('Routing.prefixes', array('admin'));
@ -212,7 +343,8 @@ class ViewTaskTest extends CakeTestCase {
* test Bake method
*
* @return void
**/
* @access public
*/
function testBake() {
$this->Task->controllerName = 'ViewTaskComments';
$this->Task->controllerPath = 'view_task_comments';
@ -237,7 +369,8 @@ class ViewTaskTest extends CakeTestCase {
* test bake() with a -plugin param
*
* @return void
**/
* @access public
*/
function testBakeWithPlugin() {
$this->Task->controllerName = 'ViewTaskComments';
$this->Task->controllerPath = 'view_task_comments';
@ -252,7 +385,8 @@ class ViewTaskTest extends CakeTestCase {
* test bake actions baking multiple actions.
*
* @return void
**/
* @access public
*/
function testBakeActions() {
$this->Task->controllerName = 'ViewTaskComments';
$this->Task->controllerPath = 'view_task_comments';
@ -277,7 +411,8 @@ class ViewTaskTest extends CakeTestCase {
* test baking a customAction (non crud)
*
* @return void
**/
* @access public
*/
function testCustomAction() {
$this->Task->controllerName = 'ViewTaskComments';
$this->Task->controllerPath = 'view_task_comments';
@ -295,7 +430,8 @@ class ViewTaskTest extends CakeTestCase {
* Test all()
*
* @return void
**/
* @access public
*/
function testExecuteIntoAll() {
$this->Task->args[0] = 'all';
@ -313,7 +449,8 @@ class ViewTaskTest extends CakeTestCase {
* test `cake bake view $controller view`
*
* @return void
**/
* @access public
*/
function testExecuteWithActionParam() {
$this->Task->args[0] = 'ViewTaskComments';
$this->Task->args[1] = 'view';
@ -328,7 +465,8 @@ class ViewTaskTest extends CakeTestCase {
* Ensure that views are only baked for actions that exist in the controller.
*
* @return void
**/
* @access public
*/
function testExecuteWithController() {
$this->Task->args[0] = 'ViewTaskComments';
@ -344,7 +482,8 @@ class ViewTaskTest extends CakeTestCase {
* Which only bakes admin methods, not non-admin methods.
*
* @return void
**/
* @access public
*/
function testExecuteWithControllerAndAdminFlag() {
$_back = Configure::read('Routing');
Configure::write('Routing.prefixes', array('admin'));
@ -366,7 +505,8 @@ class ViewTaskTest extends CakeTestCase {
* test execute into interactive.
*
* @return void
**/
* @access public
*/
function testExecuteInteractive() {
$this->Task->connection = 'test_suite';
$this->Task->args = array();
@ -403,7 +543,8 @@ class ViewTaskTest extends CakeTestCase {
* test `cake bake view posts index list`
*
* @return void
**/
* @access public
*/
function testExecuteWithAlternateTemplates() {
$this->Task->connection = 'test_suite';
$this->Task->args = array('ViewTaskComments', 'index', 'list');
@ -421,7 +562,8 @@ class ViewTaskTest extends CakeTestCase {
* test execute into interactive() with admin methods.
*
* @return void
**/
* @access public
*/
function testExecuteInteractiveWithAdmin() {
Configure::write('Routing.prefixes', array('admin'));
$this->Task->connection = 'test_suite';

View file

@ -41,8 +41,8 @@ class TestDispatcher extends Dispatcher {
* @param mixed $controller
* @param mixed $params
* @param mixed $missingAction
* @access protected
* @return void
* @access protected
*/
function _invoke(&$controller, $params) {
restore_error_handler();
@ -60,8 +60,8 @@ class TestDispatcher extends Dispatcher {
* cakeError method
*
* @param mixed $filename
* @access public
* @return void
* @access public
*/
function cakeError($filename, $params) {
return array($filename, $params);
@ -70,8 +70,8 @@ class TestDispatcher extends Dispatcher {
/**
* _stop method
*
* @access protected
* @return void
* @access protected
*/
function _stop() {
return true;
@ -114,8 +114,8 @@ class MyPluginController extends MyPluginAppController {
/**
* index method
*
* @access public
* @return void
* @access public
*/
function index() {
return true;
@ -124,8 +124,8 @@ class MyPluginController extends MyPluginAppController {
/**
* add method
*
* @access public
* @return void
* @access public
*/
function add() {
return true;
@ -135,8 +135,8 @@ class MyPluginController extends MyPluginAppController {
* admin_add method
*
* @param mixed $id
* @access public
* @return void
* @access public
*/
function admin_add($id = null) {
return $id;
@ -171,8 +171,8 @@ class SomePagesController extends AppController {
* display method
*
* @param mixed $page
* @access public
* @return void
* @access public
*/
function display($page = null) {
return $page;
@ -181,8 +181,8 @@ class SomePagesController extends AppController {
/**
* index method
*
* @access public
* @return void
* @access public
*/
function index() {
return true;
@ -191,8 +191,8 @@ class SomePagesController extends AppController {
/**
* protected method
*
* @access protected
* @return void
* @access protected
*/
function _protected() {
return true;
@ -201,8 +201,8 @@ class SomePagesController extends AppController {
/**
* redirect method overriding
*
* @access public
* @return void
* @access public
*/
function redirect() {
echo 'this should not be accessible';
@ -237,8 +237,8 @@ class OtherPagesController extends MyPluginAppController {
* display method
*
* @param mixed $page
* @access public
* @return void
* @access public
*/
function display($page = null) {
return $page;
@ -247,8 +247,8 @@ class OtherPagesController extends MyPluginAppController {
/**
* index method
*
* @access public
* @return void
* @access public
*/
function index() {
return true;
@ -282,8 +282,8 @@ class TestDispatchPagesController extends AppController {
/**
* admin_index method
*
* @access public
* @return void
* @access public
*/
function admin_index() {
return true;
@ -292,8 +292,8 @@ class TestDispatchPagesController extends AppController {
/**
* camelCased method
*
* @access public
* @return void
* @access public
*/
function camelCased() {
return true;
@ -336,8 +336,8 @@ class ArticlesTestController extends ArticlesTestAppController {
/**
* admin_index method
*
* @access public
* @return void
* @access public
*/
function admin_index() {
return true;
@ -379,8 +379,8 @@ class SomePostsController extends AppController {
/**
* beforeFilter method
*
* @access public
* @return void
* @access public
*/
function beforeFilter() {
if ($this->params['action'] == 'index') {
@ -394,8 +394,8 @@ class SomePostsController extends AppController {
/**
* index method
*
* @access public
* @return void
* @access public
*/
function index() {
return true;
@ -404,8 +404,8 @@ class SomePostsController extends AppController {
/**
* change method
*
* @access public
* @return void
* @access public
*/
function change() {
return true;
@ -466,8 +466,8 @@ class TestCachedPagesController extends AppController {
/**
* index method
*
* @access public
* @return void
* @access public
*/
function index() {
$this->render();
@ -476,8 +476,8 @@ class TestCachedPagesController extends AppController {
/**
* test_nocache_tags method
*
* @access public
* @return void
* @access public
*/
function test_nocache_tags() {
$this->render();
@ -486,8 +486,8 @@ class TestCachedPagesController extends AppController {
/**
* view method
*
* @access public
* @return void
* @access public
*/
function view($id = null) {
$this->render('index');
@ -521,8 +521,8 @@ class TimesheetsController extends AppController {
/**
* index method
*
* @access public
* @return void
* @access public
*/
function index() {
return true;
@ -540,8 +540,8 @@ class DispatcherTest extends CakeTestCase {
/**
* setUp method
*
* @access public
* @return void
* @access public
*/
function startTest() {
$this->_get = $_GET;
@ -567,8 +567,8 @@ class DispatcherTest extends CakeTestCase {
/**
* tearDown method
*
* @access public
* @return void
* @access public
*/
function endTest() {
$_GET = $this->_get;
@ -584,8 +584,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testParseParamsWithoutZerosAndEmptyPost method
*
* @access public
* @return void
* @access public
*/
function testParseParamsWithoutZerosAndEmptyPost() {
$Dispatcher =& new Dispatcher();
@ -601,8 +601,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testParseParamsReturnsPostedData method
*
* @access public
* @return void
* @access public
*/
function testParseParamsReturnsPostedData() {
$_POST['testdata'] = "My Posted Content";
@ -615,8 +615,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testParseParamsWithSingleZero method
*
* @access public
* @return void
* @access public
*/
function testParseParamsWithSingleZero() {
$Dispatcher =& new Dispatcher();
@ -631,8 +631,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testParseParamsWithManySingleZeros method
*
* @access public
* @return void
* @access public
*/
function testParseParamsWithManySingleZeros() {
$Dispatcher =& new Dispatcher();
@ -648,8 +648,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testParseParamsWithManyZerosInEachSectionOfUrl method
*
* @access public
* @return void
* @access public
*/
function testParseParamsWithManyZerosInEachSectionOfUrl() {
$Dispatcher =& new Dispatcher();
@ -665,8 +665,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testParseParamsWithMixedOneToManyZerosInEachSectionOfUrl method
*
* @access public
* @return void
* @access public
*/
function testParseParamsWithMixedOneToManyZerosInEachSectionOfUrl() {
$Dispatcher =& new Dispatcher();
@ -682,8 +682,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testQueryStringOnRoot method
*
* @access public
* @return void
* @access public
*/
function testQueryStringOnRoot() {
Router::reload();
@ -712,8 +712,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testFileUploadArrayStructure method
*
* @access public
* @return void
* @access public
*/
function testFileUploadArrayStructure() {
$_FILES = array('data' => array('name' => array(
@ -965,8 +965,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testGetUrl method
*
* @access public
* @return void
* @access public
*/
function testGetUrl() {
$Dispatcher =& new Dispatcher();
@ -1005,8 +1005,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testBaseUrlAndWebrootWithModRewrite method
*
* @access public
* @return void
* @access public
*/
function testBaseUrlAndWebrootWithModRewrite() {
$Dispatcher =& new Dispatcher();
@ -1081,8 +1081,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testBaseUrlwithModRewriteAlias method
*
* @access public
* @return void
* @access public
*/
function testBaseUrlwithModRewriteAlias() {
$_SERVER['DOCUMENT_ROOT'] = '/home/aplusnur/public_html';
@ -1116,8 +1116,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testBaseUrlAndWebrootWithBaseUrl method
*
* @access public
* @return void
* @access public
*/
function testBaseUrlAndWebrootWithBaseUrl() {
$Dispatcher =& new Dispatcher();
@ -1186,8 +1186,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testBaseUrlAndWebrootWithBase method
*
* @access public
* @return void
* @access public
*/
function testBaseUrlAndWebrootWithBase() {
$Dispatcher =& new Dispatcher();
@ -1217,8 +1217,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testMissingController method
*
* @access public
* @return void
* @access public
*/
function testMissingController() {
$Dispatcher =& new TestDispatcher();
@ -1237,8 +1237,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testPrivate method
*
* @access public
* @return void
* @access public
*/
function testPrivate() {
$Dispatcher =& new TestDispatcher();
@ -1260,8 +1260,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testMissingAction method
*
* @access public
* @return void
* @access public
*/
function testMissingAction() {
$Dispatcher =& new TestDispatcher();
@ -1298,8 +1298,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testDispatch method
*
* @access public
* @return void
* @access public
*/
function testDispatch() {
$Dispatcher =& new TestDispatcher();
@ -1353,8 +1353,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testDispatchWithArray method
*
* @access public
* @return void
* @access public
*/
function testDispatchWithArray() {
$Dispatcher =& new TestDispatcher();
@ -1373,8 +1373,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testAdminDispatch method
*
* @access public
* @return void
* @access public
*/
function testAdminDispatch() {
$_POST = array();
@ -1404,8 +1404,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testPluginDispatch method
*
* @access public
* @return void
* @access public
*/
function testPluginDispatch() {
$_POST = array();
@ -1453,8 +1453,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testAutomaticPluginDispatch method
*
* @access public
* @return void
* @access public
*/
function testAutomaticPluginDispatch() {
$_POST = array();
@ -1491,8 +1491,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testAutomaticPluginControllerDispatch method
*
* @access public
* @return void
* @access public
*/
function testAutomaticPluginControllerDispatch() {
$_POST = array();
@ -1594,7 +1594,8 @@ class DispatcherTest extends CakeTestCase {
* plugin short form instead.
*
* @return void
**/
* @access public
*/
function testAutomaticPluginDispatchWithShortAccess() {
$_POST = array();
$_SERVER['PHP_SELF'] = '/cake/repo/branches/1.2.x.x/index.php';
@ -1642,8 +1643,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testAutomaticPluginControllerMissingActionDispatch method
*
* @access public
* @return void
* @access public
*/
function testAutomaticPluginControllerMissingActionDispatch() {
$_POST = array();
@ -1685,8 +1686,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testPrefixProtection method
*
* @access public
* @return void
* @access public
*/
function testPrefixProtection() {
$_POST = array();
@ -1715,7 +1716,8 @@ class DispatcherTest extends CakeTestCase {
* undocumented function
*
* @return void
**/
* @access public
*/
function testTestPluginDispatch() {
$Dispatcher =& new TestDispatcher();
App::build(array(
@ -1734,8 +1736,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testChangingParamsFromBeforeFilter method
*
* @access public
* @return void
* @access public
*/
function testChangingParamsFromBeforeFilter() {
$_SERVER['PHP_SELF'] = '/cake/repo/branches/1.2.x.x/index.php';
@ -1768,8 +1770,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testStaticAssets method
*
* @access public
* @return void
* @access public
*/
function testStaticAssets() {
Router::reload();
@ -1845,8 +1847,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testFullPageCachingDispatch method
*
* @access public
* @return void
* @access public
*/
function testFullPageCachingDispatch() {
Configure::write('Cache.disable', false);
@ -1981,8 +1983,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testHttpMethodOverrides method
*
* @access public
* @return void
* @access public
*/
function testHttpMethodOverrides() {
Router::reload();
@ -2036,6 +2038,7 @@ class DispatcherTest extends CakeTestCase {
* Tests that invalid characters cannot be injected into the application base path.
*
* @return void
* @access public
*/
function testBasePathInjection() {
$self = $_SERVER['PHP_SELF'];
@ -2052,8 +2055,8 @@ class DispatcherTest extends CakeTestCase {
/**
* testEnvironmentDetection method
*
* @access public
* @return void
* @access public
*/
function testEnvironmentDetection() {
$dispatcher =& new Dispatcher();
@ -2158,8 +2161,8 @@ class DispatcherTest extends CakeTestCase {
/**
* Tests that the Dispatcher does not return an empty action
*
* @access private
* @return void
* @access public
*/
function testTrailingSlash() {
$_POST = array();
@ -2184,8 +2187,8 @@ class DispatcherTest extends CakeTestCase {
/**
* backupEnvironment method
*
* @access private
* @return void
* @access private
*/
function __backupEnvironment() {
return array(
@ -2199,8 +2202,8 @@ class DispatcherTest extends CakeTestCase {
/**
* reloadEnvironment method
*
* @access private
* @return void
* @access private
*/
function __reloadEnvironment() {
foreach ($_GET as $key => $val) {
@ -2219,8 +2222,8 @@ class DispatcherTest extends CakeTestCase {
* loadEnvironment method
*
* @param mixed $env
* @access private
* @return void
* @access private
*/
function __loadEnvironment($env) {
if ($env['reload']) {
@ -2254,8 +2257,8 @@ class DispatcherTest extends CakeTestCase {
* cachePath method
*
* @param mixed $her
* @access private
* @return string
* @access private
*/
function __cachePath($here) {
$path = $here;

View file

@ -71,6 +71,31 @@ class CacheTest extends CakeTestCase {
$this->assertEqual($results, Cache::config('new'));
}
/**
* test configuring CacheEngines in App/libs
*
* @return void
*/
function testConfigWithLibAndPluginEngines() {
App::build(array(
'libs' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'libs' . DS),
'plugins' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS)
), true);
$settings = array('engine' => 'TestAppCache', 'path' => TMP, 'prefix' => 'cake_test_');
$result = Cache::config('libEngine', $settings);
$this->assertEqual($result, Cache::config('libEngine'));
$settings = array('engine' => 'TestPlugin.TestPluginCache', 'path' => TMP, 'prefix' => 'cake_test_');
$result = Cache::config('pluginLibEngine', $settings);
$this->assertEqual($result, Cache::config('pluginLibEngine'));
Cache::drop('libEngine');
Cache::drop('pluginLibEngine');
App::build();
}
/**
* testInvalidConfig method
*
@ -137,6 +162,18 @@ class CacheTest extends CakeTestCase {
Cache::config('sessions', $_cacheConfigSessions['settings']);
}
/**
* test that configured returns an array of the currently configured cache
* settings
*
* @return void
*/
function testConfigured() {
$result = Cache::configured();
$this->assertTrue(in_array('_cake_core_', $result));
$this->assertTrue(in_array('default', $result));
}
/**
* testInitSettings method
*
@ -162,6 +199,37 @@ class CacheTest extends CakeTestCase {
Cache::engine('File');
}
/**
* test that unconfig removes cache configs, and that further attempts to use that config
* do not work.
*
* @return void
*/
function testUnconfig() {
App::build(array(
'libs' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'libs' . DS),
'plugins' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS)
), true);
$result = Cache::drop('some_config_that_does_not_exist');
$this->assertFalse($result);
$_testsConfig = Cache::config('tests');
$result = Cache::drop('tests');
$this->assertTrue($result);
Cache::config('unconfigTest', array(
'engine' => 'TestAppCache'
));
$this->assertTrue(Cache::isInitialized('TestAppCache'));
$this->assertTrue(Cache::drop('unconfigTest'));
$this->assertFalse(Cache::isInitialized('TestAppCache'));
Cache::config('tests', $_testsConfig);
App::build();
}
/**
* testWriteEmptyValues method
*

View file

@ -32,11 +32,11 @@ class CakeLogTest extends CakeTestCase {
* Start test callback, clears all streams enabled.
*
* @return void
**/
*/
function startTest() {
$streams = CakeLog::streams();
$streams = CakeLog::configured();
foreach ($streams as $stream) {
CakeLog::remove($stream);
CakeLog::drop($stream);
}
}
@ -44,7 +44,7 @@ class CakeLogTest extends CakeTestCase {
* test importing loggers from app/libs and plugins.
*
* @return void
**/
*/
function testImportingLoggers() {
App::build(array(
'libs' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'libs' . DS),
@ -55,13 +55,13 @@ class CakeLogTest extends CakeTestCase {
'engine' => 'TestAppLog'
));
$this->assertTrue($result);
$this->assertEqual(CakeLog::streams(), array('libtest'));
$this->assertEqual(CakeLog::configured(), array('libtest'));
$result = CakeLog::config('plugintest', array(
'engine' => 'TestPlugin.TestPluginLog'
));
$this->assertTrue($result);
$this->assertEqual(CakeLog::streams(), array('libtest', 'plugintest'));
$this->assertEqual(CakeLog::configured(), array('libtest', 'plugintest'));
App::build();
}
@ -70,7 +70,7 @@ class CakeLogTest extends CakeTestCase {
* test all the errors from failed logger imports
*
* @return void
**/
*/
function testImportingLoggerFailure() {
$this->expectError('Missing logger classname');
CakeLog::config('fail', array());
@ -87,13 +87,13 @@ class CakeLogTest extends CakeTestCase {
* When no streams are there.
*
* @return void
**/
*/
function testAutoConfig() {
@unlink(LOGS . 'error.log');
CakeLog::write(LOG_WARNING, 'Test warning');
$this->assertTrue(file_exists(LOGS . 'error.log'));
$result = CakeLog::streams();
$result = CakeLog::configured();
$this->assertEqual($result, array('default'));
unlink(LOGS . 'error.log');
}
@ -102,13 +102,13 @@ class CakeLogTest extends CakeTestCase {
* test configuring log streams
*
* @return void
**/
*/
function testConfig() {
CakeLog::config('file', array(
'engine' => 'FileLog',
'path' => LOGS
));
$result = CakeLog::streams();
$result = CakeLog::configured();
$this->assertEqual($result, array('file'));
@unlink(LOGS . 'error.log');
@ -120,6 +120,24 @@ class CakeLogTest extends CakeTestCase {
unlink(LOGS . 'error.log');
}
/**
* explict tests for drop()
*
* @return void
**/
function testDrop() {
CakeLog::config('file', array(
'engine' => 'FileLog',
'path' => LOGS
));
$result = CakeLog::configured();
$this->assertEqual($result, array('file'));
CakeLog::drop('file');
$result = CakeLog::configured();
$this->assertEqual($result, array());
}
/**
* testLogFileWriting method
*
@ -145,7 +163,7 @@ class CakeLogTest extends CakeTestCase {
* Test logging with the error handler.
*
* @return void
**/
*/
function testLoggingWithErrorHandling() {
@unlink(LOGS . 'debug.log');
Configure::write('log', E_ALL & ~E_DEPRECATED);

View file

@ -257,7 +257,7 @@ class CakeTestCaseTest extends CakeTestCase {
*
* @access public
* @return void
**/
*/
function testTestAction() {
App::build(array(
'plugins' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS),
@ -389,7 +389,7 @@ class CakeTestCaseTest extends CakeTestCase {
* testSkipIf
*
* @return void
**/
*/
function testSkipIf() {
$this->assertTrue($this->Case->skipIf(true));
$this->assertFalse($this->Case->skipIf(false));

View file

@ -110,7 +110,7 @@ class CakeTestFixtureDefaultImportFixture extends CakeTestFixture {
*
* @package default
* @subpackage cake.cake.tests.cases.libs.
**/
*/
class FixtureImportTestModel extends Model {
var $name = 'FixtureImport';
var $useTable = 'fixture_tests';

View file

@ -45,7 +45,7 @@ class CodeCoverageManagerTest extends CakeTestCase {
* Store reference of $_GET to restore later.
*
* @return void
**/
*/
function startCase() {
$this->_get = $_GET;
}
@ -54,7 +54,7 @@ class CodeCoverageManagerTest extends CakeTestCase {
* End Case - restore GET vars.
*
* @return void
**/
*/
function endCase() {
$_GET = $this->_get;
}

View file

@ -136,7 +136,7 @@ class ConfigureTest extends CakeTestCase {
* testSetErrorReporting Level
*
* @return void
**/
*/
function testSetErrorReportingLevel() {
Configure::write('log', false);
@ -160,7 +160,7 @@ class ConfigureTest extends CakeTestCase {
* test that log and debug configure values interact well.
*
* @return void
**/
*/
function testInteractionOfDebugAndLog() {
Configure::write('log', false);
@ -224,6 +224,27 @@ class ConfigureTest extends CakeTestCase {
$this->assertTrue($result === null);
}
/**
* testLoad method
*
* @access public
* @return void
*/
function testLoadPlugin() {
App::build(array('plugins' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS)), true);
$result = Configure::load('test_plugin.load');
$this->assertTrue($result === null);
$expected = '/test_app/plugins/test_plugin/config/load.php';
$config = Configure::read('plugin_load');
$this->assertEqual($config, $expected);
$result = Configure::load('test_plugin.more.load');
$this->assertTrue($result === null);
$expected = '/test_app/plugins/test_plugin/config/more.load.php';
$config = Configure::read('plugin_more_load');
$this->assertEqual($config, $expected);
}
/**
* testStore method
*
@ -246,7 +267,7 @@ class ConfigureTest extends CakeTestCase {
);
Configure::store('AnotherExample', 'test.config', $expected);
Configure::load('test.config');
Configure::load('test_config');
$config = Configure::read('AnotherExample');
$this->assertEqual($config, $expected);
}
@ -394,6 +415,29 @@ class AppImportTest extends UnitTestCase {
$this->assertFalse($result);
}
/**
* test that pluginPath can find paths for plugins.
*
* @return void
*/
function testPluginPath() {
App::build(array(
'plugins' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS)
));
$path = App::pluginPath('test_plugin');
$expected = TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS . 'test_plugin' . DS;
$this->assertEqual($path, $expected);
$path = App::pluginPath('TestPlugin');
$expected = TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS . 'test_plugin' . DS;
$this->assertEqual($path, $expected);
$path = App::pluginPath('TestPluginTwo');
$expected = TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS . 'test_plugin_two' . DS;
$this->assertEqual($path, $expected);
App::build();
}
/**
* testClassLoading method
*

View file

@ -477,7 +477,7 @@ class ComponentTest extends CakeTestCase {
* Ensure that settings are not duplicated when passed into component initialize.
*
* @return void
**/
*/
function testComponentParamsNoDuplication() {
if ($this->skipIf(defined('APP_CONTROLLER_EXISTS'), '%s Need a non-existent AppController')) {
return;

View file

@ -767,7 +767,7 @@ class AuthTest extends CakeTestCase {
* test authorize = 'actions' setting.
*
* @return void
**/
*/
function testAuthorizeActions() {
$this->AuthUser =& new AuthUser();
$user = $this->AuthUser->find();
@ -827,7 +827,7 @@ class AuthTest extends CakeTestCase {
* test the action() method
*
* @return void
**/
*/
function testActionMethod() {
$this->Controller->params['controller'] = 'auth_test';
$this->Controller->params['action'] = 'add';
@ -856,7 +856,7 @@ class AuthTest extends CakeTestCase {
* test that deny() converts camel case inputs to lowercase.
*
* @return void
**/
*/
function testDenyWithCamelCaseMethods() {
$this->Controller->Auth->initialize($this->Controller);
$this->Controller->Auth->allow('*');
@ -873,7 +873,7 @@ class AuthTest extends CakeTestCase {
* test that allow() and allowedActions work with camelCase method names.
*
* @return void
**/
*/
function testAllowedActionsWithCamelCaseMethods() {
$url = '/auth_test/camelCase';
$this->Controller->params = Router::parse($url);
@ -1099,7 +1099,7 @@ class AuthTest extends CakeTestCase {
* And the user doesn't have a session.
*
* @return void
**/
*/
function testNoRedirectOn404() {
$this->Controller->Session->delete('Auth');
$this->Controller->Auth->initialize($this->Controller);
@ -1201,7 +1201,7 @@ class AuthTest extends CakeTestCase {
* test Hashing of passwords
*
* @return void
**/
*/
function testHashPasswords() {
$this->Controller->Auth->userModel = 'AuthUser';

View file

@ -37,7 +37,7 @@ class RequestHandlerTestController extends Controller {
*
* @var string
* @access public
**/
*/
var $name = 'RequestHandlerTest';
/**
@ -66,7 +66,7 @@ class RequestHandlerTestController extends Controller {
* test method for ajax redirection
*
* @return void
**/
*/
function destination() {
$this->viewPath = 'posts';
$this->render('index');
@ -245,7 +245,7 @@ class RequestHandlerComponentTest extends CakeTestCase {
* testStartupCallback with charset.
*
* @return void
**/
*/
function testStartupCallbackCharset() {
$_SERVER['REQUEST_METHOD'] = 'PUT';
$_SERVER['CONTENT_TYPE'] = 'application/xml; charset=UTF-8';
@ -287,7 +287,7 @@ class RequestHandlerComponentTest extends CakeTestCase {
*
* @link #6466
* @return void
**/
*/
function testRenderAsCalledTwice() {
$this->RequestHandler->renderAs($this->Controller, 'xml');
$this->assertEqual($this->Controller->viewPath, 'request_handler_test' . DS . 'xml');
@ -551,7 +551,7 @@ class RequestHandlerComponentTest extends CakeTestCase {
* test that ajax requests involving redirects trigger requestAction instead.
*
* @return void
**/
*/
function testAjaxRedirectAsRequestAction() {
$_SERVER['HTTP_X_REQUESTED_WITH'] = 'XMLHttpRequest';
$this->_init();

View file

@ -564,7 +564,7 @@ DIGEST;
* test that validatePost fails if any of its required fields are missing.
*
* @return void
**/
*/
function testValidatePostFormHacking() {
$this->Controller->Security->startup($this->Controller);
$key = $this->Controller->params['_Token']['key'];
@ -676,7 +676,7 @@ DIGEST;
* test ValidatePost with multiple select elements.
*
* @return void
**/
*/
function testValidatePostMultipleSelect() {
$this->Controller->Security->startup($this->Controller);
$key = $this->Controller->params['_Token']['key'];

View file

@ -252,7 +252,7 @@ class ControllerPaginateModel extends CakeTestModel {
*
* @return void
* @access public
**/
*/
function paginate($conditions, $fields, $order, $limit, $page, $recursive, $extra) {
$this->extra = $extra;
}
@ -673,7 +673,7 @@ class ControllerTest extends CakeTestCase {
* Test that special paginate types are called and that the type param doesn't leak out into defaults or options.
*
* @return void
**/
*/
function testPaginateSpecialType() {
$Controller =& new Controller();
$Controller->uses = array('ControllerPost', 'ControllerComment');
@ -1029,7 +1029,7 @@ class ControllerTest extends CakeTestCase {
*
* @access public
* @return void
**/
*/
function testChildComponentOptionsSupercedeParents() {
if ($this->skipIf(defined('APP_CONTROLLER_EXISTS'), '%s Need a non-existent AppController')) {
return;
@ -1046,7 +1046,7 @@ class ControllerTest extends CakeTestCase {
* AppController when you make an instance of Controller
*
* @return void
**/
*/
function testMergeVarsNotGreedy() {
$Controller =& new Controller();
$Controller->components = array();

View file

@ -20,23 +20,26 @@
* @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License
*/
if (!class_exists('AppController')) {
/**
* Test case AppController requred
*
* @package cake.tests.cases.libs.controller
**/
/**
* Test case AppController
*
* @package cake
* @subpackage cake.tests.cases.libs.controller
*/
class AppController extends Controller {
/**
* components
*
* @var array
**/
/**
* components
*
* @var array
*/
var $components = array('MergeVar' => array('flag', 'otherFlag', 'redirect' => false));
/**
* helpers
*
* @var array
**/
/**
* helpers
*
* @var array
*/
var $helpers = array('MergeVar' => array('format' => 'html', 'terse'));
}
} elseif (!defined('APP_CONTROLLER_EXISTS')) {
@ -47,7 +50,7 @@ if (!class_exists('AppController')) {
* MergeVar Component
*
* @package cake.tests.cases.libs.controller
**/
*/
class MergeVarComponent extends Object {
}
@ -56,21 +59,21 @@ class MergeVarComponent extends Object {
* Additional controller for testing
*
* @package cake.tests.cases.libs.controller
**/
*/
class MergeVariablesController extends AppController {
/**
* name
*
* @var string
**/
*/
var $name = 'MergeVariables';
/**
* uses
*
* @var arrays
**/
*/
var $uses = array();
}
@ -78,21 +81,21 @@ class MergeVariablesController extends AppController {
* MergeVarPlugin App Controller
*
* @package cake.tests.cases.libs.controller
**/
*/
class MergeVarPluginAppController extends AppController {
/**
* components
*
* @var array
**/
*/
var $components = array('Auth' => array('setting' => 'val', 'otherVal'));
/**
* helpers
*
* @var array
**/
*/
var $helpers = array('Javascript');
}
@ -100,21 +103,21 @@ class MergeVarPluginAppController extends AppController {
* MergePostsController
*
* @package cake.tests.cases.libs.controller
**/
*/
class MergePostsController extends MergeVarPluginAppController {
/**
* name
*
* @var string
**/
*/
var $name = 'MergePosts';
/**
* uses
*
* @var array
**/
*/
var $uses = array();
}
@ -123,13 +126,13 @@ class MergePostsController extends MergeVarPluginAppController {
* Test Case for Controller Merging of Vars.
*
* @package cake.tests.cases.libs.controller
**/
*/
class ControllerMergeVarsTestCase extends CakeTestCase {
/**
* Skips the case if APP_CONTROLLER_EXISTS is defined
*
* @return void
**/
*/
function skip() {
$this->skipIf(defined('APP_CONTROLLER_EXISTS'), 'APP_CONTROLLER_EXISTS cannot run. %s');
}
@ -137,7 +140,7 @@ class ControllerMergeVarsTestCase extends CakeTestCase {
* end test
*
* @return void
**/
*/
function endTest() {
ClassRegistry::flush();
}
@ -146,7 +149,7 @@ class ControllerMergeVarsTestCase extends CakeTestCase {
* test that component settings are not duplicated when merging component settings
*
* @return void
**/
*/
function testComponentParamMergingNoDuplication() {
$Controller =& new MergeVariablesController();
$Controller->constructClasses();
@ -159,7 +162,7 @@ class ControllerMergeVarsTestCase extends CakeTestCase {
* test component merges with redeclared components
*
* @return void
**/
*/
function testComponentMergingWithRedeclarations() {
$Controller =& new MergeVariablesController();
$Controller->components['MergeVar'] = array('remote', 'redirect' => true);
@ -173,7 +176,7 @@ class ControllerMergeVarsTestCase extends CakeTestCase {
* test merging of helpers array, ensure no duplication occurs
*
* @return void
**/
*/
function testHelperSettingMergingNoDuplication() {
$Controller =& new MergeVariablesController();
$Controller->constructClasses();
@ -186,7 +189,7 @@ class ControllerMergeVarsTestCase extends CakeTestCase {
* test merging of vars with plugin
*
* @return void
**/
*/
function testMergeVarsWithPlugin() {
$Controller =& new MergePostsController();
$Controller->components = array('Email' => array('ports' => 'open'));
@ -223,7 +226,7 @@ class ControllerMergeVarsTestCase extends CakeTestCase {
* AppController when you make an instance of Controller
*
* @return void
**/
*/
function testMergeVarsNotGreedy() {
$Controller =& new Controller();
$Controller->components = array();

View file

@ -153,7 +153,7 @@ class ScaffoldMock extends CakeTestModel {
* hasAndBelongsToMany property
*
* @var string
**/
*/
var $hasAndBelongsToMany = array(
'ScaffoldTag' => array(
'className' => 'ScaffoldTag',
@ -387,7 +387,7 @@ class ScaffoldViewTest extends CakeTestCase {
*
* @access public
* @return void
**/
*/
function testIndexScaffold() {
$this->Controller->action = 'index';
$this->Controller->here = '/scaffold_mock';
@ -426,7 +426,7 @@ class ScaffoldViewTest extends CakeTestCase {
*
* @access public
* @return void
**/
*/
function testViewScaffold() {
$this->Controller->action = 'view';
$this->Controller->here = '/scaffold_mock';
@ -468,7 +468,7 @@ class ScaffoldViewTest extends CakeTestCase {
*
* @access public
* @return void
**/
*/
function testEditScaffold() {
$this->Controller->action = 'edit';
$this->Controller->here = '/scaffold_mock';
@ -509,7 +509,7 @@ class ScaffoldViewTest extends CakeTestCase {
*
* @access public
* @return void
**/
*/
function testAdminIndexScaffold() {
$_backAdmin = Configure::read('Routing.prefixes');
@ -554,7 +554,7 @@ class ScaffoldViewTest extends CakeTestCase {
*
* @access public
* @return void
**/
*/
function testAdminEditScaffold() {
$_backAdmin = Configure::read('Routing.prefixes');
@ -597,7 +597,7 @@ class ScaffoldViewTest extends CakeTestCase {
*
* @access public
* @return void
**/
*/
function testMultiplePrefixScaffold() {
$_backAdmin = Configure::read('Routing.prefixes');
@ -718,7 +718,7 @@ class ScaffoldTest extends CakeTestCase {
* test that the proper names and variable values are set by Scaffold
*
* @return void
**/
*/
function testScaffoldVariableSetting() {
$this->Controller->action = 'admin_edit';
$this->Controller->here = '/admin/scaffold_mock/edit';
@ -757,7 +757,7 @@ class ScaffoldTest extends CakeTestCase {
* test that scaffold outputs flash messages when sessions are unset.
*
* @return void
**/
*/
function testScaffoldFlashMessages() {
$this->Controller->action = 'edit';
$this->Controller->here = '/scaffold_mock';
@ -797,7 +797,7 @@ class ScaffoldTest extends CakeTestCase {
*
* @see http://code.cakephp.org/tickets/view/48
* @return void
**/
*/
function testHabtmFieldAdditionWithScaffoldForm() {
$this->Controller->action = 'edit';
$this->Controller->here = '/scaffold_mock';
@ -830,7 +830,7 @@ class ScaffoldTest extends CakeTestCase {
* test that the proper names and variable values are set by Scaffold
*
* @return void
**/
*/
function testEditScaffoldWithScaffoldFields() {
$this->Controller = new ScaffoldMockControllerWithFields();
$this->Controller->action = 'edit';

View file

@ -218,7 +218,7 @@ class MyCustomErrorHandler extends ErrorHandler {
* custom error message type.
*
* @return void
**/
*/
function missingWidgetThing() {
echo 'widget thing is missing';
}
@ -276,7 +276,7 @@ class ErrorHandlerTest extends CakeTestCase {
* into error404 when debug == 0
*
* @return void
**/
*/
function testSubclassMethodsNotBeingConvertedToError() {
$back = Configure::read('debug');
Configure::write('debug', 2);

View file

@ -222,7 +222,7 @@ class FolderTest extends CakeTestCase {
* test Adding path elements to a path
*
* @return void
**/
*/
function testAddPathElement() {
$result = Folder::addPathElement(DS . 'some' . DS . 'dir', 'another_path');
$this->assertEqual($result, DS . 'some' . DS . 'dir' . DS . 'another_path');

View file

@ -67,7 +67,7 @@ class FileLogTest extends CakeTestCase {
* test using the path setting to write logs in other places.
*
* @return void
**/
*/
function testPathSetting() {
$path = TMP . 'tests' . DS;
@unlink($path . 'error.log');

View file

@ -172,7 +172,7 @@ class MagicDbTestData extends Object {
*
* @param string $key
* @access public
**/
*/
function get($key) {
/**
* data property

View file

@ -472,7 +472,7 @@ class CakeSchemaTest extends CakeTestCase {
* test reading schema from plugins.
*
* @return void
**/
*/
function testSchemaReadWithPlugins() {
App::objects('model', null, false);
App::build(array(
@ -498,7 +498,7 @@ class CakeSchemaTest extends CakeTestCase {
* test that tables are generated correctly
*
* @return void
**/
*/
function testGenerateTable() {
$fields = array(
'id' => array('type' => 'integer', 'null' => false, 'default' => 0, 'key' => 'primary'),
@ -576,7 +576,7 @@ class CakeSchemaTest extends CakeTestCase {
* Test comparing tableParameters and indexes.
*
* @return void
**/
*/
function testTableParametersAndIndexComparison() {
$old = array(
'posts' => array(
@ -679,7 +679,7 @@ class CakeSchemaTest extends CakeTestCase {
* test loading schema files inside of plugins.
*
* @return void
**/
*/
function testSchemaLoadingFromPlugin() {
App::build(array(
'plugins' => array(TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'plugins' . DS)

View file

@ -196,7 +196,7 @@ class DboAdodbTest extends CakeTestCase {
*
* @var string
* @access public
**/
*/
var $fixtures = array('core.article');
/**

View file

@ -203,7 +203,7 @@ class DboMysqlTest extends CakeTestCase {
* startCase
*
* @return void
**/
*/
function startCase() {
$this->_debug = Configure::read('debug');
Configure::write('debug', 1);
@ -213,7 +213,7 @@ class DboMysqlTest extends CakeTestCase {
* endCase
*
* @return void
**/
*/
function endCase() {
Configure::write('debug', $this->_debug);
}
@ -418,7 +418,7 @@ class DboMysqlTest extends CakeTestCase {
* Using a mock ensure that MySQL 4.x output is properly parsed.
*
* @return void
**/
*/
function testIndexOnMySQL4Output() {
$name = $this->db->fullTableName('simple');
@ -631,7 +631,7 @@ class DboMysqlTest extends CakeTestCase {
* test saving and retrieval of blobs
*
* @return void
**/
*/
function testBlobSaving() {
$this->db->cacheSources = false;
$data = "GIF87ab
@ -650,7 +650,7 @@ class DboMysqlTest extends CakeTestCase {
* test altering the table settings with schema.
*
* @return void
**/
*/
function testAlteringTableParameters() {
App::import('Model', 'CakeSchema');
$this->db->cacheSources = $this->db->testing = false;

View file

@ -303,7 +303,7 @@ class DboMysqliTest extends CakeTestCase {
* test that float values are correctly identified
*
* @return void
**/
*/
function testFloatParsing() {
$model =& new Model(array('ds' => 'test_suite', 'table' => 'datatypes', 'name' => 'Datatype'));
$result = $this->db->describe($model);

View file

@ -312,7 +312,7 @@ class DboPostgresTest extends CakeTestCase {
* test that date and time columns do not generate errors with null and nullish values.
*
* @return void
**/
*/
function testDateAndTimeAsNull() {
$this->assertEqual($this->db2->value(null, 'date'), 'NULL');
$this->assertEqual($this->db2->value('', 'date'), 'NULL');
@ -523,7 +523,7 @@ class DboPostgresTest extends CakeTestCase {
* Test index generation from table info.
*
* @return void
**/
*/
function testIndexGeneration() {
$name = $this->db->fullTableName('index_test', false);
$this->db->query('CREATE TABLE ' . $name . ' ("id" serial NOT NULL PRIMARY KEY, "bool" integer, "small_char" varchar(50), "description" varchar(40) )');

View file

@ -220,7 +220,7 @@ class DboSqliteTest extends CakeTestCase {
* test building columns with SQLite
*
* @return void
**/
*/
function testBuildColumn() {
$data = array(
'name' => 'int_field',
@ -292,7 +292,7 @@ class DboSqliteTest extends CakeTestCase {
* test describe() and normal results.
*
* @return void
**/
*/
function testDescribe() {
$Model =& new Model(array('name' => 'User', 'ds' => 'test_suite', 'table' => 'users'));
$result = $this->db->describe($Model);
@ -336,7 +336,7 @@ class DboSqliteTest extends CakeTestCase {
* test that describe does not corrupt UUID primary keys
*
* @return void
**/
*/
function testDescribeWithUuidPrimaryKey() {
$tableName = 'uuid_tests';
$this->db->query("CREATE TABLE {$tableName} (id VARCHAR(36) PRIMARY KEY, name VARCHAR, created DATETIME, modified DATETIME)");

View file

@ -3643,7 +3643,7 @@ class DboSourceTest extends CakeTestCase {
* test hasAny()
*
* @return void
**/
*/
function testHasAny() {
$this->testDb->hasAny($this->Model, array());
$expected = 'SELECT COUNT(`TestModel`.`id`) AS count FROM `test_models` AS `TestModel` WHERE 1 = 1';
@ -4000,7 +4000,7 @@ class DboSourceTest extends CakeTestCase {
* test getting the query log as an array.
*
* @return void
**/
*/
function testGetLog() {
$this->testDb->logQuery('Query 1');
$this->testDb->logQuery('Query 2');
@ -4024,7 +4024,7 @@ class DboSourceTest extends CakeTestCase {
* test that execute runs queries.
*
* @return void
**/
*/
function testExecute() {
$query = 'SELECT * FROM ' . $this->testDb->fullTableName('articles') . ' WHERE 1 = 1';
@ -4046,7 +4046,7 @@ class DboSourceTest extends CakeTestCase {
* test that query() returns boolean values from operations like CREATE TABLE
*
* @return void
**/
*/
function testFetchAllBooleanReturns() {
$name = $this->db->fullTableName('test_query');
$query = "CREATE TABLE {$name} (name varchar(10));";
@ -4062,7 +4062,7 @@ class DboSourceTest extends CakeTestCase {
* test ShowQuery generation of regular and error messages
*
* @return void
**/
*/
function testShowQuery() {
$this->testDb->error = false;
ob_start();

Some files were not shown because too many files have changed in this diff Show more