Compare commits
3 Commits
v0.3_php5.
...
v0.3.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6556b7c9af | ||
|
|
4dffa540a0 | ||
|
|
3d1c4d2492 |
@@ -278,8 +278,14 @@ class AppController extends Controller {
|
|||||||
$this->addSideMenuLink('Unit Summary',
|
$this->addSideMenuLink('Unit Summary',
|
||||||
array('controller' => 'units', 'action' => 'overview'), null,
|
array('controller' => 'units', 'action' => 'overview'), null,
|
||||||
'REPORT');
|
'REPORT');
|
||||||
$this->addSideMenuLink('Monthly Charges',
|
$this->addSideMenuLink('Monthly Income',
|
||||||
array('controller' => 'statement_entries', 'action' => 'chargesbymonth'), null,
|
array('controller' => 'statement_entries', 'action' => 'incomebymonth'), null,
|
||||||
|
'REPORT');
|
||||||
|
$this->addSideMenuLink('Monthly Expenses',
|
||||||
|
array('controller' => 'statement_entries', 'action' => 'expensebymonth'), null,
|
||||||
|
'REPORT');
|
||||||
|
$this->addSideMenuLink('Monthly Net',
|
||||||
|
array('controller' => 'statement_entries', 'action' => 'netbymonth'), null,
|
||||||
'REPORT');
|
'REPORT');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -349,8 +355,8 @@ class AppController extends Controller {
|
|||||||
if ($this->dev() && !$this->Option->enabled('dev'))
|
if ($this->dev() && !$this->Option->enabled('dev'))
|
||||||
$this->redirect("/");
|
$this->redirect("/");
|
||||||
|
|
||||||
if ($this->dev())
|
if (!$this->dev())
|
||||||
Configure::write('debug', 2);
|
Configure::write('debug', '0');
|
||||||
|
|
||||||
$this->addDefaultSideMenuLinks();
|
$this->addDefaultSideMenuLinks();
|
||||||
//$this->sideMenuEnable('SITE', $this->op_area, false);
|
//$this->sideMenuEnable('SITE', $this->op_area, false);
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
* In production mode, flash messages redirect after a time interval.
|
* In production mode, flash messages redirect after a time interval.
|
||||||
* In development mode, you need to click the flash message to continue.
|
* In development mode, you need to click the flash message to continue.
|
||||||
*/
|
*/
|
||||||
Configure::write('debug', 0);
|
Configure::write('debug', 2);
|
||||||
/**
|
/**
|
||||||
* Application wide charset encoding
|
* Application wide charset encoding
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -260,38 +260,65 @@ class StatementEntriesController extends AppController {
|
|||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
**************************************************************************
|
**************************************************************************
|
||||||
**************************************************************************
|
**************************************************************************
|
||||||
* action: chargesbymonth
|
* action: incexpbymonth
|
||||||
* - Displays charges by month
|
* - Displays income and/or expenses by month
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function chargesbymonth($months = 12) {
|
function incexpbymonth($accts, $security_deposits, $months) {
|
||||||
|
$datefrom = 'DATE(NOW() - INTERVAL '.($months-1).' MONTH - INTERVAL DAY(NOW())-1 DAY)';
|
||||||
|
$dateto = 'NOW()';
|
||||||
|
/* $datefrom = '"2009-01-01"'; */
|
||||||
|
/* $dateto = '"2011-12-31"'; */
|
||||||
|
|
||||||
$result = $this->StatementEntry->find
|
$result = $this->StatementEntry->find
|
||||||
('all',
|
('all',
|
||||||
array('link' => array('Account' => array('fields' => 'name')),
|
array('link' => array('Account' => array('fields' => 'name')),
|
||||||
'fields' => array_merge(array('MONTHNAME(effective_date) AS month',
|
'fields' => array_merge(array('MONTHNAME(effective_date) AS month',
|
||||||
'YEAR(effective_date) AS year'),
|
'YEAR(effective_date) AS year'),
|
||||||
$this->StatementEntry->chargeDisbursementFields(true)),
|
$this->StatementEntry->chargeDisbursementFields(true)),
|
||||||
'conditions' => array('Account.type' => 'INCOME',
|
'conditions' => array('Account.type' => $accts,
|
||||||
'effective_date >= DATE(NOW() - INTERVAL '.($months-1).' MONTH - INTERVAL DAY(NOW())-1 DAY)',
|
"effective_date >= $datefrom",
|
||||||
'effective_date <= NOW()',
|
"effective_date <= $dateto",
|
||||||
),
|
),
|
||||||
'group' => array('YEAR(effective_date)', 'MONTH(effective_date)', 'Account.id'),
|
'group' => array('YEAR(effective_date)', 'MONTH(effective_date)', 'Account.id'),
|
||||||
'order' => array('YEAR(effective_date) DESC', 'MONTH(effective_date) DESC', 'Account.name'),
|
'order' => array('YEAR(effective_date) DESC', 'MONTH(effective_date) DESC', 'Account.type',
|
||||||
|
'IF(Account.id = '.$this->StatementEntry->Account->rentAccountID().', "---", Account.name)'),
|
||||||
));
|
));
|
||||||
|
|
||||||
$overview = array('months' => array(), 'charges' => 0);
|
if ($security_deposits) {
|
||||||
foreach ($result AS $row) {
|
$sdresult = $this->StatementEntry->Transaction->LedgerEntry->find
|
||||||
|
('all',
|
||||||
|
array('link' => array('Transaction' => array('StatementEntry' => array('fields' => 'effective_date'),
|
||||||
|
'fields' => array()),
|
||||||
|
'Account' => array('fields' => 'name')),
|
||||||
|
'fields' => array_merge(array('MONTHNAME(effective_date) AS month',
|
||||||
|
'YEAR(effective_date) AS year'),
|
||||||
|
$this->StatementEntry->Transaction->LedgerEntry->debitCreditFields(true)),
|
||||||
|
'conditions' => array('LedgerEntry.account_id' => $this->StatementEntry->Account->securityDepositAccountID(),
|
||||||
|
"effective_date >= $datefrom",
|
||||||
|
"effective_date <= $dateto",
|
||||||
|
'StatementEntry.id = (SELECT MIN(id) FROM pmgr_statement_entries WHERE transaction_id = `Transaction`.id)'
|
||||||
|
),
|
||||||
|
'group' => array('YEAR(effective_date)', 'MONTH(effective_date)', 'Account.id'),
|
||||||
|
'order' => array('YEAR(effective_date) DESC', 'MONTH(effective_date) DESC', 'Account.type', 'Account.name'),
|
||||||
|
));
|
||||||
|
} else {
|
||||||
|
$sdresult = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
$overview = array('months' => array(), 'amount' => 0);
|
||||||
|
foreach (array_merge($result, $sdresult) AS $row) {
|
||||||
$mname = $row[0]['month'] .', '. $row[0]['year'];
|
$mname = $row[0]['month'] .', '. $row[0]['year'];
|
||||||
if (empty($overview['months'][$mname]))
|
if (empty($overview['months'][$mname]))
|
||||||
$overview['months'][$mname] = array('name' => $mname,
|
$overview['months'][$mname] = array('name' => $mname,
|
||||||
'subs' => array(),
|
'subs' => array(),
|
||||||
'charges' => 0);
|
'amount' => 0);
|
||||||
$month = &$overview['months'][$mname];
|
$month = &$overview['months'][$mname];
|
||||||
$month['subs'][] = array('name' => $row['Account']['name'],
|
$month['subs'][] = array('name' => $row['Account']['name'],
|
||||||
'charges' => $row[0]['balance']);
|
'amount' => $row[0]['balance']);
|
||||||
|
|
||||||
$month['charges'] += $row[0]['balance'];
|
$month['amount'] += $row[0]['balance'];
|
||||||
$overview['charges'] += $row[0]['balance'];
|
$overview['amount'] += $row[0]['balance'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enable the Reports menu section
|
// Enable the Reports menu section
|
||||||
@@ -299,8 +326,26 @@ class StatementEntriesController extends AppController {
|
|||||||
|
|
||||||
// Prepare to render.
|
// Prepare to render.
|
||||||
$this->set('months', $months);
|
$this->set('months', $months);
|
||||||
$this->set('title', 'Monthly Charges');
|
|
||||||
$this->set(compact('overview'));
|
$this->set(compact('overview'));
|
||||||
|
$this->render('chargesbymonth');
|
||||||
|
}
|
||||||
|
|
||||||
|
function incomebymonth($months = 12) {
|
||||||
|
$this->set('title', 'Monthly Gross Income');
|
||||||
|
$this->set('reptype', 'Gross Income');
|
||||||
|
$this->incexpbymonth(array('INCOME'), true, $months);
|
||||||
|
}
|
||||||
|
|
||||||
|
function expensebymonth($months = 12) {
|
||||||
|
$this->set('title', 'Gross Monthly Expenses');
|
||||||
|
$this->set('reptype', 'Gross Expenses');
|
||||||
|
$this->incexpbymonth(array('EXPENSE'), false, $months);
|
||||||
|
}
|
||||||
|
|
||||||
|
function netbymonth($months = 12) {
|
||||||
|
$this->set('title', 'Net Monthly Income');
|
||||||
|
$this->set('reptype', 'Net Income');
|
||||||
|
$this->incexpbymonth(array('INCOME', 'EXPENSE'), true, $months);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,471 +1,471 @@
|
|||||||
<?php
|
<?php
|
||||||
/* SVN FILE: $Id$ */
|
/* SVN FILE: $Id$ */
|
||||||
/**
|
/**
|
||||||
* DebugKit DebugToolbar Component
|
* DebugKit DebugToolbar Component
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* PHP versions 4 and 5
|
* PHP versions 4 and 5
|
||||||
*
|
*
|
||||||
* CakePHP : Rapid Development Framework <http://www.cakephp.org/>
|
* CakePHP : Rapid Development Framework <http://www.cakephp.org/>
|
||||||
* Copyright 2006-2008, Cake Software Foundation, Inc.
|
* Copyright 2006-2008, Cake Software Foundation, Inc.
|
||||||
* 1785 E. Sahara Avenue, Suite 490-204
|
* 1785 E. Sahara Avenue, Suite 490-204
|
||||||
* Las Vegas, Nevada 89104
|
* Las Vegas, Nevada 89104
|
||||||
*
|
*
|
||||||
* Licensed under The MIT License
|
* Licensed under The MIT License
|
||||||
* Redistributions of files must retain the above copyright notice.
|
* Redistributions of files must retain the above copyright notice.
|
||||||
*
|
*
|
||||||
* @filesource
|
* @filesource
|
||||||
* @copyright Copyright 2006-2008, Cake Software Foundation, Inc.
|
* @copyright Copyright 2006-2008, Cake Software Foundation, Inc.
|
||||||
* @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project
|
* @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project
|
||||||
* @package cake
|
* @package cake
|
||||||
* @subpackage cake.cake.libs.
|
* @subpackage cake.cake.libs.
|
||||||
* @since CakePHP v 1.2.0.4487
|
* @since CakePHP v 1.2.0.4487
|
||||||
* @version $Revision$
|
* @version $Revision$
|
||||||
* @modifiedby $LastChangedBy$
|
* @modifiedby $LastChangedBy$
|
||||||
* @lastmodified $Date$
|
* @lastmodified $Date$
|
||||||
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
|
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
|
||||||
*/
|
*/
|
||||||
class ToolbarComponent extends Object {
|
class ToolbarComponent extends Object {
|
||||||
/**
|
/**
|
||||||
* Controller instance reference
|
* Controller instance reference
|
||||||
*
|
*
|
||||||
* @var object
|
* @var object
|
||||||
*/
|
*/
|
||||||
var $controller;
|
var $controller;
|
||||||
/**
|
/**
|
||||||
* Components used by DebugToolbar
|
* Components used by DebugToolbar
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
var $components = array('RequestHandler');
|
var $components = array('RequestHandler');
|
||||||
/**
|
/**
|
||||||
* The default panels the toolbar uses.
|
* The default panels the toolbar uses.
|
||||||
* which panels are used can be configured when attaching the component
|
* which panels are used can be configured when attaching the component
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
var $_defaultPanels = array('session', 'request', 'sqlLog', 'timer', 'log', 'memory', 'variables');
|
var $_defaultPanels = array('session', 'request', 'sqlLog', 'timer', 'log', 'memory', 'variables');
|
||||||
/**
|
/**
|
||||||
* Loaded panel objects.
|
* Loaded panel objects.
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
var $panels = array();
|
var $panels = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* fallback for javascript settings
|
* fallback for javascript settings
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
**/
|
**/
|
||||||
var $_defaultJavascript = array(
|
var $_defaultJavascript = array(
|
||||||
'behavior' => '/debug_kit/js/js_debug_toolbar'
|
'behavior' => '/debug_kit/js/js_debug_toolbar'
|
||||||
);
|
);
|
||||||
/**
|
/**
|
||||||
* javascript files component will be using.
|
* javascript files component will be using.
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
**/
|
**/
|
||||||
var $javascript = array();
|
var $javascript = array();
|
||||||
/**
|
/**
|
||||||
* initialize
|
* initialize
|
||||||
*
|
*
|
||||||
* If debug is off the component will be disabled and not do any further time tracking
|
* If debug is off the component will be disabled and not do any further time tracking
|
||||||
* or load the toolbar helper.
|
* or load the toolbar helper.
|
||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
**/
|
**/
|
||||||
function initialize(&$controller, $settings) {
|
function initialize(&$controller, $settings) {
|
||||||
if (Configure::read('debug') == 0) {
|
if (Configure::read('debug') == 0) {
|
||||||
$this->enabled = false;
|
$this->enabled = false;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
App::import('Vendor', 'DebugKit.DebugKitDebugger');
|
App::import('Vendor', 'DebugKit.DebugKitDebugger');
|
||||||
|
|
||||||
DebugKitDebugger::startTimer('componentInit', __('Component initialization and startup', true));
|
DebugKitDebugger::startTimer('componentInit', __('Component initialization and startup', true));
|
||||||
if (!isset($settings['panels'])) {
|
if (!isset($settings['panels'])) {
|
||||||
$settings['panels'] = $this->_defaultPanels;
|
$settings['panels'] = $this->_defaultPanels;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($settings['javascript'])) {
|
if (isset($settings['javascript'])) {
|
||||||
$settings['javascript'] = $this->_setJavascript($settings['javascript']);
|
$settings['javascript'] = $this->_setJavascript($settings['javascript']);
|
||||||
} else {
|
} else {
|
||||||
$settings['javascript'] = $this->_defaultJavascript;
|
$settings['javascript'] = $this->_defaultJavascript;
|
||||||
}
|
}
|
||||||
$this->_loadPanels($settings['panels']);
|
$this->_loadPanels($settings['panels']);
|
||||||
unset($settings['panels']);
|
unset($settings['panels']);
|
||||||
|
|
||||||
$this->_set($settings);
|
$this->_set($settings);
|
||||||
$this->controller =& $controller;
|
$this->controller =& $controller;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Component Startup
|
* Component Startup
|
||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
**/
|
**/
|
||||||
function startup(&$controller) {
|
function startup(&$controller) {
|
||||||
$currentViewClass = $controller->view;
|
$currentViewClass = $controller->view;
|
||||||
$this->_makeViewClass($currentViewClass);
|
$this->_makeViewClass($currentViewClass);
|
||||||
$controller->view = 'DebugKit.Debug';
|
$controller->view = 'DebugKit.Debug';
|
||||||
if (!isset($controller->params['url']['ext']) || (isset($controller->params['url']['ext']) && $controller->params['url']['ext'] == 'html')) {
|
if (!isset($controller->params['url']['ext']) || (isset($controller->params['url']['ext']) && $controller->params['url']['ext'] == 'html')) {
|
||||||
$format = 'Html';
|
$format = 'Html';
|
||||||
} else {
|
} else {
|
||||||
$format = 'FirePhp';
|
$format = 'FirePhp';
|
||||||
}
|
}
|
||||||
$controller->helpers['DebugKit.Toolbar'] = array('output' => sprintf('DebugKit.%sToolbar', $format));
|
$controller->helpers['DebugKit.Toolbar'] = array('output' => sprintf('DebugKit.%sToolbar', $format));
|
||||||
$panels = array_keys($this->panels);
|
$panels = array_keys($this->panels);
|
||||||
foreach ($panels as $panelName) {
|
foreach ($panels as $panelName) {
|
||||||
$this->panels[$panelName]->startup($controller);
|
$this->panels[$panelName]->startup($controller);
|
||||||
}
|
}
|
||||||
DebugKitDebugger::stopTimer('componentInit');
|
DebugKitDebugger::stopTimer('componentInit');
|
||||||
DebugKitDebugger::startTimer('controllerAction', __('Controller Action', true));
|
DebugKitDebugger::startTimer('controllerAction', __('Controller Action', true));
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* beforeRender callback
|
* beforeRender callback
|
||||||
*
|
*
|
||||||
* Calls beforeRender on all the panels and set the aggregate to the controller.
|
* Calls beforeRender on all the panels and set the aggregate to the controller.
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function beforeRender(&$controller) {
|
function beforeRender(&$controller) {
|
||||||
DebugKitDebugger::stopTimer('controllerAction');
|
DebugKitDebugger::stopTimer('controllerAction');
|
||||||
$vars = array();
|
$vars = array();
|
||||||
$panels = array_keys($this->panels);
|
$panels = array_keys($this->panels);
|
||||||
|
|
||||||
foreach ($panels as $panelName) {
|
foreach ($panels as $panelName) {
|
||||||
$panel =& $this->panels[$panelName];
|
$panel =& $this->panels[$panelName];
|
||||||
$vars[$panelName]['content'] = $panel->beforeRender($controller);
|
$vars[$panelName]['content'] = $panel->beforeRender($controller);
|
||||||
$elementName = Inflector::underscore($panelName) . '_panel';
|
$elementName = Inflector::underscore($panelName) . '_panel';
|
||||||
if (isset($panel->elementName)) {
|
if (isset($panel->elementName)) {
|
||||||
$elementName = $panel->elementName;
|
$elementName = $panel->elementName;
|
||||||
}
|
}
|
||||||
$vars[$panelName]['elementName'] = $elementName;
|
$vars[$panelName]['elementName'] = $elementName;
|
||||||
$vars[$panelName]['plugin'] = $panel->plugin;
|
$vars[$panelName]['plugin'] = $panel->plugin;
|
||||||
$vars[$panelName]['disableTimer'] = true;
|
$vars[$panelName]['disableTimer'] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$controller->set(array('debugToolbarPanels' => $vars, 'debugToolbarJavascript' => $this->javascript));
|
$controller->set(array('debugToolbarPanels' => $vars, 'debugToolbarJavascript' => $this->javascript));
|
||||||
DebugKitDebugger::startTimer('controllerRender', __('Render Controller Action', true));
|
DebugKitDebugger::startTimer('controllerRender', __('Render Controller Action', true));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load Panels used in the debug toolbar
|
* Load Panels used in the debug toolbar
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
* @access protected
|
* @access protected
|
||||||
**/
|
**/
|
||||||
function _loadPanels($panels) {
|
function _loadPanels($panels) {
|
||||||
foreach ($panels as $panel) {
|
foreach ($panels as $panel) {
|
||||||
$className = $panel . 'Panel';
|
$className = $panel . 'Panel';
|
||||||
if (!class_exists($className) && !App::import('Vendor', $className)) {
|
if (!class_exists($className) && !App::import('Vendor', $className)) {
|
||||||
trigger_error(sprintf(__('Could not load DebugToolbar panel %s', true), $panel), E_USER_WARNING);
|
trigger_error(sprintf(__('Could not load DebugToolbar panel %s', true), $panel), E_USER_WARNING);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$panelObj = new $className();
|
$panelObj =& new $className();
|
||||||
if (is_subclass_of($panelObj, 'DebugPanel') || is_subclass_of($panelObj, 'debugpanel')) {
|
if (is_subclass_of($panelObj, 'DebugPanel') || is_subclass_of($panelObj, 'debugpanel')) {
|
||||||
$this->panels[$panel] =& $panelObj;
|
$this->panels[$panel] =& $panelObj;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the javascript to user scripts.
|
* Set the javascript to user scripts.
|
||||||
*
|
*
|
||||||
* Set either script key to false to exclude it from the rendered layout.
|
* Set either script key to false to exclude it from the rendered layout.
|
||||||
*
|
*
|
||||||
* @param array $scripts Javascript config information
|
* @param array $scripts Javascript config information
|
||||||
* @return array
|
* @return array
|
||||||
* @access protected
|
* @access protected
|
||||||
**/
|
**/
|
||||||
function _setJavascript($scripts) {
|
function _setJavascript($scripts) {
|
||||||
$behavior = false;
|
$behavior = false;
|
||||||
if (!is_array($scripts)) {
|
if (!is_array($scripts)) {
|
||||||
$scripts = (array)$scripts;
|
$scripts = (array)$scripts;
|
||||||
}
|
}
|
||||||
if (isset($scripts[0])) {
|
if (isset($scripts[0])) {
|
||||||
$behavior = $scripts[0];
|
$behavior = $scripts[0];
|
||||||
}
|
}
|
||||||
if (isset($scripts['behavior'])) {
|
if (isset($scripts['behavior'])) {
|
||||||
$behavior = $scripts['behavior'];
|
$behavior = $scripts['behavior'];
|
||||||
}
|
}
|
||||||
if (!$behavior) {
|
if (!$behavior) {
|
||||||
return array();
|
return array();
|
||||||
} elseif ($behavior === true) {
|
} elseif ($behavior === true) {
|
||||||
$behavior = 'js';
|
$behavior = 'js';
|
||||||
}
|
}
|
||||||
if (strpos($behavior, '/') !== 0) {
|
if (strpos($behavior, '/') !== 0) {
|
||||||
$behavior .= '_debug_toolbar';
|
$behavior .= '_debug_toolbar';
|
||||||
}
|
}
|
||||||
$pluginFile = APP . 'plugins' . DS . 'debug_kit' . DS . 'vendors' . DS . 'js' . DS . $behavior . '.js';
|
$pluginFile = APP . 'plugins' . DS . 'debug_kit' . DS . 'vendors' . DS . 'js' . DS . $behavior . '.js';
|
||||||
if (file_exists($pluginFile)) {
|
if (file_exists($pluginFile)) {
|
||||||
$behavior = '/debug_kit/js/' . $behavior . '.js';
|
$behavior = '/debug_kit/js/' . $behavior . '.js';
|
||||||
}
|
}
|
||||||
return compact('behavior');
|
return compact('behavior');
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Makes the DoppleGangerView class if it doesn't already exist.
|
* Makes the DoppleGangerView class if it doesn't already exist.
|
||||||
* This allows DebugView to be compatible with all view classes.
|
* This allows DebugView to be compatible with all view classes.
|
||||||
*
|
*
|
||||||
* @param string $baseClassName
|
* @param string $baseClassName
|
||||||
* @access protected
|
* @access protected
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function _makeViewClass($baseClassName) {
|
function _makeViewClass($baseClassName) {
|
||||||
if (!class_exists('DoppelGangerView')) {
|
if (!class_exists('DoppelGangerView')) {
|
||||||
App::import('View', $baseClassName);
|
App::import('View', $baseClassName);
|
||||||
if (strpos('View', $baseClassName) === false) {
|
if (strpos('View', $baseClassName) === false) {
|
||||||
$baseClassName .= 'View';
|
$baseClassName .= 'View';
|
||||||
}
|
}
|
||||||
$class = "class DoppelGangerView extends $baseClassName {}";
|
$class = "class DoppelGangerView extends $baseClassName {}";
|
||||||
eval($class);
|
eval($class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Debug Panel
|
* Debug Panel
|
||||||
*
|
*
|
||||||
* Abstract class for debug panels.
|
* Abstract class for debug panels.
|
||||||
*
|
*
|
||||||
* @package cake.debug_kit
|
* @package cake.debug_kit
|
||||||
*/
|
*/
|
||||||
class DebugPanel extends Object {
|
class DebugPanel extends Object {
|
||||||
/**
|
/**
|
||||||
* Defines which plugin this panel is from so the element can be located.
|
* Defines which plugin this panel is from so the element can be located.
|
||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
var $plugin = null;
|
var $plugin = null;
|
||||||
/**
|
/**
|
||||||
* startup the panel
|
* startup the panel
|
||||||
*
|
*
|
||||||
* Pull information from the controller / request
|
* Pull information from the controller / request
|
||||||
*
|
*
|
||||||
* @param object $controller Controller reference.
|
* @param object $controller Controller reference.
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function startup(&$controller) { }
|
function startup(&$controller) { }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prepare output vars before Controller Rendering.
|
* Prepare output vars before Controller Rendering.
|
||||||
*
|
*
|
||||||
* @param object $controller Controller reference.
|
* @param object $controller Controller reference.
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function beforeRender(&$controller) { }
|
function beforeRender(&$controller) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Variables Panel
|
* Variables Panel
|
||||||
*
|
*
|
||||||
* Provides debug information on the View variables.
|
* Provides debug information on the View variables.
|
||||||
*
|
*
|
||||||
* @package cake.debug_kit.panels
|
* @package cake.debug_kit.panels
|
||||||
**/
|
**/
|
||||||
class VariablesPanel extends DebugPanel {
|
class VariablesPanel extends DebugPanel {
|
||||||
var $plugin = 'debug_kit';
|
var $plugin = 'debug_kit';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Session Panel
|
* Session Panel
|
||||||
*
|
*
|
||||||
* Provides debug information on the Session contents.
|
* Provides debug information on the Session contents.
|
||||||
*
|
*
|
||||||
* @package cake.debug_kit.panels
|
* @package cake.debug_kit.panels
|
||||||
**/
|
**/
|
||||||
class SessionPanel extends DebugPanel {
|
class SessionPanel extends DebugPanel {
|
||||||
var $plugin = 'debug_kit';
|
var $plugin = 'debug_kit';
|
||||||
/**
|
/**
|
||||||
* beforeRender callback
|
* beforeRender callback
|
||||||
*
|
*
|
||||||
* @param object $controller
|
* @param object $controller
|
||||||
* @access public
|
* @access public
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
function beforeRender(&$controller) {
|
function beforeRender(&$controller) {
|
||||||
return $controller->Session->read();
|
return $controller->Session->read();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Request Panel
|
* Request Panel
|
||||||
*
|
*
|
||||||
* Provides debug information on the Current request params.
|
* Provides debug information on the Current request params.
|
||||||
*
|
*
|
||||||
* @package cake.debug_kit.panels
|
* @package cake.debug_kit.panels
|
||||||
**/
|
**/
|
||||||
class RequestPanel extends DebugPanel {
|
class RequestPanel extends DebugPanel {
|
||||||
var $plugin = 'debug_kit';
|
var $plugin = 'debug_kit';
|
||||||
/**
|
/**
|
||||||
* beforeRender callback - grabs request params
|
* beforeRender callback - grabs request params
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
**/
|
**/
|
||||||
function beforeRender(&$controller) {
|
function beforeRender(&$controller) {
|
||||||
$out = array();
|
$out = array();
|
||||||
$out['params'] = $controller->params;
|
$out['params'] = $controller->params;
|
||||||
if (isset($controller->Cookie)) {
|
if (isset($controller->Cookie)) {
|
||||||
$out['cookie'] = $controller->Cookie->read();
|
$out['cookie'] = $controller->Cookie->read();
|
||||||
}
|
}
|
||||||
$out['get'] = $_GET;
|
$out['get'] = $_GET;
|
||||||
$out['currentRoute'] = Router::currentRoute();
|
$out['currentRoute'] = Router::currentRoute();
|
||||||
return $out;
|
return $out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Timer Panel
|
* Timer Panel
|
||||||
*
|
*
|
||||||
* Provides debug information on all timers used in a request.
|
* Provides debug information on all timers used in a request.
|
||||||
*
|
*
|
||||||
* @package cake.debug_kit.panels
|
* @package cake.debug_kit.panels
|
||||||
**/
|
**/
|
||||||
class TimerPanel extends DebugPanel {
|
class TimerPanel extends DebugPanel {
|
||||||
var $plugin = 'debug_kit';
|
var $plugin = 'debug_kit';
|
||||||
/**
|
/**
|
||||||
* startup - add in necessary helpers
|
* startup - add in necessary helpers
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function startup(&$controller) {
|
function startup(&$controller) {
|
||||||
if (!in_array('Number', $controller->helpers)) {
|
if (!in_array('Number', $controller->helpers)) {
|
||||||
$controller->helpers[] = 'Number';
|
$controller->helpers[] = 'Number';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Memory Panel
|
* Memory Panel
|
||||||
*
|
*
|
||||||
* Provides debug information on the memory consumption.
|
* Provides debug information on the memory consumption.
|
||||||
*
|
*
|
||||||
* @package cake.debug_kit.panels
|
* @package cake.debug_kit.panels
|
||||||
**/
|
**/
|
||||||
class MemoryPanel extends DebugPanel {
|
class MemoryPanel extends DebugPanel {
|
||||||
var $plugin = 'debug_kit';
|
var $plugin = 'debug_kit';
|
||||||
/**
|
/**
|
||||||
* startup - add in necessary helpers
|
* startup - add in necessary helpers
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function startup(&$controller) {
|
function startup(&$controller) {
|
||||||
if (!in_array('Number', $controller->helpers)) {
|
if (!in_array('Number', $controller->helpers)) {
|
||||||
$controller->helpers[] = 'Number';
|
$controller->helpers[] = 'Number';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* sqlLog Panel
|
* sqlLog Panel
|
||||||
*
|
*
|
||||||
* Provides debug information on the SQL logs and provides links to an ajax explain interface.
|
* Provides debug information on the SQL logs and provides links to an ajax explain interface.
|
||||||
*
|
*
|
||||||
* @package cake.debug_kit.panels
|
* @package cake.debug_kit.panels
|
||||||
**/
|
**/
|
||||||
class sqlLogPanel extends DebugPanel {
|
class sqlLogPanel extends DebugPanel {
|
||||||
var $plugin = 'debug_kit';
|
var $plugin = 'debug_kit';
|
||||||
|
|
||||||
var $dbConfigs = array();
|
var $dbConfigs = array();
|
||||||
/**
|
/**
|
||||||
* get db configs.
|
* get db configs.
|
||||||
*
|
*
|
||||||
* @param string $controller
|
* @param string $controller
|
||||||
* @access public
|
* @access public
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function startUp(&$controller) {
|
function startUp(&$controller) {
|
||||||
if (!class_exists('ConnectionManager')) {
|
if (!class_exists('ConnectionManager')) {
|
||||||
$this->dbConfigs = array();
|
$this->dbConfigs = array();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$this->dbConfigs = ConnectionManager::sourceList();
|
$this->dbConfigs = ConnectionManager::sourceList();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Get Sql Logs for each DB config
|
* Get Sql Logs for each DB config
|
||||||
*
|
*
|
||||||
* @param string $controller
|
* @param string $controller
|
||||||
* @access public
|
* @access public
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function beforeRender(&$controller) {
|
function beforeRender(&$controller) {
|
||||||
$queryLogs = array();
|
$queryLogs = array();
|
||||||
if (!class_exists('ConnectionManager')) {
|
if (!class_exists('ConnectionManager')) {
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
foreach ($this->dbConfigs as $configName) {
|
foreach ($this->dbConfigs as $configName) {
|
||||||
$db =& ConnectionManager::getDataSource($configName);
|
$db =& ConnectionManager::getDataSource($configName);
|
||||||
if ($db->isInterfaceSupported('showLog')) {
|
if ($db->isInterfaceSupported('showLog')) {
|
||||||
ob_start();
|
ob_start();
|
||||||
$db->showLog();
|
$db->showLog();
|
||||||
$queryLogs[$configName] = ob_get_clean();
|
$queryLogs[$configName] = ob_get_clean();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $queryLogs;
|
return $queryLogs;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Log Panel - Reads log entries made this request.
|
* Log Panel - Reads log entries made this request.
|
||||||
*
|
*
|
||||||
* @package cake.debug_kit.panels
|
* @package cake.debug_kit.panels
|
||||||
*/
|
*/
|
||||||
class LogPanel extends DebugPanel {
|
class LogPanel extends DebugPanel {
|
||||||
var $plugin = 'debug_kit';
|
var $plugin = 'debug_kit';
|
||||||
/**
|
/**
|
||||||
* Log files to scan
|
* Log files to scan
|
||||||
*
|
*
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
var $logFiles = array('error.log', 'debug.log');
|
var $logFiles = array('error.log', 'debug.log');
|
||||||
/**
|
/**
|
||||||
* startup
|
* startup
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function startup(&$controller) {
|
function startup(&$controller) {
|
||||||
if (!class_exists('CakeLog')) {
|
if (!class_exists('CakeLog')) {
|
||||||
App::import('Core', 'Log');
|
App::import('Core', 'Log');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* beforeRender Callback
|
* beforeRender Callback
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
**/
|
**/
|
||||||
function beforeRender(&$controller) {
|
function beforeRender(&$controller) {
|
||||||
$this->startTime = DebugKitDebugger::requestStartTime();
|
$this->startTime = DebugKitDebugger::requestStartTime();
|
||||||
$this->currentTime = DebugKitDebugger::requestTime();
|
$this->currentTime = DebugKitDebugger::requestTime();
|
||||||
$out = array();
|
$out = array();
|
||||||
foreach ($this->logFiles as $log) {
|
foreach ($this->logFiles as $log) {
|
||||||
$file = LOGS . $log;
|
$file = LOGS . $log;
|
||||||
if (!file_exists($file)) {
|
if (!file_exists($file)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$out[$log] = $this->_parseFile($file);
|
$out[$log] = $this->_parseFile($file);
|
||||||
}
|
}
|
||||||
return $out;
|
return $out;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* parse a log file and find the relevant entries
|
* parse a log file and find the relevant entries
|
||||||
*
|
*
|
||||||
* @param string $filename Name of file to read
|
* @param string $filename Name of file to read
|
||||||
* @access protected
|
* @access protected
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
function _parseFile($filename) {
|
function _parseFile($filename) {
|
||||||
$file = new File($filename);
|
$file =& new File($filename);
|
||||||
$contents = $file->read();
|
$contents = $file->read();
|
||||||
$timePattern = '/(\d{4}-\d{2}\-\d{2}\s\d{1,2}\:\d{1,2}\:\d{1,2})/';
|
$timePattern = '/(\d{4}-\d{2}\-\d{2}\s\d{1,2}\:\d{1,2}\:\d{1,2})/';
|
||||||
$chunks = preg_split($timePattern, $contents, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
|
$chunks = preg_split($timePattern, $contents, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
|
||||||
for ($i = 0, $len = count($chunks); $i < $len; $i += 2) {
|
for ($i = 0, $len = count($chunks); $i < $len; $i += 2) {
|
||||||
if (strtotime($chunks[$i]) < $this->startTime) {
|
if (strtotime($chunks[$i]) < $this->startTime) {
|
||||||
unset($chunks[$i], $chunks[$i + 1]);
|
unset($chunks[$i], $chunks[$i + 1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return array_values($chunks);
|
return array_values($chunks);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
@@ -1,144 +1,144 @@
|
|||||||
<?php
|
<?php
|
||||||
/* SVN FILE: $Id$ */
|
/* SVN FILE: $Id$ */
|
||||||
/**
|
/**
|
||||||
* DebugView test Case
|
* DebugView test Case
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* PHP versions 4 and 5
|
* PHP versions 4 and 5
|
||||||
*
|
*
|
||||||
* CakePHP : Rapid Development Framework <http://www.cakephp.org/>
|
* CakePHP : Rapid Development Framework <http://www.cakephp.org/>
|
||||||
* Copyright 2006-2008, Cake Software Foundation, Inc.
|
* Copyright 2006-2008, Cake Software Foundation, Inc.
|
||||||
* 1785 E. Sahara Avenue, Suite 490-204
|
* 1785 E. Sahara Avenue, Suite 490-204
|
||||||
* Las Vegas, Nevada 89104
|
* Las Vegas, Nevada 89104
|
||||||
*
|
*
|
||||||
* Licensed under The MIT License
|
* Licensed under The MIT License
|
||||||
* Redistributions of files must retain the above copyright notice.
|
* Redistributions of files must retain the above copyright notice.
|
||||||
*
|
*
|
||||||
* @filesource
|
* @filesource
|
||||||
* @copyright Copyright 2006-2008, Cake Software Foundation, Inc.
|
* @copyright Copyright 2006-2008, Cake Software Foundation, Inc.
|
||||||
* @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project
|
* @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project
|
||||||
* @package cake
|
* @package cake
|
||||||
* @subpackage cake.cake.libs.
|
* @subpackage cake.cake.libs.
|
||||||
* @since CakePHP v 1.2.0.4487
|
* @since CakePHP v 1.2.0.4487
|
||||||
* @version $Revision$
|
* @version $Revision$
|
||||||
* @modifiedby $LastChangedBy$
|
* @modifiedby $LastChangedBy$
|
||||||
* @lastmodified $Date$
|
* @lastmodified $Date$
|
||||||
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
|
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
|
||||||
*/
|
*/
|
||||||
App::import('Core', 'View');
|
App::import('Core', 'View');
|
||||||
|
|
||||||
if (!class_exists('DoppelGangerView')) {
|
if (!class_exists('DoppelGangerView')) {
|
||||||
class DoppelGangerView extends View {}
|
class DoppelGangerView extends View {}
|
||||||
}
|
}
|
||||||
|
|
||||||
App::import('View', 'DebugKit.Debug');
|
App::import('View', 'DebugKit.Debug');
|
||||||
App::import('Vendor', 'DebugKit.DebugKitDebugger');
|
App::import('Vendor', 'DebugKit.DebugKitDebugger');
|
||||||
/**
|
/**
|
||||||
* Debug View Test Case
|
* Debug View Test Case
|
||||||
*
|
*
|
||||||
* @package debug_kit.tests
|
* @package debug_kit.tests
|
||||||
*/
|
*/
|
||||||
class DebugViewTestCase extends CakeTestCase {
|
class DebugViewTestCase extends CakeTestCase {
|
||||||
/**
|
/**
|
||||||
* set Up test case
|
* set Up test case
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function setUp() {
|
function setUp() {
|
||||||
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
|
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
|
||||||
Router::parse('/');
|
Router::parse('/');
|
||||||
$this->Controller =& ClassRegistry::init('Controller');
|
$this->Controller =& ClassRegistry::init('Controller');
|
||||||
$this->View = new DebugView($this->Controller, false);
|
$this->View =& new DebugView($this->Controller, false);
|
||||||
$this->_debug = Configure::read('debug');
|
$this->_debug = Configure::read('debug');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* start Case - switch view paths
|
* start Case - switch view paths
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function startCase() {
|
function startCase() {
|
||||||
$this->_viewPaths = Configure::read('viewPaths');
|
$this->_viewPaths = Configure::read('viewPaths');
|
||||||
Configure::write('viewPaths', array(
|
Configure::write('viewPaths', array(
|
||||||
TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'views'. DS,
|
TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'views'. DS,
|
||||||
APP . 'plugins' . DS . 'debug_kit' . DS . 'views'. DS,
|
APP . 'plugins' . DS . 'debug_kit' . DS . 'views'. DS,
|
||||||
ROOT . DS . LIBS . 'view' . DS
|
ROOT . DS . LIBS . 'view' . DS
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* test that element timers are working
|
* test that element timers are working
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function testElementTimers() {
|
function testElementTimers() {
|
||||||
$result = $this->View->element('test_element');
|
$result = $this->View->element('test_element');
|
||||||
$this->assertPattern('/^this is the test element$/', $result);
|
$this->assertPattern('/^this is the test element$/', $result);
|
||||||
|
|
||||||
$result = DebugKitDebugger::getTimers();
|
$result = DebugKitDebugger::getTimers();
|
||||||
$this->assertTrue(isset($result['render_test_element.ctp']));
|
$this->assertTrue(isset($result['render_test_element.ctp']));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* test rendering and ensure that timers are being set.
|
* test rendering and ensure that timers are being set.
|
||||||
*
|
*
|
||||||
* @access public
|
* @access public
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function testRenderTimers() {
|
function testRenderTimers() {
|
||||||
$this->Controller->viewPath = 'posts';
|
$this->Controller->viewPath = 'posts';
|
||||||
$this->Controller->action = 'index';
|
$this->Controller->action = 'index';
|
||||||
$this->Controller->params = array(
|
$this->Controller->params = array(
|
||||||
'action' => 'index',
|
'action' => 'index',
|
||||||
'controller' => 'posts',
|
'controller' => 'posts',
|
||||||
'plugin' => null,
|
'plugin' => null,
|
||||||
'url' => array('url' => 'posts/index'),
|
'url' => array('url' => 'posts/index'),
|
||||||
'base' => null,
|
'base' => null,
|
||||||
'here' => '/posts/index',
|
'here' => '/posts/index',
|
||||||
);
|
);
|
||||||
$this->Controller->layout = 'default';
|
$this->Controller->layout = 'default';
|
||||||
$View = new DebugView($this->Controller, false);
|
$View =& new DebugView($this->Controller, false);
|
||||||
$View->render('index');
|
$View->render('index');
|
||||||
|
|
||||||
$result = DebugKitDebugger::getTimers();
|
$result = DebugKitDebugger::getTimers();
|
||||||
$this->assertEqual(count($result), 3);
|
$this->assertEqual(count($result), 3);
|
||||||
$this->assertTrue(isset($result['viewRender']));
|
$this->assertTrue(isset($result['viewRender']));
|
||||||
$this->assertTrue(isset($result['render_default.ctp']));
|
$this->assertTrue(isset($result['render_default.ctp']));
|
||||||
$this->assertTrue(isset($result['render_index.ctp']));
|
$this->assertTrue(isset($result['render_index.ctp']));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test for correct loading of helpers into custom view
|
* Test for correct loading of helpers into custom view
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function testLoadHelpers() {
|
function testLoadHelpers() {
|
||||||
$loaded = array();
|
$loaded = array();
|
||||||
$result = $this->View->_loadHelpers($loaded, array('Html', 'Javascript', 'Number'));
|
$result = $this->View->_loadHelpers($loaded, array('Html', 'Javascript', 'Number'));
|
||||||
$this->assertTrue(is_object($result['Html']));
|
$this->assertTrue(is_object($result['Html']));
|
||||||
$this->assertTrue(is_object($result['Javascript']));
|
$this->assertTrue(is_object($result['Javascript']));
|
||||||
$this->assertTrue(is_object($result['Number']));
|
$this->assertTrue(is_object($result['Number']));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* reset the view paths
|
* reset the view paths
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function endCase() {
|
function endCase() {
|
||||||
Configure::write('viewPaths', $this->_viewPaths);
|
Configure::write('viewPaths', $this->_viewPaths);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* tear down function
|
* tear down function
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function tearDown() {
|
function tearDown() {
|
||||||
unset($this->View, $this->Controller);
|
unset($this->View, $this->Controller);
|
||||||
DebugKitDebugger::clearTimers();
|
DebugKitDebugger::clearTimers();
|
||||||
Configure::write('debug', $this->_debug);
|
Configure::write('debug', $this->_debug);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
@@ -1,137 +1,137 @@
|
|||||||
<?php
|
<?php
|
||||||
/* SVN FILE: $Id$ */
|
/* SVN FILE: $Id$ */
|
||||||
/**
|
/**
|
||||||
* Toolbar Abstract Helper Test Case
|
* Toolbar Abstract Helper Test Case
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* PHP versions 4 and 5
|
* PHP versions 4 and 5
|
||||||
*
|
*
|
||||||
* CakePHP : Rapid Development Framework <http://www.cakephp.org/>
|
* CakePHP : Rapid Development Framework <http://www.cakephp.org/>
|
||||||
* Copyright 2006-2008, Cake Software Foundation, Inc.
|
* Copyright 2006-2008, Cake Software Foundation, Inc.
|
||||||
* 1785 E. Sahara Avenue, Suite 490-204
|
* 1785 E. Sahara Avenue, Suite 490-204
|
||||||
* Las Vegas, Nevada 89104
|
* Las Vegas, Nevada 89104
|
||||||
*
|
*
|
||||||
* Licensed under The MIT License
|
* Licensed under The MIT License
|
||||||
* Redistributions of files must retain the above copyright notice.
|
* Redistributions of files must retain the above copyright notice.
|
||||||
*
|
*
|
||||||
* @filesource
|
* @filesource
|
||||||
* @copyright Copyright 2006-2008, Cake Software Foundation, Inc.
|
* @copyright Copyright 2006-2008, Cake Software Foundation, Inc.
|
||||||
* @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project
|
* @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project
|
||||||
* @package cake
|
* @package cake
|
||||||
* @subpackage debug_kit.tests.views.helpers
|
* @subpackage debug_kit.tests.views.helpers
|
||||||
* @version $Revision$
|
* @version $Revision$
|
||||||
* @modifiedby $LastChangedBy$
|
* @modifiedby $LastChangedBy$
|
||||||
* @lastmodified $Date$
|
* @lastmodified $Date$
|
||||||
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
|
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
|
||||||
*/
|
*/
|
||||||
App::import('Helper', 'DebugKit.FirePhpToolbar');
|
App::import('Helper', 'DebugKit.FirePhpToolbar');
|
||||||
App::import('Core', array('View', 'Controller'));
|
App::import('Core', array('View', 'Controller'));
|
||||||
require_once APP . 'plugins' . DS . 'debug_kit' . DS . 'tests' . DS . 'cases' . DS . 'test_objects.php';
|
require_once APP . 'plugins' . DS . 'debug_kit' . DS . 'tests' . DS . 'cases' . DS . 'test_objects.php';
|
||||||
|
|
||||||
FireCake::getInstance('TestFireCake');
|
FireCake::getInstance('TestFireCake');
|
||||||
|
|
||||||
class FirePhpToolbarHelperTestCase extends CakeTestCase {
|
class FirePhpToolbarHelperTestCase extends CakeTestCase {
|
||||||
/**
|
/**
|
||||||
* setUp
|
* setUp
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function setUp() {
|
function setUp() {
|
||||||
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
|
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
|
||||||
Router::parse('/');
|
Router::parse('/');
|
||||||
|
|
||||||
$this->Toolbar = new ToolbarHelper(array('output' => 'DebugKit.FirePhpToolbar'));
|
$this->Toolbar =& new ToolbarHelper(array('output' => 'DebugKit.FirePhpToolbar'));
|
||||||
$this->Toolbar->FirePhpToolbar = new FirePhpToolbarHelper();
|
$this->Toolbar->FirePhpToolbar =& new FirePhpToolbarHelper();
|
||||||
|
|
||||||
$this->Controller =& ClassRegistry::init('Controller');
|
$this->Controller =& ClassRegistry::init('Controller');
|
||||||
if (isset($this->_debug)) {
|
if (isset($this->_debug)) {
|
||||||
Configure::write('debug', $this->_debug);
|
Configure::write('debug', $this->_debug);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* start Case - switch view paths
|
* start Case - switch view paths
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function startCase() {
|
function startCase() {
|
||||||
$this->_viewPaths = Configure::read('viewPaths');
|
$this->_viewPaths = Configure::read('viewPaths');
|
||||||
Configure::write('viewPaths', array(
|
Configure::write('viewPaths', array(
|
||||||
TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'views'. DS,
|
TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'views'. DS,
|
||||||
APP . 'plugins' . DS . 'debug_kit' . DS . 'views'. DS,
|
APP . 'plugins' . DS . 'debug_kit' . DS . 'views'. DS,
|
||||||
ROOT . DS . LIBS . 'view' . DS
|
ROOT . DS . LIBS . 'view' . DS
|
||||||
));
|
));
|
||||||
$this->_debug = Configure::read('debug');
|
$this->_debug = Configure::read('debug');
|
||||||
$this->firecake =& FireCake::getInstance();
|
$this->firecake =& FireCake::getInstance();
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* test neat array (dump)creation
|
* test neat array (dump)creation
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function testMakeNeatArray() {
|
function testMakeNeatArray() {
|
||||||
$this->Toolbar->makeNeatArray(array(1,2,3));
|
$this->Toolbar->makeNeatArray(array(1,2,3));
|
||||||
$result = $this->firecake->sentHeaders;
|
$result = $this->firecake->sentHeaders;
|
||||||
$this->assertTrue(isset($result['X-Wf-1-1-1-1']));
|
$this->assertTrue(isset($result['X-Wf-1-1-1-1']));
|
||||||
$this->assertPattern('/\[1,2,3\]/', $result['X-Wf-1-1-1-1']);
|
$this->assertPattern('/\[1,2,3\]/', $result['X-Wf-1-1-1-1']);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* testAfterlayout element rendering
|
* testAfterlayout element rendering
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function testAfterLayout(){
|
function testAfterLayout(){
|
||||||
$this->Controller->viewPath = 'posts';
|
$this->Controller->viewPath = 'posts';
|
||||||
$this->Controller->action = 'index';
|
$this->Controller->action = 'index';
|
||||||
$this->Controller->params = array(
|
$this->Controller->params = array(
|
||||||
'action' => 'index',
|
'action' => 'index',
|
||||||
'controller' => 'posts',
|
'controller' => 'posts',
|
||||||
'plugin' => null,
|
'plugin' => null,
|
||||||
'url' => array('url' => 'posts/index', 'ext' => 'xml'),
|
'url' => array('url' => 'posts/index', 'ext' => 'xml'),
|
||||||
'base' => null,
|
'base' => null,
|
||||||
'here' => '/posts/index',
|
'here' => '/posts/index',
|
||||||
);
|
);
|
||||||
$this->Controller->layout = 'default';
|
$this->Controller->layout = 'default';
|
||||||
$this->Controller->uses = null;
|
$this->Controller->uses = null;
|
||||||
$this->Controller->components = array('DebugKit.Toolbar');
|
$this->Controller->components = array('DebugKit.Toolbar');
|
||||||
$this->Controller->constructClasses();
|
$this->Controller->constructClasses();
|
||||||
$this->Controller->Component->initialize($this->Controller);
|
$this->Controller->Component->initialize($this->Controller);
|
||||||
$this->Controller->Component->startup($this->Controller);
|
$this->Controller->Component->startup($this->Controller);
|
||||||
$this->Controller->Component->beforeRender($this->Controller);
|
$this->Controller->Component->beforeRender($this->Controller);
|
||||||
$result = $this->Controller->render();
|
$result = $this->Controller->render();
|
||||||
$this->assertNoPattern('/debug-toolbar/', $result);
|
$this->assertNoPattern('/debug-toolbar/', $result);
|
||||||
$result = $this->firecake->sentHeaders;
|
$result = $this->firecake->sentHeaders;
|
||||||
$this->assertTrue(is_array($result));
|
$this->assertTrue(is_array($result));
|
||||||
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* endTest()
|
* endTest()
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function endTest() {
|
function endTest() {
|
||||||
TestFireCake::reset();
|
TestFireCake::reset();
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* reset the view paths
|
* reset the view paths
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function endCase() {
|
function endCase() {
|
||||||
Configure::write('viewPaths', $this->_viewPaths);
|
Configure::write('viewPaths', $this->_viewPaths);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* tearDown
|
* tearDown
|
||||||
*
|
*
|
||||||
* @access public
|
* @access public
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function tearDown() {
|
function tearDown() {
|
||||||
unset($this->Toolbar, $this->Controller);
|
unset($this->Toolbar, $this->Controller);
|
||||||
ClassRegistry::removeObject('view');
|
ClassRegistry::removeObject('view');
|
||||||
ClassRegistry::flush();
|
ClassRegistry::flush();
|
||||||
Router::reload();
|
Router::reload();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
@@ -1,358 +1,358 @@
|
|||||||
<?php
|
<?php
|
||||||
/* SVN FILE: $Id$ */
|
/* SVN FILE: $Id$ */
|
||||||
/**
|
/**
|
||||||
* Toolbar HTML Helper Test Case
|
* Toolbar HTML Helper Test Case
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* PHP versions 4 and 5
|
* PHP versions 4 and 5
|
||||||
*
|
*
|
||||||
* CakePHP : Rapid Development Framework <http://www.cakephp.org/>
|
* CakePHP : Rapid Development Framework <http://www.cakephp.org/>
|
||||||
* Copyright 2006-2008, Cake Software Foundation, Inc.
|
* Copyright 2006-2008, Cake Software Foundation, Inc.
|
||||||
* 1785 E. Sahara Avenue, Suite 490-204
|
* 1785 E. Sahara Avenue, Suite 490-204
|
||||||
* Las Vegas, Nevada 89104
|
* Las Vegas, Nevada 89104
|
||||||
*
|
*
|
||||||
* Licensed under The MIT License
|
* Licensed under The MIT License
|
||||||
* Redistributions of files must retain the above copyright notice.
|
* Redistributions of files must retain the above copyright notice.
|
||||||
*
|
*
|
||||||
* @filesource
|
* @filesource
|
||||||
* @copyright Copyright 2006-2008, Cake Software Foundation, Inc.
|
* @copyright Copyright 2006-2008, Cake Software Foundation, Inc.
|
||||||
* @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project
|
* @link http://www.cakefoundation.org/projects/info/cakephp CakePHP Project
|
||||||
* @package cake
|
* @package cake
|
||||||
* @subpackage debug_kit.tests.views.helpers
|
* @subpackage debug_kit.tests.views.helpers
|
||||||
* @version $Revision$
|
* @version $Revision$
|
||||||
* @modifiedby $LastChangedBy$
|
* @modifiedby $LastChangedBy$
|
||||||
* @lastmodified $Date$
|
* @lastmodified $Date$
|
||||||
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
|
* @license http://www.opensource.org/licenses/mit-license.php The MIT License
|
||||||
*/
|
*/
|
||||||
App::import('Helper', array('DebugKit.HtmlToolbar', 'Html', 'Javascript'));
|
App::import('Helper', array('DebugKit.HtmlToolbar', 'Html', 'Javascript'));
|
||||||
App::import('Core', array('View', 'Controller'));
|
App::import('Core', array('View', 'Controller'));
|
||||||
|
|
||||||
class HtmlToolbarHelperTestCase extends CakeTestCase {
|
class HtmlToolbarHelperTestCase extends CakeTestCase {
|
||||||
/**
|
/**
|
||||||
* setUp
|
* setUp
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function setUp() {
|
function setUp() {
|
||||||
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
|
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
|
||||||
Router::parse('/');
|
Router::parse('/');
|
||||||
|
|
||||||
$this->Toolbar = new ToolbarHelper(array('output' => 'DebugKit.HtmlToolbar'));
|
$this->Toolbar =& new ToolbarHelper(array('output' => 'DebugKit.HtmlToolbar'));
|
||||||
$this->Toolbar->HtmlToolbar = new HtmlToolbarHelper();
|
$this->Toolbar->HtmlToolbar =& new HtmlToolbarHelper();
|
||||||
$this->Toolbar->HtmlToolbar->Html = new HtmlHelper();
|
$this->Toolbar->HtmlToolbar->Html =& new HtmlHelper();
|
||||||
$this->Toolbar->HtmlToolbar->Javascript = new JavascriptHelper();
|
$this->Toolbar->HtmlToolbar->Javascript =& new JavascriptHelper();
|
||||||
|
|
||||||
$this->Controller =& ClassRegistry::init('Controller');
|
$this->Controller =& ClassRegistry::init('Controller');
|
||||||
if (isset($this->_debug)) {
|
if (isset($this->_debug)) {
|
||||||
Configure::write('debug', $this->_debug);
|
Configure::write('debug', $this->_debug);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* start Case - switch view paths
|
* start Case - switch view paths
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function startCase() {
|
function startCase() {
|
||||||
$this->_viewPaths = Configure::read('viewPaths');
|
$this->_viewPaths = Configure::read('viewPaths');
|
||||||
Configure::write('viewPaths', array(
|
Configure::write('viewPaths', array(
|
||||||
TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'views'. DS,
|
TEST_CAKE_CORE_INCLUDE_PATH . 'tests' . DS . 'test_app' . DS . 'views'. DS,
|
||||||
APP . 'plugins' . DS . 'debug_kit' . DS . 'views'. DS,
|
APP . 'plugins' . DS . 'debug_kit' . DS . 'views'. DS,
|
||||||
ROOT . DS . LIBS . 'view' . DS
|
ROOT . DS . LIBS . 'view' . DS
|
||||||
));
|
));
|
||||||
$this->_debug = Configure::read('debug');
|
$this->_debug = Configure::read('debug');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* test Neat Array formatting
|
* test Neat Array formatting
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function testMakeNeatArray() {
|
function testMakeNeatArray() {
|
||||||
$in = false;
|
$in = false;
|
||||||
$result = $this->Toolbar->makeNeatArray($in);
|
$result = $this->Toolbar->makeNeatArray($in);
|
||||||
$expected = array(
|
$expected = array(
|
||||||
'ul' => array('class' => 'neat-array depth-0'),
|
'ul' => array('class' => 'neat-array depth-0'),
|
||||||
'<li', '<strong', '0' , '/strong', '(false)', '/li',
|
'<li', '<strong', '0' , '/strong', '(false)', '/li',
|
||||||
'/ul'
|
'/ul'
|
||||||
);
|
);
|
||||||
$this->assertTags($result, $expected);
|
$this->assertTags($result, $expected);
|
||||||
|
|
||||||
$in = null;
|
$in = null;
|
||||||
$result = $this->Toolbar->makeNeatArray($in);
|
$result = $this->Toolbar->makeNeatArray($in);
|
||||||
$expected = array(
|
$expected = array(
|
||||||
'ul' => array('class' => 'neat-array depth-0'),
|
'ul' => array('class' => 'neat-array depth-0'),
|
||||||
'<li', '<strong', '0' , '/strong', '(null)', '/li',
|
'<li', '<strong', '0' , '/strong', '(null)', '/li',
|
||||||
'/ul'
|
'/ul'
|
||||||
);
|
);
|
||||||
$this->assertTags($result, $expected);
|
$this->assertTags($result, $expected);
|
||||||
|
|
||||||
$in = true;
|
$in = true;
|
||||||
$result = $this->Toolbar->makeNeatArray($in);
|
$result = $this->Toolbar->makeNeatArray($in);
|
||||||
$expected = array(
|
$expected = array(
|
||||||
'ul' => array('class' => 'neat-array depth-0'),
|
'ul' => array('class' => 'neat-array depth-0'),
|
||||||
'<li', '<strong', '0' , '/strong', '(true)', '/li',
|
'<li', '<strong', '0' , '/strong', '(true)', '/li',
|
||||||
'/ul'
|
'/ul'
|
||||||
);
|
);
|
||||||
$this->assertTags($result, $expected);
|
$this->assertTags($result, $expected);
|
||||||
|
|
||||||
$in = array('key' => 'value');
|
$in = array('key' => 'value');
|
||||||
$result = $this->Toolbar->makeNeatArray($in);
|
$result = $this->Toolbar->makeNeatArray($in);
|
||||||
$expected = array(
|
$expected = array(
|
||||||
'ul' => array('class' => 'neat-array depth-0'),
|
'ul' => array('class' => 'neat-array depth-0'),
|
||||||
'<li', '<strong', 'key', '/strong', 'value', '/li',
|
'<li', '<strong', 'key', '/strong', 'value', '/li',
|
||||||
'/ul'
|
'/ul'
|
||||||
);
|
);
|
||||||
$this->assertTags($result, $expected);
|
$this->assertTags($result, $expected);
|
||||||
|
|
||||||
$in = array('key' => null);
|
$in = array('key' => null);
|
||||||
$result = $this->Toolbar->makeNeatArray($in);
|
$result = $this->Toolbar->makeNeatArray($in);
|
||||||
$expected = array(
|
$expected = array(
|
||||||
'ul' => array('class' => 'neat-array depth-0'),
|
'ul' => array('class' => 'neat-array depth-0'),
|
||||||
'<li', '<strong', 'key', '/strong', '(null)', '/li',
|
'<li', '<strong', 'key', '/strong', '(null)', '/li',
|
||||||
'/ul'
|
'/ul'
|
||||||
);
|
);
|
||||||
$this->assertTags($result, $expected);
|
$this->assertTags($result, $expected);
|
||||||
|
|
||||||
$in = array('key' => 'value', 'foo' => 'bar');
|
$in = array('key' => 'value', 'foo' => 'bar');
|
||||||
$result = $this->Toolbar->makeNeatArray($in);
|
$result = $this->Toolbar->makeNeatArray($in);
|
||||||
$expected = array(
|
$expected = array(
|
||||||
'ul' => array('class' => 'neat-array depth-0'),
|
'ul' => array('class' => 'neat-array depth-0'),
|
||||||
'<li', '<strong', 'key', '/strong', 'value', '/li',
|
'<li', '<strong', 'key', '/strong', 'value', '/li',
|
||||||
'<li', '<strong', 'foo', '/strong', 'bar', '/li',
|
'<li', '<strong', 'foo', '/strong', 'bar', '/li',
|
||||||
'/ul'
|
'/ul'
|
||||||
);
|
);
|
||||||
$this->assertTags($result, $expected);
|
$this->assertTags($result, $expected);
|
||||||
|
|
||||||
$in = array(
|
$in = array(
|
||||||
'key' => 'value',
|
'key' => 'value',
|
||||||
'foo' => array(
|
'foo' => array(
|
||||||
'this' => 'deep',
|
'this' => 'deep',
|
||||||
'another' => 'value'
|
'another' => 'value'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$result = $this->Toolbar->makeNeatArray($in);
|
$result = $this->Toolbar->makeNeatArray($in);
|
||||||
$expected = array(
|
$expected = array(
|
||||||
'ul' => array('class' => 'neat-array depth-0'),
|
'ul' => array('class' => 'neat-array depth-0'),
|
||||||
'<li', '<strong', 'key', '/strong', 'value', '/li',
|
'<li', '<strong', 'key', '/strong', 'value', '/li',
|
||||||
'<li', '<strong', 'foo', '/strong',
|
'<li', '<strong', 'foo', '/strong',
|
||||||
array('ul' => array('class' => 'neat-array depth-1')),
|
array('ul' => array('class' => 'neat-array depth-1')),
|
||||||
'<li', '<strong', 'this', '/strong', 'deep', '/li',
|
'<li', '<strong', 'this', '/strong', 'deep', '/li',
|
||||||
'<li', '<strong', 'another', '/strong', 'value', '/li',
|
'<li', '<strong', 'another', '/strong', 'value', '/li',
|
||||||
'/ul',
|
'/ul',
|
||||||
'/li',
|
'/li',
|
||||||
'/ul'
|
'/ul'
|
||||||
);
|
);
|
||||||
$this->assertTags($result, $expected);
|
$this->assertTags($result, $expected);
|
||||||
|
|
||||||
$in = array(
|
$in = array(
|
||||||
'key' => 'value',
|
'key' => 'value',
|
||||||
'foo' => array(
|
'foo' => array(
|
||||||
'this' => 'deep',
|
'this' => 'deep',
|
||||||
'another' => 'value'
|
'another' => 'value'
|
||||||
),
|
),
|
||||||
'lotr' => array(
|
'lotr' => array(
|
||||||
'gandalf' => 'wizard',
|
'gandalf' => 'wizard',
|
||||||
'bilbo' => 'hobbit'
|
'bilbo' => 'hobbit'
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$result = $this->Toolbar->makeNeatArray($in, 1);
|
$result = $this->Toolbar->makeNeatArray($in, 1);
|
||||||
$expected = array(
|
$expected = array(
|
||||||
'ul' => array('class' => 'neat-array depth-0 expanded'),
|
'ul' => array('class' => 'neat-array depth-0 expanded'),
|
||||||
'<li', '<strong', 'key', '/strong', 'value', '/li',
|
'<li', '<strong', 'key', '/strong', 'value', '/li',
|
||||||
'<li', '<strong', 'foo', '/strong',
|
'<li', '<strong', 'foo', '/strong',
|
||||||
array('ul' => array('class' => 'neat-array depth-1')),
|
array('ul' => array('class' => 'neat-array depth-1')),
|
||||||
'<li', '<strong', 'this', '/strong', 'deep', '/li',
|
'<li', '<strong', 'this', '/strong', 'deep', '/li',
|
||||||
'<li', '<strong', 'another', '/strong', 'value', '/li',
|
'<li', '<strong', 'another', '/strong', 'value', '/li',
|
||||||
'/ul',
|
'/ul',
|
||||||
'/li',
|
'/li',
|
||||||
'<li', '<strong', 'lotr', '/strong',
|
'<li', '<strong', 'lotr', '/strong',
|
||||||
array('ul' => array('class' => 'neat-array depth-1')),
|
array('ul' => array('class' => 'neat-array depth-1')),
|
||||||
'<li', '<strong', 'gandalf', '/strong', 'wizard', '/li',
|
'<li', '<strong', 'gandalf', '/strong', 'wizard', '/li',
|
||||||
'<li', '<strong', 'bilbo', '/strong', 'hobbit', '/li',
|
'<li', '<strong', 'bilbo', '/strong', 'hobbit', '/li',
|
||||||
'/ul',
|
'/ul',
|
||||||
'/li',
|
'/li',
|
||||||
'/ul'
|
'/ul'
|
||||||
);
|
);
|
||||||
$this->assertTags($result, $expected);
|
$this->assertTags($result, $expected);
|
||||||
|
|
||||||
$result = $this->Toolbar->makeNeatArray($in, 2);
|
$result = $this->Toolbar->makeNeatArray($in, 2);
|
||||||
$expected = array(
|
$expected = array(
|
||||||
'ul' => array('class' => 'neat-array depth-0 expanded'),
|
'ul' => array('class' => 'neat-array depth-0 expanded'),
|
||||||
'<li', '<strong', 'key', '/strong', 'value', '/li',
|
'<li', '<strong', 'key', '/strong', 'value', '/li',
|
||||||
'<li', '<strong', 'foo', '/strong',
|
'<li', '<strong', 'foo', '/strong',
|
||||||
array('ul' => array('class' => 'neat-array depth-1 expanded')),
|
array('ul' => array('class' => 'neat-array depth-1 expanded')),
|
||||||
'<li', '<strong', 'this', '/strong', 'deep', '/li',
|
'<li', '<strong', 'this', '/strong', 'deep', '/li',
|
||||||
'<li', '<strong', 'another', '/strong', 'value', '/li',
|
'<li', '<strong', 'another', '/strong', 'value', '/li',
|
||||||
'/ul',
|
'/ul',
|
||||||
'/li',
|
'/li',
|
||||||
'<li', '<strong', 'lotr', '/strong',
|
'<li', '<strong', 'lotr', '/strong',
|
||||||
array('ul' => array('class' => 'neat-array depth-1 expanded')),
|
array('ul' => array('class' => 'neat-array depth-1 expanded')),
|
||||||
'<li', '<strong', 'gandalf', '/strong', 'wizard', '/li',
|
'<li', '<strong', 'gandalf', '/strong', 'wizard', '/li',
|
||||||
'<li', '<strong', 'bilbo', '/strong', 'hobbit', '/li',
|
'<li', '<strong', 'bilbo', '/strong', 'hobbit', '/li',
|
||||||
'/ul',
|
'/ul',
|
||||||
'/li',
|
'/li',
|
||||||
'/ul'
|
'/ul'
|
||||||
);
|
);
|
||||||
$this->assertTags($result, $expected);
|
$this->assertTags($result, $expected);
|
||||||
|
|
||||||
$in = array('key' => 'value', 'array' => array());
|
$in = array('key' => 'value', 'array' => array());
|
||||||
$result = $this->Toolbar->makeNeatArray($in);
|
$result = $this->Toolbar->makeNeatArray($in);
|
||||||
$expected = array(
|
$expected = array(
|
||||||
'ul' => array('class' => 'neat-array depth-0'),
|
'ul' => array('class' => 'neat-array depth-0'),
|
||||||
'<li', '<strong', 'key', '/strong', 'value', '/li',
|
'<li', '<strong', 'key', '/strong', 'value', '/li',
|
||||||
'<li', '<strong', 'array', '/strong', '(empty)', '/li',
|
'<li', '<strong', 'array', '/strong', '(empty)', '/li',
|
||||||
'/ul'
|
'/ul'
|
||||||
);
|
);
|
||||||
$this->assertTags($result, $expected);
|
$this->assertTags($result, $expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test injection of toolbar
|
* Test injection of toolbar
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function testInjectToolbar() {
|
function testInjectToolbar() {
|
||||||
$this->Controller->viewPath = 'posts';
|
$this->Controller->viewPath = 'posts';
|
||||||
$this->Controller->action = 'index';
|
$this->Controller->action = 'index';
|
||||||
$this->Controller->params = array(
|
$this->Controller->params = array(
|
||||||
'action' => 'index',
|
'action' => 'index',
|
||||||
'controller' => 'posts',
|
'controller' => 'posts',
|
||||||
'plugin' => null,
|
'plugin' => null,
|
||||||
'url' => array('url' => 'posts/index'),
|
'url' => array('url' => 'posts/index'),
|
||||||
'base' => null,
|
'base' => null,
|
||||||
'here' => '/posts/index',
|
'here' => '/posts/index',
|
||||||
);
|
);
|
||||||
$this->Controller->helpers = array('Html', 'Javascript', 'DebugKit.Toolbar');
|
$this->Controller->helpers = array('Html', 'Javascript', 'DebugKit.Toolbar');
|
||||||
$this->Controller->layout = 'default';
|
$this->Controller->layout = 'default';
|
||||||
$this->Controller->uses = null;
|
$this->Controller->uses = null;
|
||||||
$this->Controller->components = array('DebugKit.Toolbar');
|
$this->Controller->components = array('DebugKit.Toolbar');
|
||||||
$this->Controller->constructClasses();
|
$this->Controller->constructClasses();
|
||||||
$this->Controller->Component->initialize($this->Controller);
|
$this->Controller->Component->initialize($this->Controller);
|
||||||
$this->Controller->Component->startup($this->Controller);
|
$this->Controller->Component->startup($this->Controller);
|
||||||
$this->Controller->Component->beforeRender($this->Controller);
|
$this->Controller->Component->beforeRender($this->Controller);
|
||||||
$result = $this->Controller->render();
|
$result = $this->Controller->render();
|
||||||
$result = str_replace(array("\n", "\r"), '', $result);
|
$result = str_replace(array("\n", "\r"), '', $result);
|
||||||
$this->assertPattern('#<div id\="debug-kit-toolbar">.+</div></body>#', $result);
|
$this->assertPattern('#<div id\="debug-kit-toolbar">.+</div></body>#', $result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* test injection of javascript
|
* test injection of javascript
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function testJavascriptInjection() {
|
function testJavascriptInjection() {
|
||||||
$this->Controller->viewPath = 'posts';
|
$this->Controller->viewPath = 'posts';
|
||||||
$this->Controller->uses = null;
|
$this->Controller->uses = null;
|
||||||
$this->Controller->action = 'index';
|
$this->Controller->action = 'index';
|
||||||
$this->Controller->params = array(
|
$this->Controller->params = array(
|
||||||
'action' => 'index',
|
'action' => 'index',
|
||||||
'controller' => 'posts',
|
'controller' => 'posts',
|
||||||
'plugin' => null,
|
'plugin' => null,
|
||||||
'url' => array('url' => 'posts/index'),
|
'url' => array('url' => 'posts/index'),
|
||||||
'base' => '/',
|
'base' => '/',
|
||||||
'here' => '/posts/index',
|
'here' => '/posts/index',
|
||||||
);
|
);
|
||||||
$this->Controller->helpers = array('Javascript', 'Html');
|
$this->Controller->helpers = array('Javascript', 'Html');
|
||||||
$this->Controller->components = array('DebugKit.Toolbar');
|
$this->Controller->components = array('DebugKit.Toolbar');
|
||||||
$this->Controller->layout = 'default';
|
$this->Controller->layout = 'default';
|
||||||
$this->Controller->constructClasses();
|
$this->Controller->constructClasses();
|
||||||
$this->Controller->Component->initialize($this->Controller);
|
$this->Controller->Component->initialize($this->Controller);
|
||||||
$this->Controller->Component->startup($this->Controller);
|
$this->Controller->Component->startup($this->Controller);
|
||||||
$this->Controller->Component->beforeRender($this->Controller);
|
$this->Controller->Component->beforeRender($this->Controller);
|
||||||
$result = $this->Controller->render();
|
$result = $this->Controller->render();
|
||||||
$result = str_replace(array("\n", "\r"), '', $result);
|
$result = str_replace(array("\n", "\r"), '', $result);
|
||||||
$this->assertPattern('#<script\s*type="text/javascript"\s*src="/debug_kit/js/js_debug_toolbar.js"\s*>\s?</script>#', $result);
|
$this->assertPattern('#<script\s*type="text/javascript"\s*src="/debug_kit/js/js_debug_toolbar.js"\s*>\s?</script>#', $result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* test Injection of user defined javascript
|
* test Injection of user defined javascript
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function testCustomJavascriptInjection() {
|
function testCustomJavascriptInjection() {
|
||||||
$this->Controller->viewPath = 'posts';
|
$this->Controller->viewPath = 'posts';
|
||||||
$this->Controller->uses = null;
|
$this->Controller->uses = null;
|
||||||
$this->Controller->action = 'index';
|
$this->Controller->action = 'index';
|
||||||
$this->Controller->params = array(
|
$this->Controller->params = array(
|
||||||
'action' => 'index',
|
'action' => 'index',
|
||||||
'controller' => 'posts',
|
'controller' => 'posts',
|
||||||
'plugin' => null,
|
'plugin' => null,
|
||||||
'url' => array('url' => 'posts/index'),
|
'url' => array('url' => 'posts/index'),
|
||||||
'base' => '/',
|
'base' => '/',
|
||||||
'here' => '/posts/index',
|
'here' => '/posts/index',
|
||||||
);
|
);
|
||||||
$this->Controller->helpers = array('Javascript', 'Html');
|
$this->Controller->helpers = array('Javascript', 'Html');
|
||||||
$this->Controller->components = array('DebugKit.Toolbar' => array('javascript' => array('my_custom')));
|
$this->Controller->components = array('DebugKit.Toolbar' => array('javascript' => array('my_custom')));
|
||||||
$this->Controller->layout = 'default';
|
$this->Controller->layout = 'default';
|
||||||
$this->Controller->constructClasses();
|
$this->Controller->constructClasses();
|
||||||
$this->Controller->Component->initialize($this->Controller);
|
$this->Controller->Component->initialize($this->Controller);
|
||||||
$this->Controller->Component->startup($this->Controller);
|
$this->Controller->Component->startup($this->Controller);
|
||||||
$this->Controller->Component->beforeRender($this->Controller);
|
$this->Controller->Component->beforeRender($this->Controller);
|
||||||
$result = $this->Controller->render();
|
$result = $this->Controller->render();
|
||||||
$result = str_replace(array("\n", "\r"), '', $result);
|
$result = str_replace(array("\n", "\r"), '', $result);
|
||||||
$this->assertPattern('#<script\s*type="text/javascript"\s*src="js/my_custom_debug_toolbar.js"\s*>\s?</script>#', $result);
|
$this->assertPattern('#<script\s*type="text/javascript"\s*src="js/my_custom_debug_toolbar.js"\s*>\s?</script>#', $result);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* test message creation
|
* test message creation
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function testMessage() {
|
function testMessage() {
|
||||||
$result = $this->Toolbar->message('test', 'one, two');
|
$result = $this->Toolbar->message('test', 'one, two');
|
||||||
$expected = array(
|
$expected = array(
|
||||||
'<p',
|
'<p',
|
||||||
'<strong', 'test', '/strong',
|
'<strong', 'test', '/strong',
|
||||||
' one, two',
|
' one, two',
|
||||||
'/p',
|
'/p',
|
||||||
);
|
);
|
||||||
$this->assertTags($result, $expected);
|
$this->assertTags($result, $expected);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Test Table generation
|
* Test Table generation
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function testTable() {
|
function testTable() {
|
||||||
$rows = array(
|
$rows = array(
|
||||||
array(1,2),
|
array(1,2),
|
||||||
array(3,4),
|
array(3,4),
|
||||||
);
|
);
|
||||||
$result = $this->Toolbar->table($rows);
|
$result = $this->Toolbar->table($rows);
|
||||||
$expected = array(
|
$expected = array(
|
||||||
'table' => array('class' =>'debug-table'),
|
'table' => array('class' =>'debug-table'),
|
||||||
array('tr' => array('class' => 'odd')),
|
array('tr' => array('class' => 'odd')),
|
||||||
'<td', '1', '/td',
|
'<td', '1', '/td',
|
||||||
'<td', '2', '/td',
|
'<td', '2', '/td',
|
||||||
'/tr',
|
'/tr',
|
||||||
array('tr' => array('class' => 'even')),
|
array('tr' => array('class' => 'even')),
|
||||||
'<td', '3', '/td',
|
'<td', '3', '/td',
|
||||||
'<td', '4', '/td',
|
'<td', '4', '/td',
|
||||||
'/tr',
|
'/tr',
|
||||||
'/table'
|
'/table'
|
||||||
);
|
);
|
||||||
$this->assertTags($result, $expected);
|
$this->assertTags($result, $expected);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* reset the view paths
|
* reset the view paths
|
||||||
*
|
*
|
||||||
* @return void
|
* @return void
|
||||||
**/
|
**/
|
||||||
function endCase() {
|
function endCase() {
|
||||||
Configure::write('viewPaths', $this->_viewPaths);
|
Configure::write('viewPaths', $this->_viewPaths);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* tearDown
|
* tearDown
|
||||||
*
|
*
|
||||||
* @access public
|
* @access public
|
||||||
* @return void
|
* @return void
|
||||||
*/
|
*/
|
||||||
function tearDown() {
|
function tearDown() {
|
||||||
unset($this->Toolbar, $this->Controller);
|
unset($this->Toolbar, $this->Controller);
|
||||||
ClassRegistry::removeObject('view');
|
ClassRegistry::removeObject('view');
|
||||||
ClassRegistry::flush();
|
ClassRegistry::flush();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
@@ -30,14 +30,14 @@ $timers = DebugKitDebugger::getTimers();
|
|||||||
?>
|
?>
|
||||||
<h2><?php __('Timers'); ?></h2>
|
<h2><?php __('Timers'); ?></h2>
|
||||||
<p class="request-time">
|
<p class="request-time">
|
||||||
<?php $totalTime = sprintf(__('%s (seconds)', true), DebugKitDebugger::requestTime()); ?>
|
<?php $totalTime = sprintf(__('%s (seconds)', true), $number->precision(DebugKitDebugger::requestTime(), 6)); ?>
|
||||||
<?php echo $toolbar->message(__('Total Request Time:', true), $totalTime)?>
|
<?php echo $toolbar->message(__('Total Request Time:', true), $totalTime)?>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<?php foreach ($timers as $timerName => $timeInfo):
|
<?php foreach ($timers as $timerName => $timeInfo):
|
||||||
$rows[] = array(
|
$rows[] = array(
|
||||||
$timeInfo['message'],
|
$timeInfo['message'],
|
||||||
$timeInfo['time']
|
$number->precision($timeInfo['time'], 6)
|
||||||
);
|
);
|
||||||
$headers = array(__('Message', true), __('time in seconds', true));
|
$headers = array(__('Message', true), __('time in seconds', true));
|
||||||
endforeach;
|
endforeach;
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ function customerContactDiv($obj, $values = null, $primary = false) {
|
|||||||
'</DIV>' . "\n" .
|
'</DIV>' . "\n" .
|
||||||
|
|
||||||
// BEGIN contact-div
|
// BEGIN contact-div
|
||||||
'<div id="contact-%{id}-contact-div"' . "\n" .
|
'<div id="contact-%{id}-contact-div">' . "\n" .
|
||||||
|
|
||||||
$obj->element
|
$obj->element
|
||||||
('form_table',
|
('form_table',
|
||||||
|
|||||||
@@ -10,11 +10,11 @@ echo '<div class="statement_entry overview">' . "\n";
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
$rows = array();
|
$rows = array();
|
||||||
$rows[] = array("$months Month Charges", FormatHelper::currency($overview['charges']));
|
$rows[] = array("$months Month Total", FormatHelper::currency($overview['amount']));
|
||||||
|
|
||||||
echo $this->element('table',
|
echo $this->element('table',
|
||||||
array('class' => 'item statement_entry detail',
|
array('class' => 'item statement_entry detail',
|
||||||
'caption' => 'Monthly Charges',
|
'caption' => $reptype,
|
||||||
'rows' => $rows,
|
'rows' => $rows,
|
||||||
'column_class' => array('field', 'value')));
|
'column_class' => array('field', 'value')));
|
||||||
|
|
||||||
@@ -38,11 +38,11 @@ foreach ($overview['months'] AS $month) {
|
|||||||
$odd = 1;
|
$odd = 1;
|
||||||
foreach ($month['subs'] AS $sub) {
|
foreach ($month['subs'] AS $sub) {
|
||||||
$row_class[] = array('subitem', $odd ? 'oddrow' : 'evenrow');
|
$row_class[] = array('subitem', $odd ? 'oddrow' : 'evenrow');
|
||||||
$rows[] = array($sub['name'], FormatHelper::currency($sub['charges']));
|
$rows[] = array($sub['name'], FormatHelper::currency($sub['amount']));
|
||||||
$odd = !$odd;
|
$odd = !$odd;
|
||||||
}
|
}
|
||||||
$row_class[] = 'grand';
|
$row_class[] = 'grand';
|
||||||
$rows[] = array('Total for '.$month['name'], FormatHelper::currency($month['charges']));
|
$rows[] = array('Total for '.$month['name'], FormatHelper::currency($month['amount']));
|
||||||
}
|
}
|
||||||
|
|
||||||
echo $this->element('table',
|
echo $this->element('table',
|
||||||
|
|||||||
Reference in New Issue
Block a user