Browse Source

Merge branch 'master' into 2.5

mark_story 12 years ago
parent
commit
3561929be7

+ 1 - 1
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)

+ 57 - 9
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,12 +1711,30 @@ class HtmlHelperTest extends CakeTestCase {
 		);
 		$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);
+
+		$result = $this->Html->meta('description', 'this is the meta description');
+		$this->assertTags($result, array('meta' => array('name' => 'description', 'content' => 'this is the meta description')));
+
+		$result = $this->Html->meta(array('name' => 'ROBOTS', 'content' => 'ALL'));
+		$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'),
@@ -1702,15 +1742,23 @@ class HtmlHelperTest extends CakeTestCase {
 		);
 		$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);
-
-		$result = $this->Html->meta('description', 'this is the meta description');
-		$this->assertTags($result, array('meta' => array('name' => 'description', 'content' => 'this is the meta description')));
-
-		$result = $this->Html->meta(array('name' => 'ROBOTS', 'content' => 'ALL'));
-		$this->assertTags($result, array('meta' => array('name' => 'ROBOTS', 'content' => 'ALL')));
+		$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);
 	}
 
 /**

+ 1 - 2
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 {