diff --git a/lib/Cake/Model/Model.php b/lib/Cake/Model/Model.php index a5dcd63e1..fa26019b8 100644 --- a/lib/Cake/Model/Model.php +++ b/lib/Cake/Model/Model.php @@ -3198,7 +3198,7 @@ class Model extends Object implements CakeEventListener { } /** - * Passes query results through model and behavior afterFilter() methods. + * Passes query results through model and behavior afterFind() methods. * * @param array $results Results to filter * @param boolean $primary If this is the primary model results (results from model where the find operation was performed) diff --git a/lib/Cake/Test/Case/View/Helper/HtmlHelperTest.php b/lib/Cake/Test/Case/View/Helper/HtmlHelperTest.php index d0957653f..d3aff9bef 100644 --- a/lib/Cake/Test/Case/View/Helper/HtmlHelperTest.php +++ b/lib/Cake/Test/Case/View/Helper/HtmlHelperTest.php @@ -416,10 +416,32 @@ class HtmlHelperTest extends CakeTestCase { $result = $this->Html->image('/test/view/1.gif'); $this->assertTags($result, array('img' => array('src' => '/test/view/1.gif', 'alt' => ''))); + } +/** + * Test image() with query strings. + * + * @return void + */ + public function testImageQueryString() { $result = $this->Html->image('test.gif?one=two&three=four'); $this->assertTags($result, array('img' => array('src' => 'img/test.gif?one=two&three=four', 'alt' => ''))); + $result = $this->Html->image(array( + 'controller' => 'images', + 'action' => 'display', + 'test', + '?' => array('one' => 'two', 'three' => 'four') + )); + $this->assertTags($result, array('img' => array('src' => '/images/display/test?one=two&three=four', 'alt' => ''))); + } + +/** + * Test that image works with pathPrefix. + * + * @return void + */ + public function testImagePathPrefix() { $result = $this->Html->image('test.gif', array('pathPrefix' => '/my/custom/path/')); $this->assertTags($result, array('img' => array('src' => '/my/custom/path/test.gif', 'alt' => ''))); @@ -1689,19 +1711,6 @@ class HtmlHelperTest extends CakeTestCase { ); $this->assertTags($result, $expected); - $result = $this->Html->meta('icon', 'favicon.ico'); - $expected = array( - 'link' => array('href' => 'preg:/.*favicon\.ico/', 'type' => 'image/x-icon', 'rel' => 'icon'), - array('link' => array('href' => 'preg:/.*favicon\.ico/', 'type' => 'image/x-icon', 'rel' => 'shortcut icon')) - ); - $this->assertTags($result, $expected); - $result = $this->Html->meta('icon'); - $expected = array( - 'link' => array('href' => 'preg:/.*favicon\.ico/', 'type' => 'image/x-icon', 'rel' => 'icon'), - array('link' => array('href' => 'preg:/.*favicon\.ico/', 'type' => 'image/x-icon', 'rel' => 'shortcut icon')) - ); - $this->assertTags($result, $expected); - $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); @@ -1713,6 +1722,45 @@ class HtmlHelperTest extends CakeTestCase { $this->assertTags($result, array('meta' => array('name' => 'ROBOTS', 'content' => 'ALL'))); } +/** + * Test generating favicon's with meta() + * + * @return void + */ + public function testMetaIcon() { + $result = $this->Html->meta('icon', 'favicon.ico'); + $expected = array( + 'link' => array('href' => 'preg:/.*favicon\.ico/', 'type' => 'image/x-icon', 'rel' => 'icon'), + array('link' => array('href' => 'preg:/.*favicon\.ico/', 'type' => 'image/x-icon', 'rel' => 'shortcut icon')) + ); + $this->assertTags($result, $expected); + + $result = $this->Html->meta('icon'); + $expected = array( + 'link' => array('href' => 'preg:/.*favicon\.ico/', 'type' => 'image/x-icon', 'rel' => 'icon'), + array('link' => array('href' => 'preg:/.*favicon\.ico/', 'type' => 'image/x-icon', 'rel' => 'shortcut icon')) + ); + $this->assertTags($result, $expected); + + $result = $this->Html->meta('icon', '/favicon.png?one=two&three=four'); + $url = '/favicon.png?one=two&three=four'; + $expected = array( + 'link' => array( + 'href' => $url, + 'type' => 'image/x-icon', + 'rel' => 'icon' + ), + array( + 'link' => array( + 'href' => $url, + 'type' => 'image/x-icon', + 'rel' => 'shortcut icon' + ) + ) + ); + $this->assertTags($result, $expected); + } + /** * Test the inline and block options for meta() */ diff --git a/lib/Cake/View/Helper/HtmlHelper.php b/lib/Cake/View/Helper/HtmlHelper.php index 2048302fd..bb44cca96 100644 --- a/lib/Cake/View/Helper/HtmlHelper.php +++ b/lib/Cake/View/Helper/HtmlHelper.php @@ -276,11 +276,10 @@ class HtmlHelper extends AppHelper { $out = null; 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'), ' ', ' ')); $options['rel'] = 'shortcut icon'; - } else { - $options['link'] = $this->url($options['link'], true); } $out .= sprintf($this->_tags['metalink'], $options['link'], $this->_parseAttributes($options, array('block', 'link'), ' ', ' ')); } else {