Merge branch 'master' into 2.5

This commit is contained in:
mark_story 2013-11-10 21:53:09 -05:00
commit 3561929be7
3 changed files with 63 additions and 16 deletions

View file

@ -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)

View file

@ -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()
*/

View file

@ -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 {