Merge branch 'pr-cli' into 2.4

From pull request 1142
This commit is contained in:
mark_story 2013-02-28 21:23:03 -05:00
commit 92d215df4d
2 changed files with 27 additions and 5 deletions

View file

@ -853,6 +853,7 @@ EXPECTED;
* @return void * @return void
*/ */
public function testPr() { public function testPr() {
$this->skipIf(php_sapi_name() == 'cli', 'Skipping web test in cli mode');
ob_start(); ob_start();
pr('this is a test'); pr('this is a test');
$result = ob_get_clean(); $result = ob_get_clean();
@ -866,6 +867,26 @@ EXPECTED;
$this->assertEquals($expected, $result); $this->assertEquals($expected, $result);
} }
/**
* test pr()
*
* @return void
*/
public function testPrCli() {
$this->skipIf(php_sapi_name() != 'cli', 'Skipping cli test in web mode');
ob_start();
pr('this is a test');
$result = ob_get_clean();
$expected = "\nthis is a test\n";
$this->assertEquals($expected, $result);
ob_start();
pr(array('this' => 'is', 'a' => 'test'));
$result = ob_get_clean();
$expected = "\nArray\n(\n [this] => is\n [a] => test\n)\n\n";
$this->assertEquals($expected, $result);
}
/** /**
* test stripslashes_deep() * test stripslashes_deep()
* *

View file

@ -230,8 +230,10 @@ if (!function_exists('pluginSplit')) {
if (!function_exists('pr')) { if (!function_exists('pr')) {
/** /**
* Print_r convenience function, which prints out <PRE> tags around * print_r() convenience function
* the output of given array. Similar to debug(). *
* In terminals this will act the same as using print_r() directly, when not run on cli
* print_r() will wrap <PRE> tags around the output of given array. Similar to debug().
* *
* @see debug() * @see debug()
* @param array $var Variable to print out * @param array $var Variable to print out
@ -239,9 +241,8 @@ if (!function_exists('pr')) {
*/ */
function pr($var) { function pr($var) {
if (Configure::read('debug') > 0) { if (Configure::read('debug') > 0) {
echo '<pre>'; $template = php_sapi_name() !== 'cli' ? '<pre>%s</pre>' : "\n%s\n";
print_r($var); echo sprintf($template, print_r($var, true));
echo '</pre>';
} }
} }