diff --git a/lib/Cake/Console/ShellDispatcher.php b/lib/Cake/Console/ShellDispatcher.php
index 08df24940..d53851127 100644
--- a/lib/Cake/Console/ShellDispatcher.php
+++ b/lib/Cake/Console/ShellDispatcher.php
@@ -177,6 +177,9 @@ class ShellDispatcher {
}
set_exception_handler($exception['consoleHandler']);
set_error_handler($error['consoleHandler'], Configure::read('Error.level'));
+
+ App::uses('Debugger', 'Utility');
+ Debugger::getInstance()->output('txt');
}
/**
diff --git a/lib/Cake/Model/Datasource/Database/Postgres.php b/lib/Cake/Model/Datasource/Database/Postgres.php
index 21d82b191..033527ae0 100644
--- a/lib/Cake/Model/Datasource/Database/Postgres.php
+++ b/lib/Cake/Model/Datasource/Database/Postgres.php
@@ -98,7 +98,7 @@ class Postgres extends DboSource {
*
* @var array
*/
- protected $_sqlOps = array('like', 'ilike', 'or', 'not', 'in', 'between', '~', '~*', '!~', '!~*', 'similar to');
+ protected $_sqlOps = array('like', 'ilike', 'or', 'not', 'in', 'between', '~', '~\*', '\!~', '\!~\*', 'similar to');
/**
* Connects to the database using options in the given configuration array.
diff --git a/lib/Cake/Test/Case/Error/ErrorHandlerTest.php b/lib/Cake/Test/Case/Error/ErrorHandlerTest.php
index aa7448d64..18930737b 100644
--- a/lib/Cake/Test/Case/Error/ErrorHandlerTest.php
+++ b/lib/Cake/Test/Case/Error/ErrorHandlerTest.php
@@ -19,6 +19,7 @@
App::uses('ErrorHandler', 'Error');
App::uses('Controller', 'Controller');
App::uses('Router', 'Routing');
+App::uses('Debugger', 'Utility');
/**
* A faulty ExceptionRenderer to test nesting.
@@ -92,6 +93,8 @@ class ErrorHandlerTest extends CakeTestCase {
set_error_handler('ErrorHandler::handleError');
$this->_restoreError = true;
+ Debugger::getInstance()->output('html');
+
ob_start();
$wrong .= '';
$result = ob_get_clean();
@@ -123,6 +126,8 @@ class ErrorHandlerTest extends CakeTestCase {
set_error_handler('ErrorHandler::handleError');
$this->_restoreError = true;
+ Debugger::getInstance()->output('html');
+
ob_start();
trigger_error('Test error', $error);
diff --git a/lib/Cake/Test/Case/Model/Datasource/Database/PostgresTest.php b/lib/Cake/Test/Case/Model/Datasource/Database/PostgresTest.php
index c9e4528b7..20f96cd5c 100644
--- a/lib/Cake/Test/Case/Model/Datasource/Database/PostgresTest.php
+++ b/lib/Cake/Test/Case/Model/Datasource/Database/PostgresTest.php
@@ -490,6 +490,10 @@ class PostgresTest extends CakeTestCase {
$this->assertSame(' WHERE "name" ~* \'[a-z_]+\'', $this->Dbo->conditions(array('name ~*' => '[a-z_]+')));
$this->assertSame(' WHERE "name" !~ \'[a-z_]+\'', $this->Dbo->conditions(array('name !~' => '[a-z_]+')));
$this->assertSame(' WHERE "name" !~* \'[a-z_]+\'', $this->Dbo->conditions(array('name !~*' => '[a-z_]+')));
+ $this->assertSame(
+ ' WHERE EXTRACT( \'YEAR\' FROM "User"."birthday" ) = 2015',
+ $this->Dbo->conditions(array('EXTRACT( \'YEAR\' FROM User.birthday )' => 2015))
+ );
}
/**
diff --git a/lib/Cake/Test/Case/Network/Email/CakeEmailTest.php b/lib/Cake/Test/Case/Network/Email/CakeEmailTest.php
index a9b175bb7..7945f7481 100644
--- a/lib/Cake/Test/Case/Network/Email/CakeEmailTest.php
+++ b/lib/Cake/Test/Case/Network/Email/CakeEmailTest.php
@@ -1602,7 +1602,7 @@ class CakeEmailTest extends CakeTestCase {
$server .= ':' . env('SERVER_PORT');
}
- $expected = '';
+ $expected = '';
$result = $this->CakeEmail->send();
$this->assertContains($expected, $result['message']);
}
diff --git a/lib/Cake/Test/Case/View/Helper/HtmlHelperTest.php b/lib/Cake/Test/Case/View/Helper/HtmlHelperTest.php
index 5de351701..57ece5171 100644
--- a/lib/Cake/Test/Case/View/Helper/HtmlHelperTest.php
+++ b/lib/Cake/Test/Case/View/Helper/HtmlHelperTest.php
@@ -1755,7 +1755,6 @@ class HtmlHelperTest extends CakeTestCase {
$result = $this->Html->meta('keywords', 'these, are, some, meta, keywords');
$this->assertTags($result, array('meta' => array('name' => 'keywords', 'content' => 'these, are, some, meta, keywords')));
- $this->assertRegExp('/\s+\/>$/', $result);
$result = $this->Html->meta('description', 'this is the meta description');
$this->assertTags($result, array('meta' => array('name' => 'description', 'content' => 'this is the meta description')));
diff --git a/lib/Cake/Test/Case/View/Helper/PaginatorHelperTest.php b/lib/Cake/Test/Case/View/Helper/PaginatorHelperTest.php
index 5b37bf4f0..cb271c6b0 100644
--- a/lib/Cake/Test/Case/View/Helper/PaginatorHelperTest.php
+++ b/lib/Cake/Test/Case/View/Helper/PaginatorHelperTest.php
@@ -2857,7 +2857,7 @@ class PaginatorHelperTest extends CakeTestCase {
'paramType' => 'querystring'
)
);
- $expected = '';
+ $expected = '';
$result = $this->Paginator->meta();
$this->assertSame($expected, $result);
}
@@ -2878,7 +2878,7 @@ class PaginatorHelperTest extends CakeTestCase {
'paramType' => 'querystring'
)
);
- $expected = '';
+ $expected = '';
$this->Paginator->meta(array('block' => true));
$result = $this->View->fetch('meta');
$this->assertSame($expected, $result);
@@ -2900,7 +2900,7 @@ class PaginatorHelperTest extends CakeTestCase {
'paramType' => 'querystring'
)
);
- $expected = '';
+ $expected = '';
$result = $this->Paginator->meta();
$this->assertSame($expected, $result);
}
@@ -2921,8 +2921,8 @@ class PaginatorHelperTest extends CakeTestCase {
'paramType' => 'querystring'
)
);
- $expected = '';
- $expected .= '';
+ $expected = '';
+ $expected .= '';
$result = $this->Paginator->meta();
$this->assertSame($expected, $result);
}
diff --git a/lib/Cake/View/Helper/HtmlHelper.php b/lib/Cake/View/Helper/HtmlHelper.php
index 59b0114d2..a9c99e0cc 100644
--- a/lib/Cake/View/Helper/HtmlHelper.php
+++ b/lib/Cake/View/Helper/HtmlHelper.php
@@ -279,12 +279,12 @@ class HtmlHelper extends AppHelper {
if (isset($options['link'])) {
$options['link'] = $this->assetUrl($options['link']);
if (isset($options['rel']) && $options['rel'] === 'icon') {
- $out = sprintf($this->_tags['metalink'], $options['link'], $this->_parseAttributes($options, array('block', 'link'), ' ', ' '));
+ $out = sprintf($this->_tags['metalink'], $options['link'], $this->_parseAttributes($options, array('block', 'link')));
$options['rel'] = 'shortcut icon';
}
- $out .= sprintf($this->_tags['metalink'], $options['link'], $this->_parseAttributes($options, array('block', 'link'), ' ', ' '));
+ $out .= sprintf($this->_tags['metalink'], $options['link'], $this->_parseAttributes($options, array('block', 'link')));
} else {
- $out = sprintf($this->_tags['meta'], $this->_parseAttributes($options, array('block', 'type'), ' ', ' '));
+ $out = sprintf($this->_tags['meta'], $this->_parseAttributes($options, array('block', 'type')));
}
if (empty($options['block'])) {
@@ -565,7 +565,7 @@ class HtmlHelper extends AppHelper {
$url = str_replace(Configure::read('App.jsBaseUrl'), 'cjs/', $url);
}
}
- $attributes = $this->_parseAttributes($options, array('block', 'once'), ' ');
+ $attributes = $this->_parseAttributes($options, array('block', 'once'));
$out = sprintf($this->_tags['javascriptlink'], $url, $attributes);
if (empty($options['block'])) {
@@ -601,7 +601,7 @@ class HtmlHelper extends AppHelper {
}
unset($options['inline'], $options['safe']);
- $attributes = $this->_parseAttributes($options, array('block'), ' ');
+ $attributes = $this->_parseAttributes($options, array('block'));
$out = sprintf($this->_tags['javascriptblock'], $attributes, $script);
if (empty($options['block'])) {
@@ -828,7 +828,7 @@ class HtmlHelper extends AppHelper {
unset($options['url']);
}
- $image = sprintf($this->_tags['image'], $path, $this->_parseAttributes($options, null, ' ', ' '));
+ $image = sprintf($this->_tags['image'], $path, $this->_parseAttributes($options));
if ($url) {
return sprintf($this->_tags['link'], $this->url($url), null, $image);
@@ -946,7 +946,7 @@ class HtmlHelper extends AppHelper {
} else {
$tag = 'tag';
}
- return sprintf($this->_tags[$tag], $name, $this->_parseAttributes($options, null, ' ', ''), $text, $name);
+ return sprintf($this->_tags[$tag], $name, $this->_parseAttributes($options), $text, $name);
}
/**
@@ -964,7 +964,7 @@ class HtmlHelper extends AppHelper {
array_shift($args);
foreach ($args as &$arg) {
if (is_array($arg)) {
- $arg = $this->_parseAttributes($arg, null, ' ', '');
+ $arg = $this->_parseAttributes($arg);
}
}
return vsprintf($this->_tags[$tag], $args);
@@ -1015,7 +1015,7 @@ class HtmlHelper extends AppHelper {
if ($text === null) {
$tag = 'parastart';
}
- return sprintf($this->_tags[$tag], $this->_parseAttributes($options, null, ' ', ''), $text);
+ return sprintf($this->_tags[$tag], $this->_parseAttributes($options), $text);
}
/**
@@ -1151,7 +1151,7 @@ class HtmlHelper extends AppHelper {
$options = array();
}
$items = $this->_nestedListItem($list, $options, $itemOptions, $tag);
- return sprintf($this->_tags[$tag], $this->_parseAttributes($options, null, ' ', ''), $items);
+ return sprintf($this->_tags[$tag], $this->_parseAttributes($options), $items);
}
/**
@@ -1177,7 +1177,7 @@ class HtmlHelper extends AppHelper {
} elseif (isset($itemOptions['odd']) && $index % 2 !== 0) {
$itemOptions['class'] = $itemOptions['odd'];
}
- $out .= sprintf($this->_tags['li'], $this->_parseAttributes($itemOptions, array('even', 'odd'), ' ', ''), $item);
+ $out .= sprintf($this->_tags['li'], $this->_parseAttributes($itemOptions, array('even', 'odd')), $item);
$index++;
}
return $out;